USDC on Arc Working prototype, October 2026 GitHub

An AI agent buys computing power. It holds no key that can pay.

Warrant lets an AI agent spend USDC inside limits that its owner sets. The agent finds a GPU and proposes a purchase. It cannot make the payment. A small checker program decides. An escrow contract on Arc releases the money, and it accepts only an authorization that it can examine. Prompt injection and a wrong recipient do not pass.

Run the showcase View on GitHub

What Warrant is and how it works

An agent that buys from a seller reads text that the seller wrote. A model that reads that text can be tricked. Warrant therefore never lets the model choose where the money goes or how much.

1. Approve

The owner sets the budget cap, the lease length and the approved sellers. A registry signs the wallet address of each seller.

keys the owner approved

2. Propose

The agent asks for a quote and proposes a purchase. The agent holds no key that can pay.

a proposal, not a payment

3. Decide and pay

The checker evaluates the facts. Only an Allow result produces an authorization. The contract then pays the accepted seller, once, inside the cap.

Allow, Deny or Ask

Fields that select must never come from the text. Fields that quantify can.

Allow

The checker signs an authorization. It binds the policy, the recipient, the amount and the order. No other result produces one.

Deny

There is no authorization to send. The contract also refuses the payment against live state.

Ask

The checker returns its reasons and signs nothing. The buyer decides. Ask is an escalation path, not a failure.

The Warrant gate: two pillars beneath a lintel, with the W as the passage between them

In the mark, the lintel shows the cap of the order. An agent passes through the gate many times. It cannot pass above the lintel. The buyer sets that height one time, when the buyer funds the order.

Proved
The rule evaluator agrees with its specification. Allow and Deny hold for every completion of the unknown facts. Verus, 16 obligations, 14 of 14 deliberate bugs rejected
Tested
The checker, the signing service and the escrow contracts. The parser and the contracts are tested, not proved.
Assumed
Honest registry keys and buyer keys, a standard ERC-20 token and a correct proof verifier.

Showcase: an agent buys GPU time and transcribes audio

The showcase runs on Arc mainnet. A buyer agent rents a one-hour GPU container from our seller. A faster-whisper worker runs in the container. The agent sends your audio to it and returns the text with timestamps. A local guardrail holds your wallet key and the spending cap. The agent holds no key that can pay.

Try it in three steps

  1. Connect our seller MCP server. Add https://seller.mnemonik.xyz/mcp to Claude Desktop, Cursor or another MCP client. The server needs no password and no account. Nobody needs to approve you.
  2. Connect the buyer guardrail. This local MCP server holds your Arc wallet key and the 1 USD cap. It funds the escrow and signs your acceptance. The seller cannot do these two steps for you. The guardrail also signs each request with your wallet, so only you can use your container. Buyer setup.
  3. Ask the agent. Say: "Transcribe audio.mp3." The agent gets a quote, funds the order, checks the GPU, settles and returns the text. To get audio from a video, run ffmpeg -i video.mp4 -vn audio.mp3.

What happens on the chain

  1. Quote. The seller returns a price and a task_id. A quote moves no money.
  2. Policy check. The guardrail checks the cap and the lease length. It then funds TaskEscrow.
  3. Acceptance. The seller reads the order from the chain, accepts it and starts the container on io.net.
  4. Health check. The agent tests the container. The guardrail signs an acceptance statement.
  5. Settlement. The checker evaluates the evidence. The escrow releases the USDC to the seller.
  6. Transcription. The agent posts audio to the worker for the rest of the one-hour lease.

Contracts on Arc mainnet

Chain ID 5042. Every address opens in the Arc explorer. The sources are in the policy-execution repository.

Contract or keyAddressRole
TaskEscrow 0x5fae10ac58bf90c17f516292883a4f17c0768002 The escrow that the seller MCP uses now. No proof.
JournalVerifier 0xdfe2fdb1d9942af02f99facfaa5b22d0031ad76c Test double for that escrow. It checks no signature.
USDC 0x3600000000000000000000000000000000000000 Arc system token, 6 decimals.
Seller wallet 0xb8202bebb6d8a0a822a56c0062632325c3923eeb Receives the payment for each lease.
Registry key 0x02264b8d8cdb5b5a45736a4e3f679966966f39979b16794f08530c1ac6d77ee034 Signs the seller credential.
SolverBountyEscrow 0xbe6b87c0d2a1a7c28207cdecd4f6c68ffe4122e0 Proven solver canary. Paid only after a Groth16 proof.
RiscZeroGroth16Verifier 0xc4fb7340971e8ad6925f16c2a275cd13cb7bec99 RISC Zero risc0-ethereum v3.0.0.
TaskEscrow (receipt-verified) 0x9449C1fDd068cDe33D900b1ab15f9861dc39bC51 Deployed. The seller MCP does not use it yet.
ReceiptClaimVerifier 0x0932F120DEe4cA83676B8224769eE52b7d6D00c6 Checks the prover signature. Not used yet.

Transactions on Arc mainnet

A 2 USDC deal settled on 16 October 2026 with a real RISC Zero Groth16 proof. The escrow released the money only after the verifier accepted the proof.

StepTransaction
Deploy RiscZeroGroth16Verifier0xead1e9d7…ee189a
Deploy SolverBountyEscrow0x34902ab0…121aaa
Buyer approves 2 USDC0x9c8104d5…db1ac9
Buyer funds the escrow0x204eb61a…3d8279
Buyer accepts the proven terms0x346fcfc1…8dac9c
Settlement with the proof0xd0fb5b02…975026
Deploy JournalVerifier0x457e62dc…685ade
Deploy TaskEscrow (seller MCP)0x6adc9771…b14735

What to know before you buy

The transcription purchase on mainnet has not run with money yet. You are the first test. The seller MCP settles through the test-double verifier, so you trust the seller. The cap is 1 USD for each deal. The seller gives no hardware attestation. A buyer who funds an order and never settles blocks the single deal slot until the order expires.

Full runbook, how to run your own seller and the operator notes: showcases/ionet_arc. The worker: mnemonik-xyz/transcription.

Join us in a real integration

Our first real-world integration is the purchase of computing power by an AI agent. We invite compute providers, GPU marketplaces, wallet builders and agent builders to integrate Warrant with us and run the first real compute purchases.

Become a partner

Contact us

Ask about the showcase, a pilot or the design. The form opens a message to dev@mnemonik.xyz in your mail program. If no mail program opens, write to that address directly.

github.com/mnemonik-xyz/warrant

Built by the Mnemonik protocol team