Home / How to pay
How to pay for a call
Every paid route speaks x402 v2. You need an x402 client and a Base wallet holding a little USDC. There is no account to create.
The flow
- Send the request with no payment. The tool answers
402and aPAYMENT-REQUIREDheader (base64 JSON). It listsscheme: "exact",network: "eip155:8453"(Base mainnet),asset= USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,amountin USDC base units (6 decimals) andpayTo=0xfbF7413bcB3a604936775C96FDbe0b0C9c9E37F5. - Your client signs an EIP-3009 USDC transfer authorization for exactly that amount and resends the same request with a
PAYMENT-SIGNATUREheader. - The tool asks the facilitator (PayAI) to verify, builds the answer, and settles only if the answer is a success. The
PAYMENT-RESPONSEheader carries the settlement receipt.
When you are not charged
- Any response with status 400 or higher: bad input, not found, upstream failure or an internal error. Settlement is cancelled.
- If settlement itself fails, you get the error and no data, and nothing moves.
- A replayed payment header cannot settle twice (each authorization has a one-time nonce).
Discovery
- /.well-known/x402: every live paid resource with its absolute URL and accepted payment.
- catalog.json: every tool with status, prices, routes and links.
- llms.txt and llms-full.txt: the same, written for language models.
- Each tool also serves its own
/openapi.jsonand/.well-known/x402.
Payments go to a receive-only address. ToolMint never asks for keys, seed phrases or approvals beyond the one exact amount in the 402.