What our answers are, and what they are not
- A level is an observation. L7 means a wallet bound to the agent was seen paying someone after it registered (the ladder). It never means verified, safe or trusted, and it says nothing about who holds the key.
- The checks say what held at one moment. The free pay check, the precheck pack, the Gate and the Agent Pass list every reason they give and every check they could not take. None of them says "safe". In shadow mode nothing is blocked by us: your client decides.
- Every figure carries its time and its definition. Read
as_ofand the definition id before relying on a number. A missing figure is a gap, never a zero.
Before your agent pays: keep your own limits
- Cap what a key can spend: a limit per payment and per day, set in the wallet or its policy layer (session keys, or an EIP-7702 delegation with limits), not only in the agent's prompt. See the wallet security checklist.
- Allow-list payees your agent pays often, and send a first payment to a new address through a person.
- Ask for a human above a threshold you choose. No measurement of ours replaces that step.
- Use our checks as one signal among these.
pay_checkon the MCP server is free; the x402 gate hook in our open-source bridge asks the Gate before your agent signs, and you choose what a block or a failure does.
When we are late or unreachable
- Choose the fail mode per payment size, in advance. Small payments inside your caps can go ahead on your own rules; large payments and first-time payees wait for a person. The gate hook warns by default and can abort or allow instead.
- Keep our last good answer with its time stamp, and stop using it once it is older than you accept. Statements and the pay check carry a
staleflag for exactly this. - Watch our freshness the way we do. Every public feed, when it last updated and the budget it is held to: data health and /api/status, checked every five minutes.
Check us yourself
- Transaction hashes everywhere. Every agent record and evidence pack names the transactions behind it; any Base RPC can confirm them.
afg chaincheck <agent>checks an agent's record against a public RPC we do not run: the mint, each open binding, and every payment in its money path.afg verify <agent>recomputes the agent's leaf in our signed Merkle-sum log, up to the signed head.afg logwatchmonitors our statement log from outside: run it daily, and if our published history were ever rewritten its consistency proof would fail.- All three are in the open-source CLI:
npx -y github:AgenticFinanceGraph/agentic-finance-graph-mcp chaincheck 57067.
What changes, and how you will know
- Definitions are frozen. A change of method is a new version beside the old one, never a silent edit (/def).
- Our own changes are dated beside every series they move (/api/changepoints), so a step you see is labelled as ours or the market's.
- Every release is written down in the changelog and the Atom feed.
FAQ
Is an L7 or L9 agent safe to pay?
No level says that. L7 means a wallet bound to the agent was seen paying someone after it registered; L9 adds three or more counterparties in 30 days. Both can be reached cheaply, and neither says who controls the key or what the agent will do next. Use the level as one input beside your own limits.
What should my agent do if your API is down or late?
Decide before it happens. Payments inside your own caps can go ahead on your own rules; large payments and first-time payees wait for a person. Keep our last good answer with its time stamp and stop using it once it is older than you accept. Every feed's freshness is on the data health page and at /api/status.
Can I check a figure without trusting you?
Yes. Every record and pack carries transaction hashes that any Base RPC can confirm. The open-source CLI checks an agent's record against a public RPC we do not run (afg chaincheck), recomputes an agent's place in our signed Merkle-sum log (afg verify), and monitors our statement log for rewritten history (afg logwatch).