The exact price for each request is in the
PAYMENT-REQUIRED header. It scales with the verifier’s weight and optional add-ons (IPFS pinning, extra chains).
Flow
1
Request the resource
Send the normal request with the required parameters (address, check IDs, or gate ID).
2
Read the payment requirements
An unpaid request returns HTTP 402. Decode the base64
PAYMENT-REQUIRED response header as an x402 v2 PaymentRequired object.3
Authorize payment
Use an x402-compatible client to select the payment method and sign the payload. Private key stays in the client or wallet.
4
Retry the same request
Repeat the identical method, URL, query, and body with the base64
PAYMENT-SIGNATURE request header.5
Confirm settlement
A successful paid call returns HTTP 200, the result, and a base64
PAYMENT-RESPONSE settlement header.Proof check
Check existing proofs before granting access, releasing a payment, or allowing an agent action. Checks carry no charge at any query size, verifier count, or result limit. Per-plan rate limits are the only control.Proof creation
GET /api/v1/payments/pricing returns the per-verifier credit table.
Settlement
Each call settles at its exact credit cost, down to sub-cent amounts, with no rounded-up minimum and no settlement cap. Per-credit price: Pricing.
Always enforce a client-side maximum before signing. Treat the decoded
PAYMENT-REQUIRED header as the source of truth for the current amount, asset, recipient, and timeout.
After payment, validate all of the following before accepting the result:
- HTTP status is
200 PAYMENT-RESPONSEis present and decodes successfully- settlement reports success on the selected network
- the payer and transaction are present
- the response body reports a completed operation
Discovery
The payment challenge includes the x402 v2 Bazaar extension with the HTTP input, JSON output example, and JSON Schema. After the facilitator completes a successful settlement, the resource can be indexed for agent and marketplace search, with no separate registration step. See x402 Bazaar discovery.Agent spending limits
Pair x402 with an agent permission proof to limit autonomous spending.- Grant
agent-delegationwithallowedActions: ["make_payment"], plusallowedPaymentTypes: ["x402"]and amaxSpendcap; the spend rails and ceiling are required together. maxSpendis a whole-number string in token base units. For USDC, 25 USDC is"25000000".- Use
toAgentDelegationMaxSpend('25', 6)from@proofable/sdkwhen constructing the cap. - The calling application should also enforce a per-request maximum before signing any payment.