apix402

Check the contract, not a tracker. 16 onchain checks an agent can buy one call at a time — governance, vesting, oracles, lending risk, Safe spending authority. No key, no account, no subscription: the wallet is the identity.

One example, and it is why this exists: a public tracker showed the Arbitrum DAO as archived with no active proposals, while its Governor contract had a live vote on 48M ARB. See it yourself for free in /dao-proposals/preview — the discrepancy field counts the disagreements without charging for them.

Connect an agent

npx agentcash try https://api402x.com/dao-proposals

Writing the client yourself: any x402 client works — the challenge is in the payment-required header, and the shape of the response travels with it. Full spec at /openapi.json, short table of contents at /llms.txt.

The one built to be called twice

GET /safe-authority-check$0.002. Ask whether the spending authority over a Safe changed since you last looked. You keep the fingerprint, so there is no account and nothing stored here. It walks modules recursively: a Safe that reads as 1-of-1 can in fact be governed through a module by a separate 2-of-8 Safe, and a flat owner list would miss exactly that. Built for a daily cron; when it says changed, buy /safe-signer-drift for what changed and in which block.

MAINNET eip155:8453 (Base), USDC, real funds. Facilitator https://facilitator.payai.network. Paid to 0xE606AE66542D4F1A56AA551841db41e3ECd26816 — every settlement is public onchain, including ours. We store nothing about you: no account, no key, no request history tied to a wallet.

RoutePriceDescriptionPreview (free)
GET /echo $0.001 x402 protocol check: confirms payment and returns a timestamp. /echo/preview
GET /dao-proposals $0.005 Active DAO governance proposals (ENS, Arbitrum, Uniswap, Compound, Optimism, Lido, Curve (Ownership), Curve (Parameter), Aave): Snapshot (off-chain signal) cross-checked against a direct… /dao-proposals/preview
GET /proposal-status $0.003 The fate of ONE already-known proposal after the vote: executed / queued in Timelock / expired / canceled. /proposal-status/preview
GET /vesting-status $0.003 Reads a vesting plan/stream directly from an on-chain contract on Base — total amount, claimed/unclaimed balance, remaining lockup, current owner/recipient. /vesting-status/preview
GET /insider-early-sale-check $0.05 Composes two checks: first resolves a vesting plan/stream by provider + plan_id (same lookup as GET /vesting-status, hedgey TokenVestingPlans or sablier SablierLockup)… /insider-early-sale-check/preview
GET /safe-authority-check $0.002 Cheap poll: has the spending authority over this Safe changed since you last looked? You pass the fingerprint this route gave you… /safe-authority-check/preview
GET /proposal-state-check $0.002 Cheap poll: has this proposal's state changed since you last looked? You pass the state this route or GET /proposal-status gave you… /proposal-state-check/preview
GET /vesting-plan-control-check $0.002 Cheap poll: can anyone other than you take your vesting plan? Reads the plan's vestingAdmin, its adminTransferOBO flag and the current holder… /vesting-plan-control-check/preview
GET /mcp-registry-remote-drift $0.002 Does an MCP server in the registry need credentials, and does the registry say so? No catalogue publishes the authentication posture, so… /mcp-registry-remote-drift/preview
GET /rpc-capability-probe $0.003 What can this RPC endpoint actually do? Nobody publishes the method matrix or whether archive state is available, including the providers themselves,… /rpc-capability-probe/preview
GET /dependency-repo-vanished-check $0.002 Does a package point at a repository that no longer exists? The repository field is written once at publish time and never… /dependency-repo-vanished-check/preview
GET /advisory-fix-availability-check $0.002 Does the fix an advisory promises actually exist? Reads the advisory from the OSV database, takes the versions it names as fixed,… /advisory-fix-availability-check/preview
GET /x402-listing-drift-check $0.002 Does a catalogue listing still match what the origin serves? Calls the resource with no payment, reads the price, network and payTo… /x402-listing-drift-check/preview
GET /safe-signer-drift $0.005 Reads a Gnosis Safe's live spending authority straight from the chain -- current owner set, threshold, enabled modules and transaction guard --… /safe-signer-drift/preview
GET /oracle-staleness $0.003 Answers how stale each oracle price actually is on Base right now, and whether a standard consumer staleness guard would reject it. /oracle-staleness/preview
GET /lending-depeg-exposure $0.005 Measures an Aave V3 position's exposure to a risk Aave's own health factor structurally cannot show. /lending-depeg-exposure/preview

New here? The first calls are free

Every route gives a new payer address a few calls at no charge, counted per route and per wallet. Not a trial window — there is no clock, the count simply does not reset.

Two routes are free only when the answer is already cached. A cold run of /insider-early-sale-check scans a beneficiary's full onchain transfer history through a rate-limited upstream gateway, and a cold /safe-signer-drift is a sequential archive search on a network with exactly one archive endpoint. Those runs are paid, always. If someone has already warmed the same query, you get it free; if not, you get an explicit free_tier_cold and your free quota is not spent.

There is a daily ceiling of 20 free calls per route, shared by everyone. It exists because a wallet address costs nothing to create, so a per-wallet allowance alone bounds nothing. It has never been reached by ordinary use.

Your wallet still signs. A free call goes through the ordinary x402 flow: the request carries a signed payment authorization, and the server skips settling it. No USDC moves and nothing is deducted, but an agent with no wallet cannot use this — it is free, not anonymous. After the count is used up, the same route simply starts settling as normal.

How prices are set. Price follows the cost of producing the answer: a few contract reads cost a fraction of a cent; scanning history or using scarce archive capacity costs more. That is the whole rule, and it is why /safe-signer-drift and /insider-early-sale-check cost more than the rest — one runs a sequential archive search on a network with a single archive endpoint, the other scans a full transfer history through a rate-limited gateway. Prices move when that measured cost moves, not otherwise.

The wallet must hold USDC on Base — ten times the route's price (listed above, per route). Nothing is reserved and nothing is deducted; the balance is only read. This exists because the allowance is permanent and keyed to the address, so a fresh address is a fresh allowance. The previous bar was any non-zero balance, and dust costs nothing: funding a thousand throwaway wallets on Base costs about a dollar in gas. The bar is deliberately low enough that a real buyer of a $0.01 call clears it — it is meant to price out farming, not to price out you.

Measured, last 7 days

1h · 6h · 12h · 24h · 7d · 30d · all

Unique clients are counted with a HyperLogLog: it keeps cardinality registers, not the values, so the number exists without a record of who produced it. Multi-day windows use the union of those registers rather than a sum, because unique counts do not add. A cancelled settlement is a paid request whose handler refused: the charge is reversed and nothing moves on chain, so the share is taken over settlement attempts, not over all traffic. No client identifiers, user agents or addresses are published here. Machine-readable at /stats.json.