Hover to scrollBefore your agent pays that address, check it. One call on Base returns what the address actually is, whether it is on the OFAC sanctions list, and — for a token contract — what its code can do to you. Every signal carries the observation it was read from, and everything that could NOT be checked is returned beside it.
- Account type read three ways: a plain wallet, an EIP-7702 wallet that delegates to a contract (reported with the delegate), or contract code. The usual "code is not empty, so it is a contract" test mislabels smart wallets on Base
- OFAC SDN membership, from a list validated for size and shape before it is allowed to answer — a truncated download of a sanctions list still returns HTTP 200
- Published source via Sourcify, and upgradeability via a sweep of five standard proxy slots. Probing EIP-1967 alone reports USDC as non-upgradeable; USDC is a proxy, with its pointer in the older ZeppelinOS slot
- The privileged roles a token contract HAS — owner, pauser, blacklister, minter — read from the contract's own getters. It will never claim a token has none: an empty eth_call return means "no such function" on one contract, "a fallback swallowed it" on another, and "no code here" on a mistyped address
- Fee-on-transfer measured by actually simulating a transfer with an eth_call state override, verified against both a clean token and a synthetic one built to keep 10%
- Address age, transaction history and holder concentration are DELIBERATELY ABSENT and listed under notChecked with the reason: the block-explorer API refuses free access on Base and does it silently, with an HTTP 200 body reading NOTOK
- The band is a pure deterministic function of the signals that resolved — a signal we could not observe leaves the denominator rather than scoring zero, so you can recompute the number from the response. A diligence signal, never a verdict on a counterparty and never financial advice
- 5 credits an address, 8 for a token contract. Ask for kind "auto" and you are billed whichever it turned out to be. A check the chain would not answer refunds in full
- Agent-native from day one: chn_live_ REST keys, an MCP server (works with the Ounie AI Team via ?api_key=), keyless x402 pay-per-call in USDC on Base, and the fleet master key
For agents
Works with Claude, ChatGPT, and any MCP client. One server, every app: paste the gateway config and the agent can discover and run Chain Check — and the rest of the store — through ounie_list_apps → ounie_describe_app → ounie_invoke_app.
{
"mcpServers": {
"ounie": {
"url": "https://mcp.ounie.com"
}
}
}Scoped endpoint — just this app. Point a client here when the agent should only ever see Chain Check's tools:
{
"mcpServers": {
"onchain": {
"url": "https://onchain.ounie.com/api/mcp"
}
}
}To spend your Ounie credits on the scoped endpoint, append your app key to the URL as ?api_key=… — the header-less form clients like the Ounie AI Team need.
Credits used
| Check one address | 5 credits per call |
| Check one token contract | 8 credits per call |