Wallet pay-readiness API for Base and Solana
One call tells an agent whether a Base or Solana wallet can pay a USDC amount: balances, shortfalls, USDC blacklist or frozen flags, wallet type and open token approvals. Returns ok, review or cannot_pay for $0.01.
Agents fail payments for boring reasons. The wallet has too little USDC, USDC is frozen or blacklisted for that address, or the agent tries a direct transfer with no gas. GET /wallet/pay-readiness checks all of that in one call for $0.01. It also lists any open token approvals that could let a router or bridge move the wallet's funds.
What it checks
- Balances: ETH or SOL, and USDC, read live from Base or Solana mainnet.
- Can it pay?
canPay.x402is true when the USDC balance coversamountand USDC can move. x402 exact payments are gasless for the payer, because the facilitator pays the fee.canPay.directTransferalso needs gas. If anything is short, theshortfallslist says what is missing. - Blocks: on Base, Circle's USDC blacklist for the address. On Solana, whether the wallet's USDC token account is frozen.
- Wallet type: a plain key (EOA), a smart contract wallet or an EIP-7702 delegated account (Base).
- Open approvals: on Base, USDC and WETH allowances to 13 well-known spenders such as Uniswap, Permit2, Aerodrome, 1inch, 0x, Odos, LI.FI, CoW and Across. Unlimited allowances are flagged. On Solana, every SPL or Token-2022 delegate on the wallet's token accounts.
- Status:
ok,review(for example an unlimited approval or a contract wallet) orcannot_pay, with plain reasons,asOfandsources.
Example
GET /wallet/pay-readiness?address=0x6d7be981c103eD360874a7703ad3CD6a98929aFB&amount=0.01
Trimmed real response on Nov 11, 2026 (our own Base payTo):
{
"chain": "base", "amountUsdc": 0.01,
"status": "ok",
"canPay": { "x402": true, "directTransfer": false },
"balances": { "native": { "symbol": "ETH", "amount": 0 },
"usdc": { "amount": 1.17 } },
"wallet": { "type": "eoa", "usdcBlacklisted": false },
"approvals": { "checked": 26, "open": [] },
"reasons": ["Holds 1.17 USDC, enough for 0.01",
"Low ETH for gas (0); fine for x402, not for a direct transfer"]
}
Solana works the same way. Pass a base58 wallet, and chain is detected for you.
Pay per call on Base or Solana
An unpaid request returns HTTP 402 offering USDC on Base and on Solana. You get a 400 or 422 before any payment if the address is malformed or is a Solana mint or token account rather than a wallet, so you are never charged for those. The route is also a tool called wallet_pay_readiness on the remote MCP server.
What it does not do
It is not a full portfolio, a credit score or a risk rating. The Base approval scan covers a curated spender list, so approvals to obscure contracts and Permit2 sub-allowances are not seen. For very large Solana wallets, the public RPC may time out while listing token accounts. When that happens, the response says the delegate scan is incomplete.
Try it free
Get a free API key (100 calls a month, no card), then pass it in the x-api-key header. This route uses 1 call of the monthly quota.
curl -X POST https://signals.incomefather.com/billing/free \
-H 'content-type: application/json' -d '{"email":"you@example.com"}'
curl -H "x-api-key: $TRADING_SIGNALS_API_KEY" \
"https://signals.incomefather.com/wallet/pay-readiness?address=0x6d7be981c103eD360874a7703ad3CD6a98929aFB&amount=0.01"
Agents that hold a wallet can skip the key entirely and pay per call over x402 (see x402 pay-per-call market data). Copy-paste code for curl, JavaScript, Python, MCP (Claude Desktop, Cursor, Cline), LangChain and the OpenAI Agents SDK is in gdietsch/trading-signals-examples.
More guides
- ES futures session brief API
- SEC insider buying API
- AI trade brief API for agents
- Solana token safety check API
- OFAC sanctions screening API for crypto addresses and names
- SEC 13F holdings API for fund portfolios and notable holders
- Token pre-trade check API for Solana and Base
- CFTC COT positioning screener API
- Treasury auction and yields API
- x402 pay-per-call market data