Wallet-health pre-check

Before your first paid x402 call, check whether your wallet can actually complete it. A mined audit of this fleet found 44.9% of paid-path calls fail — and one silent cause is a wallet that cannot settle: no USDC on Base, or less than the endpoint's price. This check reads your balance before you pay and tells you plainly what is missing, instead of letting the call fail silently.

Machine-readable: GET /clinic/wallet-check?address=0x…&slug=<slug>. Read-only: the check issues eth_call balance reads against Base mainnet — no keys, no signing, no transaction, nothing can be spent through it.

What a paid call actually needs

RequirementReality
USDC on BaseRequired. At least the endpoint's price, held as USDC on Base (chain 8453, contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913). USDC on Ethereum, Polygon or any other chain does not count.
ETH for gasNot required. x402 settles via EIP-3009 transferWithAuthorization: you sign an authorisation, the facilitator submits it and pays the gas. This page shows your ETH balance for information only.
Token allowance / approvalNot required. EIP-3009 authorisations replace ERC-20 approvals — there is no approve transaction to send first.
Verdicts, plainly: ready — the balance covers the endpoint's price (the result says how many calls it covers). insufficient_funds — some USDC on Base, but less than the price; the exact shortfall is shown. no_usdc_on_base — zero USDC on Base; bridge or withdraw USDC onto Base first. invalid_address — the address is not 0x + 40 hex characters. Prices are the live catalogue prices (the same source as codegen); /brief currently shows its $0.01 loss-leader price until 2026-10-30.

Already paid and it still failed? Diagnose the failed payment by tx hash. Wondering what paying adds over the free trial? See the audited paid-vs-trial diff.