Warrant puts an agent's USDC payment behind an escrow that only releases against a verifiable authorization. The builder's TaskEscrow on Arc mainnet (0x9449C1fDd068cDe33D900b1ab15f9861dc39bC51, 0x5Fae10aC58bf90C17f516292883A4F17C0768002) holds a fixed-price task in native USDC 0x3600000000000000000000000000000000000000: the customer calls offer and funds are reserved on the spot, the recipient must accept before acceptBy, and settle(seal, journal) pays the recorded recipient only after an IZkvmVerifier checks the seal against a pinned imageId and the sha256 of a 384-byte journal bound to chain id, escrow, token and task. No administrator, no withdraw; timeouts refund the customer. Verification is pluggable: ReceiptClaimVerifier (0x0932F120DEe4cA83676B8224769eE52b7d6D00c6) accepts a prover-signed RISC Zero receipt claim, and a self-deployed RiscZeroGroth16Verifier (0xc4fb7340971e8ad6925f16c2a275cd13cb7bec99) verifies full Groth16 proofs on-chain and settled a 2 USDC solver-bounty task. The companion coding-fabric repo ships the warrant-canary Ansible role that rehearses on Anvil, deploys with forge script DeployMock, and runs the seller MCP behind Caddy.
| Contract | Address | Proof |
|---|---|---|
| TaskEscrow | 0x9449C1fDd068cDe33D900b1ab15f9861dc39bC51 | Blockscout ✓ |
| ReceiptClaimVerifier | 0x0932F120DEe4cA83676B8224769eE52b7d6D00c6 | Blockscout ✓ |
| RiscZeroGroth16Verifier | 0xc4fb7340971e8ad6925f16c2a275cd13cb7bec99 | Blockscout ✓ |
Verifiable on-chain memory for trustless AI agents