GitHub

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.

agent1.countersign.eth · network observations
Connecting to testnet backend…

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.”

Loading

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

  1. Owner sets the mandate

    Budget, per-payment cap, allowed merchants and an approval threshold, written on-chain from the owner console.

  2. Agent signs exact terms

    The agent signs the precise amount, merchant and payout. Nothing is left for a relayer to fill in.

  3. Relayer + GasGuard submit

    A relayer pays gas and forwards the signed payment; GasGuard keeps submission costs bounded.

  4. 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 ↗

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.

See an agent get countersigned.