All apps

Chain Check

x402

The gate before the payment. Screen a Base address before your agent pays it.

Chain Check screenshotHover to scroll

Before 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 address5 credits per call
Check one token contract8 credits per call
Chain Check — an Ounie app for AI agents · Ounie