Direct answer
x402 Agent Payments
This is the hub page for x402 on Zambo: one place that quotes the live payment challenge exactly as the server serves it, names the discovery file, walks the agent payment flow step by step, lists the client setups that check out against live documentation, and puts the prices and the receipts next to each other. x402 is how an AI agent pays for access inside the request itself: the server answers HTTP 402 with the price and the destination, the agent signs and retries, and the work that follows leaves a verifiable AER-1 receipt.
curl -i https://zambo.dev/api/x402/day-pass returns the live terms with no payment attached. The discovery file is public at zambo.dev/.well-known/x402.json, and any receipt can be checked free at zambo.dev/verify.Updated October 24, 2026. The challenge and discovery responses below were re-fetched live on 2026-10-24 at 00:43 UTC and are quoted exactly as returned.
What x402 is, in one paragraph
HTTP 402 is the Payment Required status code, reserved for years and rarely used. x402 gives it a concrete machine flow: instead of a checkout page, the 402 response carries a machine readable challenge that names the scheme, the network, the asset, the amount in the asset's smallest unit, the destination, and how long a signed authorization stays valid. The client reads the terms, decides under its own spending policy, signs, and retries the same request with the payment attached. The server verifies, settles, and serves. For the concept explainer in depth, read what is x402 and how AI agents pay with it. For the hands-on walkthrough, read the x402 tutorial. This page is the reference hub both of them point back to: the live numbers, in full.
Which AI tool platforms accept crypto payments from agents?
Platforms that speak x402 accept payment from agents inside the HTTP request itself, so the agent does not need a checkout page or a human card. Zambo is one of them: agents pay USDC on Base for a Day Pass at $0.99 for 24 hours and get access to 153 tools, with 35 on the default surface. The payment leaves a spend record and each tool call leaves a verifiable AER-1 receipt, and a receipt proves the saved result was not changed, not that the result was right. See the setup for agent paid access at zambo.dev/add.
The live Day Pass challenge, field by field
GET https://zambo.dev/api/x402/day-pass with no payment returns HTTP 402 and a JSON body. Every field that decides money is in this response, before any wallet is involved. Quoted exactly as returned on 2026-10-24:
| Field | Live value | What it means |
|---|---|---|
x402Version | 2 | The challenge format version. Clients answer with the v2 header below. |
error | "Payment required" | The plain language reason for the 402. |
resource.url | https://zambo.dev/api/x402/day-pass | The resource being sold: the Day Pass activation endpoint itself. |
resource.description | "Zambo Day Pass: $0.99 in Base USDC for 24-hour access to the Zambo MCP connection. Not per call - one payment covers 24 hours. Every call returns a verifiable receipt." | The seller's own description of the deal, inside the challenge. |
resource.mimeType | application/json | The response type the endpoint returns on success. |
accepts[0].scheme | exact | Pay exactly the quoted amount, no more, no less. |
accepts[0].network | eip155:8453 | Base. The chain id 8453 appears again in the signing domain below. |
accepts[0].asset | 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 | The USDC contract on Base. |
accepts[0].amount | "990000" | Atomic units. USDC has six decimals, so 990000 is $0.99. |
accepts[0].payTo | 0xb753be5Eac5B29c711051DfF91279834e9C9b9AC | The destination wallet. A client should compare this against the expected destination before signing anything. |
accepts[0].maxTimeoutSeconds | 900 | A signed authorization stays valid for 15 minutes. |
accepts[0].extra.name / extra.version | USD Coin / 2 | The EIP-3009 signing domain name and version for the asset. |
accepts[0].extra.domain | name USD Coin, version 2, chainId 8453, verifyingContract 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 | The domain the authorization is signed against. The verifying contract is the same address as the asset. |
accepts[0].extra.primaryType | TransferWithAuthorization | The typed structure the payer signs, with fields from, to, value, validAfter, validBefore, and nonce. |
payment_proof.header | "PAYMENT-SIGNATURE (X-Payment also accepted)" | Where the proof rides on the retry: the v2 PAYMENT-SIGNATURE header, with the earlier X-Payment header still accepted. |
payment_proof.encoding | base64(JSON {x402Version:2,accepted:{scheme,network,asset,amount,payTo,maxTimeoutSeconds,extra},payload:{signature,authorization}}) | How the header value is built: the accepted terms plus the signed authorization, as base64 JSON. |
human_url | https://zambo.dev/day-pass/ | The human route to the same pass, paid by PayPal or card. The body also carries no_wallet: "For human checkout, open human_url." |
agent_payment.tool | day_pass_activate | The MCP tool name for the same flow, for callers already connected to https://zambo.dev/mcp. |
autonomous_payment_policy | "Agents may pay the $0.99 USDC Day Pass (x402 on Base, 24 hours) directly. No human approval is required by Zambo. Your own wallet or spending policy still applies." | Zambo's stated policy, printed inside the challenge. The agent's own policy remains the real gate. |
activation | "24-hour access; never activates without a verified transfer" | No verified transfer, no pass. Quoted from the agent_payment block. |
unlocks | "24-hour access to the Zambo MCP connection, subject to product/provider allowances listed at https://zambo.dev/pricing" | What a settled payment opens, with the allowances defined on the pricing page. |
on_success_returns | receipt_url, run_id, uuid, access_key, expires_at, x402_spend_receipt, settlement_tx_hash | The seven fields a successful activation returns, including the spend receipt and the settlement reference. |
payment_proof.retry_policy | "A refused invalid signature is retryable with a newly signed authorization. Never reuse a consumed nonce or a prior signature. Request a fresh challenge if expired." | The retry rules, stated by the server. A refused payment is not an invitation to pay twice. |
The same term set appears twice in the body, once under accepts and once under payment_proof.accepted; both copies were identical in the fetched response. The accepted term set, verbatim:
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"amount": "990000",
"payTo": "0xb753be5Eac5B29c711051DfF91279834e9C9b9AC",
"maxTimeoutSeconds": 900
}
For the Day Pass product page itself, with the two public agent activations from 2026-10-22, read the x402 Day Pass page.
The discovery file: how an agent finds all of this
An agent does not need this page, or any page, to find the paid resources. Zambo publishes them in two machine readable files.
The index: https://zambo.dev/.well-known/x402.json returns HTTP 200 with version: 2 and exactly three resources:
{
"version": 2,
"resources": [
"https://zambo.dev/api/x402/discovery",
"https://zambo.dev/api/x402/day-pass",
"https://zambo.dev/mcp"
]
}
Its instructions field states the working rules, including: "The runtime challenge is authoritative and advertises exact USDC on Base (eip155:8453)." It points clients to the official examples at zambo.dev/guides/x402-agent-payments/, states that autonomous payment covers the agent's own Day Pass only, and notes that for human PayPal checkout a person must approve before checkout.
The menu: GET https://zambo.dev/api/x402/discovery is itself free (access: "free", described in the file as a "Free machine-readable menu of Zambo's paid agent resources."). It describes the Day Pass resource with billing_model: "one payment per 24 hours", per_call: false, and access_window: "24 hours", and it names the payment call: method POST to the Day Pass endpoint, proof in the X-Payment header as a base64 JSON x402 envelope. Where the discovery file and the live challenge differ in emphasis, the live challenge governs: its proof block names PAYMENT-SIGNATURE first, with X-Payment also accepted, and the well-known file says the same thing in fewer words: the runtime challenge is authoritative.
The agent payment flow, step by step
1. Discover. Read https://zambo.dev/.well-known/x402.json or the free discovery resource to learn which resources are paid and where they live.
2. Request without payment. GET https://zambo.dev/api/x402/day-pass, or call the day_pass_activate tool on the MCP endpoint at https://zambo.dev/mcp. Keep the original request, arguments, and session reference together.
3. Read the live challenge. The server answers HTTP 402 with the terms quoted above. Never pay against a copied amount or an old example; terms are read from the response you just received.
4. Check the terms against policy. Compare network, asset, amount, and destination with the wallet balance and the spending policy. A challenge the policy rejects stays unpaid. Zambo requires no human approval for the Day Pass; the agent's own policy is where a human sets the limits that matter.
5. Sign the authorization. Sign the EIP-3009 TransferWithAuthorization named in the challenge: from the payer address, to the quoted payTo, value 990000, inside the validAfter and validBefore window, with a fresh nonce.
6. Retry with the proof attached. POST the same call to https://zambo.dev/api/x402/day-pass with the base64 JSON envelope in the PAYMENT-SIGNATURE header (X-Payment is also accepted). A refused signature can be retried with a fresh authorization; a consumed nonce or a prior signature is never reused, and an expired challenge is replaced by requesting a new one.
7. Settle, activate, and file the records. The server verifies settlement before activating anything. Success returns receipt_url, run_id, uuid, access_key, expires_at, x402_spend_receipt, and settlement_tx_hash. Keep the access key in memory or a secret store, never in a URL or a public log, and resume the job with it in the X-Zambo-Key header (MCP clients that cannot set headers can send it as the _zambo_key argument) until the expiry.
Client setups that check out
This hub lists only the client setups whose steps were verified against live documentation on 2026-10-24: Zambo's own official guide at zambo.dev/guides/x402-agent-payments/, which the well-known file names as the home of the official client examples, and the payment header guidance the endpoint itself serves. Anything not verified that way is left off this page rather than guessed at.
Official TypeScript client (@x402/fetch with @x402/evm)
The guide lists matching package versions checked on October 4, 2026: @x402/core, @x402/fetch, and @x402/evm at 2.28.0, plus viem for the signer. The endpoint's own payment guidance names the same client family. The setup:
npm install @x402/core@2.28.0 @x402/fetch@2.28.0 @x402/evm@2.28.0 viem
1. Build the signer from a key held in a secret store: privateKeyToAccount from viem/accounts over an EVM_PRIVATE_KEY value you load yourself; the guide's example refuses to run if the key is missing or malformed.
2. Register the exact scheme for Base: create an x402Client, then client.register("eip155:8453", new ExactEvmScheme(signer)).
3. Add a spending policy hook with client.onBeforePaymentCreation that aborts unless the selected requirement is network eip155:8453, asset 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913, and amount 990000.
4. Wrap fetch: wrapFetchWithPayment(fetch, client), then POST to https://zambo.dev/api/x402/day-pass. The wrapped client reads the 402, signs, and retries on its own. An optional JSON body of { "_session_id": jobId } binds the pass to an existing job.
5. Read the outcome with x402HTTPClient.processResponse: proceed only when the payment status is settled and the response is ok, then keep access_key, expires_at, and the spend receipt from the payload.
Official Python client (x402 with httpx)
The guide lists the official PyPI package x402 at 2.25.0, checked on October 4, 2026:
pip install "x402[httpx,evm]==2.25.0"
1. Build the account from a key held in a secret store: Account.from_key(os.environ["EVM_PRIVATE_KEY"]).
2. Register the exact scheme: create an x402Client, then register_exact_evm_client(client, EthAccountSigner(account)).
3. Add the same policy check with client.on_before_payment_creation, returning an AbortResult unless the network, asset, and amount match the Day Pass terms above.
4. POST through x402HttpxClient(client) to https://zambo.dev/api/x402/day-pass, with the same optional _session_id binding.
5. Require HTTP 200, then keep access_key, expires_at, and spend_receipt from the JSON result. On any other status, inspect the refusal record instead of retrying blindly: the guide documents refusal receipts with a fixed reason list (malformed payload, wrong amount, wrong asset, wrong network, expired challenge, duplicate payment, policy blocked) and a retryable flag that decides whether a corrected retry is allowed.
Both examples submit a real payment on Base. Run them only with a funded agent, inside its configured spending policy, and respect any instruction from the agent's owner not to self-pay or to ask first.
What the payment unlocks
The Day Pass opens 24 hours of access to the Zambo MCP connection at https://zambo.dev/mcp: 153 tools in total, 35 on the default surface, covering live prices, web and site checks, lead work, memory and continuity across AIs, handover, and more. The free tier runs first: 20 free calls per day, then they upgrade. A pass lifts the limits for its window, subject to the product and provider allowances listed at zambo.dev/pricing, which is exactly what the challenge's unlocks field says.
Payment and work stay separate records. The spend receipt answers what access cost and whether the money moved: it carries the challenged resource, chain, asset, payTo, amount, the settlement reference, and the activation expiry. The receipts for the tool calls answer what ran. Section below shows two of those, minted the same night this page was written.
Prices, in one table
| Option | Price | Window | How it is paid |
|---|---|---|---|
| Free tier | $0 | 20 free calls per day, then they upgrade | No payment, no account |
| Day Pass | $0.99, one payment | 24 hours | Agents: USDC on Base via x402. Humans: PayPal or card through PayPal at zambo.dev/day-pass/ |
| Zambo Pass | $29, one payment | 30 days | See zambo.dev/pricing/ |
| Zambo Pass, annual | $290, one payment | 365 days | See zambo.dev/pricing/ |
| Zambo Pass, holder price | $19, one payment | 30 days for $ZAMBO holders | See zambo.dev/pricing/ |
None of these renew on their own. When a window ends, the free tier keeps working and the same purchase can be made again the same way.
Receipts: the pair minted for this page
Every Zambo tool call returns a verifiable AER-1 receipt, following AER-1, an IETF Internet-Draft (draft-zambo-aer1-26). Receipts issue for rejected calls too, so a failed call is on the record instead of missing from it. Two calls were run on 2026-10-24 while this page was being written, one ordinary and one deliberately invalid, and both public pages were checked live before being linked here:
A completed call. A live Bitcoin price lookup returned BTC at $80,551.00 with its source and time, and its receipt is public: zambo.dev/run/358e91f7-3825-430d-a3f7-4541f28f9050 (HTTP 200 when checked on 2026-10-24).
A call that could not complete. The same lookup with an invalid symbol returned an error (status provider_unavailable: no verified live price exists for that symbol), and it still minted a receipt, marked as an error receipt: zambo.dev/run/05cc10d3-8c7e-4ed9-8f47-e786a6c254ca (HTTP 200 when checked on 2026-10-24).
What a receipt proves is narrow on purpose: the saved result was not changed since it was saved. It never proves the answer was right, and a payment record never proves the work it unlocked was good work. Keeping those claims separate is the point of having both records. Check either receipt, or any other, free at zambo.dev/verify.
The three deeper pages this hub ties together
- What is x402, and how do AI agents pay with it? The concept explainer: the per-call flow for MCP tools and why the payment record and the work record are kept apart.
- x402 tutorial: agent payments step by step. The hands-on walkthrough, including testing with small amounts and setting a spend cap before automating.
- x402 Day Pass: $0.99 USDC for 24 hours. The product page for the pass itself, with the two public agent activations from 2026-10-22 and their receipts.
- The AER-1 hub index. Every guide on this hub, including the receipt and handover guides the payment flow connects to.
Honest limits
x402 is a payment protocol Zambo implements, not a Zambo invention, and AER-1 is an IETF Internet-Draft (draft-zambo-aer1-26), not a finalized standard. Prices and terms are read from the live challenge at call time because they can change between calls; the values quoted on this page are the values the server returned on 2026-10-24 at 00:43 UTC, and the live response, not this page, is authoritative. An agent still needs a wallet, funds on Base, and a spending policy. Autonomous payment on Zambo covers the Day Pass only; the same permission does not extend to other paid products.
Frequently asked questions
What is x402?
x402 is a payment protocol built on the HTTP 402 Payment Required status code. A server answers an unpaid request with a machine readable challenge naming the amount, the asset, the network, and where to pay. The client checks the terms, signs a payment authorization, and retries the same request with the payment attached. On Zambo the quoted asset is USDC and the network is Base (eip155:8453).
What exactly does the live Zambo Day Pass challenge charge?
The live challenge at https://zambo.dev/api/x402/day-pass returns HTTP 402 with x402Version 2 and one accepted term set: scheme exact, network eip155:8453 (Base), asset 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 (USDC), amount 990000 atomic units ($0.99), payTo 0xb753be5Eac5B29c711051DfF91279834e9C9b9AC, and maxTimeoutSeconds 900. One payment covers 24 hours. It is not priced per call.
How does an agent pay the Day Pass, step by step?
The agent GETs https://zambo.dev/api/x402/day-pass with no payment and reads the 402 challenge. It checks the amount, asset, network, and destination against its own spending policy. It signs the EIP-3009 TransferWithAuthorization named in the challenge and retries as a POST to the same URL with the payment in the PAYMENT-SIGNATURE header (X-Payment is also accepted). The server verifies settlement before activating anything, then returns receipt_url, run_id, uuid, access_key, expires_at, x402_spend_receipt, and settlement_tx_hash.
How does an agent discover Zambo paid resources?
Two public files name them. https://zambo.dev/.well-known/x402.json (version 2) lists three resources: https://zambo.dev/api/x402/discovery, https://zambo.dev/api/x402/day-pass, and https://zambo.dev/mcp, and points to https://zambo.dev/guides/x402-agent-payments/ for official client examples. The discovery resource itself is free and describes the Day Pass terms, including billing_model one payment per 24 hours and per_call false.
What does the receipt prove after an x402 payment?
Two records come out of the flow and they answer different questions. The spend receipt records the payment: the challenged resource, chain, asset, payTo, amount, settlement reference, and activation expiry. The AER-1 receipt for each tool call records the work, and it proves the saved result was not changed since it was saved. It never proves the answer was right. Anyone can check a receipt free at zambo.dev/verify, including receipts for calls that failed or were rejected.
Is the Day Pass or the Zambo Pass a subscription?
No. The Day Pass is one $0.99 payment for 24 hours. The Zambo Pass is $29 for 30 days, one payment, or $290 for 365 days, and $19 for 30 days for $ZAMBO holders. Nothing renews and nothing is charged again automatically. Agents pay USDC on Base via x402; humans pay by PayPal or card through PayPal at https://zambo.dev/day-pass/.
How can AI agents pay for APIs?
Agents pay for APIs when the API speaks a machine readable payment protocol. With x402, the server answers an unpaid request with an HTTP 402 challenge naming the amount, the asset, the network, and where to pay; the agent checks the terms, signs a payment authorization from its wallet, and retries the request with the payment attached. No account, invoice, or human checkout sits in the loop. On Zambo, an agent pays $0.99 in USDC on Base once and gets the Day Pass for 24 hours.
What is x402 for AI agents?
For AI agents, x402 is the way a tool server asks for payment inside the request itself. The server returns HTTP 402 with a machine readable challenge, the agent verifies the amount, asset, network, and destination, pays from its wallet, and retries with the payment attached. Zambo uses x402 for the Day Pass: $0.99 in USDC on Base for 24 hours of access, settled by the agent with no signup form.
How do I let my AI agent buy API access itself?
Give the agent a wallet funded on the network the API charges on, and a spending policy that caps what it may pay without asking you. Then point it at an API that speaks x402: when the server returns a 402 challenge, the agent checks the terms against its policy, pays, and retries the call on its own. On Zambo the agent buys the $0.99 Day Pass in USDC on Base and works for 24 hours, and every payment and call leaves a verifiable receipt you can check later.
Which AI tool platforms accept crypto payments from agents?
Platforms that speak x402 accept crypto payment from agents directly, because the payment rides inside the HTTP request instead of a checkout page. Zambo is one: agents pay USDC on Base for the $0.99 Day Pass and get 24 hours of tool access, with a verifiable receipt for the payment and for every call. x402 indexes such as Agent402 and x402dash list x402-speaking services, and Zambo's Day Pass endpoint is listed on both.
Related
- The x402 hub on zambo.dev: how agents pay, live
- AER-1 hub index
- x402 Day Pass: $0.99 USDC for 24 hours
- What is x402, and how do AI agents pay with it?
- x402 tutorial: agent payments step by step
- Get the Day Pass
- Zambo pricing
- The x402 discovery index file
- Official x402 client examples
- The Zambo MCP endpoint
- Verify a receipt
- x402: a payment receipt proves settlement, not the work
- How to audit what my AI agent did after the session
- Which MCP server has the most tools
- How to let my AI agent buy API access itself
Proof works best when it travels with the work itself. The AER-1 badge kit turns verifiable receipts into an embeddable badge for project pages, docs, and profiles, so anyone who sees the claim can reach the check in one click.