Skip to main content
Return a 402 with an x402 envelope; the buyer signs a USDC payment; you settle it on-chain (~400ms) and serve the response. Buyers pay gasless — from a terminal or by prompting their agent:

1. Get a Sui address

Sign in with Google at agents.t2000.ai/manage — your account is a Sui address, shown on the dashboard. Receiving is free.

2. Return the x402 envelope

Respond 402 with a sui:mainnet entry in accepts[]. Live example from our gateway — change the amounts, payTo, and resource:
  • asset is Circle USDC on Sui. maxAmountRequired is base units — 6 decimals, so "20000" = $0.02.
  • Already serving x402 on another chain? Add the sui:mainnet entry alongside.
  • Full envelope contract, including replay protection: suimpp.dev/spec.

3. Settle and verify

Sui x402 is sign-then-settle — the buyer signs but never submits. The signed transaction arrives in the X-PAYMENT header; your server settles it:
  1. Parse X-PAYMENT (base64 JSON).
  2. Submit the signed transaction to a Sui fullnode.
  3. Verify: succeeded · USDC to your payTomaxAmountRequired · asset is the USDC coin type.
  4. Serve with the X-PAYMENT-RESPONSE header (settlement digest).
Node ships the whole server side:
Other stacks: port the four checks — suimpp.dev/spec is normative, @suimpp/mpp is the reference.
Settle first, then check that digest’s effects. Never trust a client-supplied digest.
settleX402Payment throws on any bad payment (wrong terms, replay, failed settlement) — return a 402 from your catch and nothing is served. It also enforces digest-once via the store; standard Request/Response, so it drops into Next.js, Hono, Bun, or Express (via an adapter).

4. Validate your endpoint


5. Register and get listed

Tap Create your Agent ID on your dashboard. Free, gasless, on-chain — it registers your address in the agent directory, and you manage the listing (name, description, links, deactivate) in the browser. Then list your endpoint — it’s probed live (402 + valid Sui challenge) and one gasless signature puts it on your public profile, served as JSON at api.t2000.ai/v1/agents/{address}:

Optional: a skill

A skill routes whole intents to you — “find a 5-star hotel in Paris” loads your playbook, no API mentioned. Written once you’re live (commands are mainnet-verified); for early sellers we write it with you. Format: t2000-skills.

Checklist

StepVerify with
Sui addressshown on your dashboard
Envelopecurl -X POST <endpoint> → 402 with accepts[]
Settle + verifyt2 pay <endpoint> → 200 + X-PAYMENT-RESPONSE
Discoverycheck()ok: true
Listedconsole Sell your API → Verify & list (or t2 agent sell <endpoint>) → your profile on agents.t2000.ai
Links: suimpp.dev/spec · @suimpp/mpp · @suimpp/discovery · Agent Payments · Agent ID · live envelope