AttestPage · Docs · Pricing · OpenAPI · llms.txt

Payments

Last updated: 2026-10-15

Paid routes use x402 version 2. You pay per call in USDC; there is no account, key or sign-up.

Network

ItemValue
Protocolx402 v2, scheme exact
NetworksBase Sepolia (a test network). The 402 lists every rail, the primary first; pay on any one.
AssetUSDC on each rail, the same price on all
FacilitatorPayAI (facilitator.payai.network). On mainnet there is no fallback; x402.org is the fallback on testnet only

The live offer is eip155:84532, Base Sepolia (a test network): payments use free test USDC from a faucet, and no real money moves.

USDC on a main network is real money: each paid call is charged. A payment is settled on the rail you signed it for; the paying address and the receipt's payment.network show which.

Prices

RoutePrice per call
POST /v1/verify/quoteUS$0.01
POST /v1/verify/quotesUS$0.02 per call of 1 to 20 quotes on one page (less than one verify/quote call each from 3 quotes up)
POST /v1/verify/text-quoteUS$0.005 per call, for text you already hold (nothing is fetched)
POST /v1/verify/citationsUS$0.10 per batch
POST /v1/verify/documentUS$0.10 per part of up to 10 pairs
POST /v1/fetchUS$0.002 per URL: urls with up to 10 URLs costs US$0.002 times the count
POST /v1/recheckUS$0.003 per re-check of one page
POST /v1/check/linksUS$0.005 per batch
POST /v1/check/packagesUS$0.005 per batch
POST /v1/attestUS$0.002

Flow

  1. Send the request with no payment header.
  2. If the request is valid, you get 402 Payment Required. A request with an empty body (or {}) gets the same 402, so a directory or client can read the price before it has a real input; anything else that fails validation gets 400. The PAYMENT-REQUIRED header (base64 JSON) holds the offer: amount, asset, network, pay-to address and a description of the route. The body is a JSON error with code payment_required.
  3. Sign the offer with your wallet and send the same request again with the signed payment in the PAYMENT-SIGNATURE header.
  4. We verify the payment with the facilitator, run the route, and settle the payment only if the route answers with a status below 400. A settled call carries a PAYMENT-RESPONSE header.

Any x402 v2 client library handles steps 2 and 3. The offer also carries Bazaar discovery data (input and output schemas).

Pay from code

Install the x402 client at the versions this service uses:

npm install @x402/fetch@2.28.0 @x402/evm@2.28.0 viem@2.57.4

fetch-x402 (Node) and python-x402 (Python) each make one paid call step by step. Both sign for the network in ATTESTPAGE_NETWORK (default Base, eip155:8453), so set it to another network the 402 lists to pay there. The wallet needs USDC on Base Sepolia (a test network); no ETH, the facilitator pays the gas. Get test USDC before you pay: (1) make a key, 0x plus 64 hex characters, and set ATTESTPAGE_X402_KEY; (2) get its address with privateKeyToAccount(key).address; (3) free test USDC for Base Sepolia comes from the Run402 faucet, POST https://api.run402.com/faucet/v1 with the JSON body {"address": "<your wallet address>"}, 0.25 USDC per drip (25 calls at 0.01 USDC each), one drip per wallet and IP every 24 hours (source: operation faucetDrip in https://run402.com/openapi.json, checked 18 Oct 2026); no key or account is needed.

When you are charged

Lightning (L402)

Lightning (L402) is not enabled on this server. The sats prices in pricing.json are for when it is.

Prepaid credits (Bitcoin signet)

Prepaid credit keys (Bitcoin signet) are not enabled on this server. Where they are on (full service only), this section explains how to buy and spend one.

Free trial

There is no free trial at the moment; use the free samples instead.

Sanctions screening

Paying addresses are checked against a public sanctions list. A listed address gets 403 payer_refused and its payment is not settled.

Receipts

A paid receipt records the payment: rail, network, asset, amount, paying address and payment id (for L402: the payment hash and preimage instead of an address and id). See How it works.