ReferenceLive

Axonpay facilitator

Axonpay runs its own x402 v2 facilitator for Solana mainnet and devnet. It verifies each payment, co-signs it as fee payer, submits it and writes a receipt. Buyers need only USDC, and sellers pay nothing for it.

On this page+

Endpoints

Method and pathWhat it does
GET /api/facilitatorDescribes the facilitator: protocol, scheme, networks, endpoint URLs, and its live status
GET /api/facilitator/supportedSupported kinds: x402 v2, scheme exact, each network with its fee payer in extra
POST /api/facilitator/verifyChecks a payment against the requirements and the policy below. Never moves funds.
POST /api/facilitator/settleCo-signs as fee payer, submits, waits for confirmation, returns the signature
GET /api/facilitator/statusLive per-network readiness, fee payer balance, settles in the last 24 h, and the policy numbers

The base URL is https://axonpay.fun/api/facilitator. These are the paths HTTPFacilitatorClient from @x402/core/server calls, so pointing a seller at Axonpay is one line:

TypeScript
const facilitator = new HTTPFacilitatorClient({ url: "https://axonpay.fun/api/facilitator" });

The full seller setup is in Quickstart: sellers; the seller kit in the dApp writes it for you.

Fee payer

Every payment it settles uses the fee payer 4A4iqdBZjNTPabzmKuW4nd3Nxx8rjhU2QDb19gyGVxNF. That address pays the Solana network fee, so a buyer’s agent wallet needs USDC and nothing else. To bound what one settle can cost it, the facilitator accepts a payment transaction only if:

  • the priority fee is at most 25,000 micro-lamports per compute unit,
  • the compute unit limit is at most 200,000,
  • it needs at most 3 signatures.

It sends with preflight on, so a payment that would fail on chain (for example, the buyer moved its USDC after verify) is rejected by the RPC before it costs the fee payer anything.

Settlement policy

RuleValue
Who can be paidA payTo with an Agent Shop listing on that network, or Axonpay’s treasury
Minimum payment0.001 USDC (worth $0.001) on mainnet; no minimum on devnet
AssetsMainnet payments must be in an asset with a USD price, so the minimum can be checked. USDC always qualifies.
Rate limits60 payments per payer per minute and 600 per payTo per hour, counted separately for verify and settle
Daily cap2,000 settles per network over a rolling 24 hours
Fee payer reserveRefuses everything on a network while the fee payer holds less than 0.002 SOL there
Protocolx402 v2, scheme exact, Solana mainnet and devnet
Not accepted yetx402 v1 payloads, and smart-wallet payments (Squads, Swig)
FeeNone. Sellers keep the full price.

The listing rule is the reason the shop comes first: deploy your endpoint, list it, and only then expect payments to settle. Listings are per network, so a devnet listing doesn’t cover mainnet.

Refusal codes

A refusal comes back in invalidReason from /verify or errorReason from /settle, with a readable message next to it.

CodeMeaning
axon_payto_not_listedThe payTo has no Agent Shop listing on this network
axon_amount_below_minimumA mainnet payment worth less than $0.001
axon_asset_unpricedThe asset has no USD price, so the minimum can't be checked. Price the endpoint in USDC.
axon_rate_limitedOver the per-payer or per-payTo limit
axon_daily_cap_reachedThe network has used its 2,000 settles for the rolling 24 hours
axon_facilitator_unfundedThe fee payer holds less than 0.002 SOL on this network
axon_treasury_not_readyA payment to Axonpay's treasury on a network where its USDC account doesn't exist yet
axon_network_not_supportedNot Solana mainnet or devnet, or not an x402 v2 payload
axon_scheme_not_supportedA scheme other than exact

Payments that pass the policy then go through the standard checks of the exact scheme, whose own codes are listed in Payment scheme.

Receipts and notifications

Every settle that reaches the facilitator, successful or not, is written to the public receipts ledger. Those rows feed Axon Score and Agent GDP. If the payTo has signed in to the dApp, each settled payment also lands in its inbox as “Paid call settled”, with the amount, payer and settle time.

Axonpay's own endpoints

Axonpay sells three endpoints of its own through the same facilitator, paid in USDC on mainnet to the treasury GMvHWU3UthfvEoso1PR2vJ3er6a2e3qbTueMMRgoW3C8 and listed in the shop as “Axonpay”:

EndpointPriceReturns
GET /api/x402/brief$0.01The latest Axon Brief with its data snapshot
GET /api/x402/xstocks$0.002xStocks on Solana against the listed shares: premiums, moves, liquidity
GET /api/x402/quote?from&to&amount$0.001A live Jupiter quote; bad input gets HTTP 400 before any payment

GET /api/x402/demo answers a genuine 402 for 0.001 USDC but never settles: use it to test 402 parsing without paying. The facilitator is also reachable from the hosted MCP server at https://axonpay.fun/api/mcp through its facilitator_info tool.