Agents pay per call. Now prove they got what they paid for.

A neutral verdict layer for agent commerce — payment rail agnostic, Bitcoin-final.

The acceptance test is committed and chain-timestamped before the work exists. The verdict is ed25519-signed and can never be rewritten. And because the test is deterministic, the validator stakes a bond anyone can slash on-chain if it lies — in USDC on Circle Arc, in Bitcoin (rBTC) on Rootstock. Verdicts anchor daily to Bitcoin L1. Works with any 402 payment rail — x402 on Base, L402 on Lightning — via pay402.

LIVE ON Bitcoin ACircle Arc RRootstock RhRobinhood Chainlink CRE BBase · x402 Lightning · L402

01The problem

Autonomous agents can already pay each other per call in USDC over x402. But payment is the only solved half — nothing proves an agent got what it paid for, and the whole stack fills that hole with trust or a mock:

Everyone signs a receipt saying "done." Nobody proves it, and nobody loses money if they're wrong.

02What it is

Predge is the independent validator that stack is missing. It implements the standard ERC-8004 Validation Registry surface — so any consumer settles against it with no adapter — and adds the one property matching a receipt format can't copy: commit-before-outcome.

// PredgeAgentValidator.sol — ERC-8004, live on Arc
function validationRequest(address v, uint256 agentId, string uri, bytes32 requestHash);
function validationResponse(bytes32 requestHash, uint8 response, string uri, bytes32 responseHash, string tag);

// the difference — the response:
if (v.requestedAt == 0) revert NotRequested();   // no verdict on un-requested work
if (v.hasResponse)      revert AlreadyResponded(); // no flipping after the money moves

03The stack — live on Arc, Rootstock & Robinhood Chain testnets + Chainlink CRE

Tiny, non-upgradeable contracts. Every demo is one command and produces real on-chain transactions. The same three primitives deploy AS-IS across chains; the bond is denominated in whatever's native — USDC on Arc, Bitcoin (rBTC) on Rootstock, ETH on Robinhood Chain. And the fetch layer plugs into Chainlink CRE: Chainlink for the fetch, Predge for the commit.

ERC-8004 VALIDATOR · ARC 0xA15337574F97…675Ad967

The Validation Registry with commit-before-outcome. npm run settlement:demo — request → deliver → response, the two refusals, offline check.

SLASHABLE BOND · ARC 0xCDd95Bd9…55d2acF

Capital behind every verdict. A lie is slashed on-chain by anyone (the contract recomputes sha256); an honest verdict is unslashable. npm run bond:demo.

ERC-8183 EVALUATOR · ARC 0x77DdcEe7…0Ed19Aaa

Predge fills the independent evaluator seat: a job settles USDC on complete()/reject() with reason = the signed verdict. npm run job:demo.

FIRST VERTICAL · ARC 0xF160AbE6…325a1ABc

Prediction-market & real-world-outcome resolution — the same primitive, replacing the admin mock in Circle's own reference. npm run oracle:demo.

BITCOIN-COLLAT BOND · ROOTSTOCK 0xC2c4F125…F5D2

Same contract, ported AS-IS. On Rootstock the native token is rBTC (Bitcoin via 2-way peg, merge-mined by ~80% of BTC hashrate). Bond = Bitcoin at risk. predge-rootstock: npm run bond:demo.

BITCOIN ANCHOR · ROOTSTOCK 0xDCf119AC…4134356

Daily merkle-batch of every verdict, root committed on Rootstock and posted as OP_RETURN on Bitcoin L1. Once anchored, altering a verdict requires rewriting a Bitcoin block.

CHAINLINK CRE · FETCH→COMMIT predge-cre · simulates end-to-end

A Chainlink CRE workflow fetches the outcome, the DON signs it into a report, and PredgeCREReceiver commits it as a slashable verdict. Chainlink for the fetch, Predge for the commit. cre workflow simulate runs the full path.

FULL STACK · ROBINHOOD CHAIN 0x45774F0a…16b2D · chainId 46630

Validator + slashable bond + settlement, ported AS-IS to Robinhood Chain (Arbitrum Orbit) testnet — the resolution primitive for its on-chain prediction markets & RWA perps.

04What we're not, and what we are

Honest first: we're not the first x402 on Rootstock — there are 5+ payment-layer repos there already, and Rootstock itself ships an official integrate-x402.md. Stacks has 30+ x402 repos, a live marketplace on mainnet, and aibtcdev ships full agent-payment infra. RDMoutlaw/pay402 already bridges L402↔x402. Payments are covered.

What none of them ship, in one stack:

05Who it's for

Agent-to-agent marketplaces

An independent verdict on whether delivered work met the paid-for spec — not the buyer's word. Payment lives on whatever rail; the verdict lives here.

Bitcoin-native agent commerce

Pay in sats over Lightning (L402), settle disputes with a Bitcoin-collateralized bond on Rootstock. Compatible with aibtcdev, Lightning Labs, and any 402 stack.

ERC-8183 job builders on Arc

Drop Predge into the evaluator seat instead of "the client is also the evaluator." One address, one interface.

Prediction-market settlement

An un-rewritable resolver replacing the admin mock in Circle's arc-prediction-markets reference. Same primitive.

06Try it & verify

See the deck → Watch the walkthrough

07Support the work

Predge is independent and self-funded. If it's useful to you, back the build directly — every donation goes straight into development. Any chain works.

EVM · ARC / ROOTSTOCK / ROBINHOOD / BASE / ETH 0x9084f5000E07C7133D6dA5eE4f271AB6D1821144

One address across every EVM chain we run on.

BITCOIN bc1q50nqg5lxkac9mwqdnj6lt0369mg8snkfam0e3p

Native BTC, on-chain.

SOLANA 9dxMRRtC7RKZH5rFZpUywjmnQ87H9qHhtW43u5LYmpV

SOL / SPL tokens.

TRON TVeWNcGwisQaL5Ge5B3GHG4tN5xX5VGxuU

TRX / USDT-TRC20.