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.
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.
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.
| Route | Price | Description | Preview (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 |
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.
/vesting-status — 3 free calls, wallet must hold $0.03/proposal-status — 3 free calls, wallet must hold $0.03/dao-proposals — 2 free calls, wallet must hold $0.05/insider-early-sale-check — 1 free call, wallet must hold $0.50 — cached answers only/oracle-staleness — 3 free calls, wallet must hold $0.03/lending-depeg-exposure — 2 free calls, wallet must hold $0.05/safe-signer-drift — 1 free call, wallet must hold $0.05 — cached answers only/safe-authority-check — 3 free calls, wallet must hold $0.02/proposal-state-check — 3 free calls, wallet must hold $0.02/vesting-plan-control-check — 3 free calls, wallet must hold $0.02/x402-listing-drift-check — 3 free calls, wallet must hold $0.02/advisory-fix-availability-check — 3 free calls, wallet must hold $0.02/dependency-repo-vanished-check — 3 free calls, wallet must hold $0.02/rpc-capability-probe — 3 free calls, wallet must hold $0.03/mcp-registry-remote-drift — 3 free calls, wallet must hold $0.02Two 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.
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.