
An agent asks for a product, gets a price, pays, and asks again.
That is the whole Latitude 10 agent payment API. It runs on the web's own HTTP 402 Payment Required status code, with USDC stablecoin as the money. There is no account, no API key and no checkout page, so an AI agent can buy on its own in one round trip.
$ curl -i https://latitude10.tech/api/agent-products/starter-kit
HTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkLiIs…
{"x402Version":1,"accepts":[{"network":"base","maxAmountRequired":"19000000", …}]}
# The agent's wallet signs a $19.00 USDC payment, then asks again:
$ curl -i -H "PAYMENT-SIGNATURE: <signed payment>" https://latitude10.tech/api/agent-products/starter-kit
HTTP/2 200
payment-response: eyJzdWNjZXNzIjp0cnVlLCJ0cmFuc2FjdGlvbiI6… # on-chain receipt
{"product":"starter-kit","version":"1.1.0",
"downloadUrl":"https://latitude10.tech/api/kit/download?t=…","expiresAt":"…"}Who is involved
Four parties take part in every sale. The agent brings a wallet holding USDC. Latitude 10 names the price and hands over the product. A facilitator, Coinbase's CDP x402 service, checks the payment and puts it on the blockchain, so Latitude 10's server never runs blockchain infrastructure itself. The blockchain moves the money straight from the agent's wallet to Latitude 10's own wallet. The server only knows public wallet addresses, never a private key.
One purchase, step by step
This is the exact order of events when an agent buys the Starter Kit for $19. The agent makes two HTTP requests. Between them, its wallet signs the payment on the agent's own machine. Signing costs nothing and moves no money by itself.
PAYMENT-RESPONSE header (X-PAYMENT-RESPONSE in v1) with the transaction hash, network and payer, which the agent can keep as its receipt.The agent needs only USDC, not gas money.The facilitator submits the transaction and pays the network fee. On Base the agent signs a USDC transfer authorization (EIP-3009). On Solana the 402 names the facilitator's feePayeraccount. Either way the agent's wallet only has to hold the price of the product.
Reading the 402: the price list
The 402 response is a machine-readable price quote. This is the response for the Starter Kit, trimmed. It lists every way the agent may pay, and the agent's client picks one it can handle.
// PAYMENT-REQUIRED header, base64-decoded (x402 v2)
{
"x402Version": 2,
"resource": { "url": "https://latitude10.tech/api/agent-products/starter-kit" },
"accepts": [
{ "scheme": "exact",
"network": "eip155:8453", // Base
"amount": "19000000", // 19.000000 USDC
"asset": "0x833589fC…A02913", // USDC contract on Base
"payTo": "0xFc097151…341f2D", // Latitude 10's wallet
"maxTimeoutSeconds": 60 },
{ "scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"amount": "19000000",
"asset": "EPjFWdd5…Dt1v", // USDC mint on Solana
"payTo": "CiT1StDi…iryK",
"extra": { "feePayer": "Hc3sdEAs…J88" } } // facilitator pays the fee
]
}| Field | What it tells the agent |
|---|---|
amount | Price in USDC's smallest unit. USDC has 6 decimals, so 19000000 is exactly $19.00. The agent can check it against its budget before it signs anything. |
scheme: exact | Pay this exact amount, no more and no less. |
network | Which blockchain. eip155:8453 is Base and solana:5eykt… is Solana mainnet. |
asset | Which token. Both entries are the official USDC on their chain. |
payTo | Latitude 10's wallet. The signature is only valid for this address. |
maxTimeoutSeconds | The payment has 60 seconds to complete. |
Three ways to pay, one response
Agent payment tooling is young, and clients speak different protocols. Every Latitude 10 402 carries both x402 versions at once, so older and newer clients can buy from the same URL. Lightning is offered alongside them whenever an invoice can be issued.
| x402 v1 | x402 v2 | L402 | |
|---|---|---|---|
| Price is in | the JSON body, accepts[] | the PAYMENT-REQUIRED header | WWW-Authenticate: L402 macaroon, invoice |
| Money | USDC on Base | USDC on Base or Solana | Bitcoin over Lightning |
| Retry with | X-PAYMENT | PAYMENT-SIGNATURE | Authorization: L402 <macaroon>:<preimage> |
| Checked by | Coinbase CDP facilitator | Coinbase CDP facilitator | Latitude 10 itself, with a hash check |
Nobody has to build this by hand. Any x402 client, such as @x402/fetch for HTTP or @x402/mcpfor MCP, reads the 402, signs with the agent's wallet and retries automatically. When a request carries more than one payment header, the server checks L402 first, then x402 v2, then x402 v1.
The same purchase over MCP
Agents that use tools instead of raw HTTP, such as Claude Code or Cursor, can connect to the MCP server at https://latitude10.tech/mcp. It has three tools. buy_product works like the product URL: without a payment it returns the price, and with one it returns the product.
buy_productcall moves money, and the MCP client adds the payment without the agent writing any payment code. On the wire the payment travels in the tool call's _meta field under x402/payment, and the receipt comes back under x402/payment-response.How agents find the store
An agent can only buy what it can discover. Latitude 10 publishes its catalog in the places agents already look:
| Where | What it is |
|---|---|
/llms.txt | A plain-language guide for language models: how to buy, and every product with its price. |
/.well-known/x402 | The standard x402 manifest listing every paid URL. |
/api/agent-products | The full catalog as JSON, with versions, prices and payment networks. |
/mcp | The MCP server, for agents that work through tools. |
| x402 Bazaar | Each 402 carries a bazaar extension describing the input and output, so x402 directories can list the product automatically. |
Put the same thing in front of your own API
Everything above is also sold as a product. The Agent Payments Kit gives your API or MCP server the same paywall, including Lightning payments, paid MCP tools and agent discovery.
The kit also includes an MCP server template with paid tools, the discovery files from the previous section, a setup wizard (node setup.mjs) and a test-buyer script, so you can make a real purchase against your own endpoint before launch.
When something goes wrong
The API is built so that an agent is never charged without a way to get what it paid for. Everything that can fail before the money moves is checked first.
| Response | What happened | Was money taken? |
|---|---|---|
402 again | The payment was rejected: wrong amount, expired, not enough USDC, or a bad signature. The body gives the reason and the price again. | No |
503 | The product can't be delivered right now, so the server refuses to quote a price. | No. The message says "Nothing was charged". |
429 | More than 20 requests from one IP address in 10 minutes. | No |
502 | Settlement failed or the facilitator didn't answer in time, so the result may be unknown. | Possibly. Email jorge@latitude10.tech with the transaction and the link is sent by hand. |
Refunds are sent back in USDC to the wallet that paid. Every sale is stored with its transaction hash, payer, amount and network, so it can be traced on a block explorer.
In short
No signup
No account, no API key, no card on file. Payment and access happen in the same request.
Price before payment
The 402 states the exact price up front, so the agent can compare it with its budget or ask a human first.
Can't be overcharged
The wallet signs one exact amount to one named address, valid for 60 seconds. The server cannot take more or reuse it.
Money moves after the check
The payment is verified before it settles, and the product is released right after settlement, with an on-chain receipt.
Only USDC needed
The facilitator pays the network fee, so the agent's wallet holds only dollars.
Humans welcome
Every product also has a normal card checkout on the products page.
Glossary
- HTTP 402
- "Payment Required". A status code reserved in HTTP since the 1990s, now used for machine payments.
- x402
- An open protocol that turns a 402 into a price quote an agent can pay in stablecoin.
- L402
- The Lightning Network equivalent. The 402 carries a Bitcoin invoice and a macaroon, a signed access token. Paying the invoice reveals a preimage, and macaroon plus preimage prove the payment.
- USDC
- A dollar stablecoin issued by Circle. 1 USDC is designed to equal $1.
- Base · Solana
- Public blockchains with fast settlement and low fees, where the USDC moves.
- Facilitator
- A service that verifies an x402 payment and submits it to the blockchain for the seller. Latitude 10 uses Coinbase's CDP facilitator.
- MCP
- Model Context Protocol. A standard way for AI agents to call tools on a server.
This guide explains how agent payments work. It is not financial, investment, legal or tax advice. Cryptocurrency payments are irreversible, and stablecoins carry risks of their own, including losing their peg.
When an AI agent buys from Latitude 10, the person or company that runs the agent is the buyer and accepts the Terms of Service. Payments on a blockchain or over Lightning are final.