Testnet · Whitechain · World ID · ENS
Spending mandatesfor AI agents.
Your agent pays in USDT only inside limits a contract enforces. Threshold payments require World sandbox authentication and the owner’s signature over the exact payment.
- recorded Solidity test executions
- 131
- recorded Node tests
- 157
- Whitechain chain ID
- 1874
- primitives: Whitechain, World ID, ENS
- 3
Local test checkpoint: 7 November 2026. Counts are recorded evidence, not live network activity.
Limits
Small payments, hard limits.
The agent pays small amounts for data; the Mandate contract caps every payment, the period budget and when a human must approve.
ENSv2 · Sepolia · agent passport
agent1.countersign.eth
“My name is public. My spending rules are public. Check them against the chain.”
Reading ENS on Sepolia…
Whitechain does not read ENS; the Mandate contract enforces signed commitments; ENS is the human-readable identity/policy layer.
Recorded automatic payment
0.50 official test USDT. Historical settlement, not a new payment.
Inspect recorded transaction ↗Recorded sandbox-approved payment
1.50 official test USDT after sandbox authentication and exact owner approval.
Inspect recorded transaction ↗Flow
How it works
Owner sets the mandate
Budget, per-payment cap, allowed merchants and an approval threshold, written on-chain from the owner console.
Agent signs exact terms
The agent signs the precise amount, merchant and payout. Nothing is left for a relayer to fill in.
Relayer + GasGuard submit
A relayer pays gas and forwards the signed payment; GasGuard keeps submission costs bounded.
Contract enforces
The Mandate contract checks every term and settles USDT, or reverts. At or above the threshold it requires exact owner and attestor signatures after World sandbox authentication.
Stack
Built on three primitives
Settlement
Whitechain
USDT settles on Whitechain testnet (chain 1874). Mandate and MerchantRegistry are verified on the explorer.
Mandate on explorer ↗Human approval
World ID
Threshold payments require World sandbox authentication and the owner’s signature on the exact payment. Sandbox identity is not production personhood.
Human-approved payment ↗Agent identity
ENS
The agent resolves as agent1.countersign.eth on ENSv2 Sepolia, with RPC comparisons that report mismatches, missing fields and unavailable reads.
agent1.countersign.eth ↗
Enforcement
What the contract refuses
These checks are implemented in the payment contract. The latest local regression recorded 131 Solidity executions and 157 Node tests; live integration acceptance is still incomplete.
- Tampered amount
Signed terms don't match the submitted amount.
- Tampered payout
Funds can't be redirected to a different address.
- Over budget
Spend beyond the mandate's remaining budget reverts.
- Paused
A paused mandate rejects every payment until the owner resumes.
- Over-refund
Refunds can never exceed what was paid.
Verify
Recorded on-chain evidence
- Mandate contract
- 0x923298…889EbA ↗
- MerchantRegistry
- 0x2686f6…2329E2 ↗
- Human-approved tx
- 0x98fa81…9cb531 ↗
- Agent identity
- agent1.countersign.eth ↗
Press kit
Deck, paper and media
FAQ
Questions
- What is Countersign?
Countersign gives an AI agent a USDT budget. The agent signs exact payment terms, a relayer pays the gas, and the Mandate smart contract enforces the owner's limits at the moment USDT moves. It is a testnet development preview.
- How are spending limits enforced?
On-chain by the Mandate contract: it checks signatures, merchant payout, per-transaction limit, period budget, nonce, order, epoch, expiry and pause before moving USDT, and reverts otherwise. Neither the agent, the relayer nor the API can exceed them.
- How does World ID approval work?
Payments above the owner's threshold are held until the owner completes a fresh World ID sign-in and signs with their wallet. A separate attestor then co-signs, and the contract verifies both signatures for that exact payment.
- How is ENS used?
The agent is published as agent1.countersign.eth on ENSv2 (Sepolia) with its policy mirrored in text records. The app runs a live drift check that compares the ENS records with the Mandate contract and shows MATCH or MISMATCH.
- Which chain and token does it use?
Whitechain Sepolia testnet (chain ID 1874) with the official test USDT token at 0xcedfB56113143d55b2358b8CFbB0dEB5Ad2f55a7.
