# InsumerAPI: send a wallet and a condition, get a signed boolean

One call checks any wallet on 37 chains and returns a yes or no, signed so anyone can verify it offline. Boolean, not balance: you never see what the wallet holds. No blockchain code required. Works from any country.

Blockchains made writing permanent. We make reading them verifiable.

## For agents: where to start

- API description: [openapi.yaml](https://insumermodel.com/openapi.yaml) (also [openapi.json](https://insumermodel.com/openapi.json))
- API catalog: [/.well-known/api-catalog](https://insumermodel.com/.well-known/api-catalog)
- Agent skills: [/.well-known/agent-skills/index.json](https://insumermodel.com/.well-known/agent-skills/index.json)
- Agentic resource catalog: [/.well-known/ai-catalog.json](https://insumermodel.com/.well-known/ai-catalog.json)
- How to get access: [auth.md](https://insumermodel.com/auth.md)
- Overview for language models: [llms.txt](https://insumermodel.com/llms.txt) and [llms-full.txt](https://insumermodel.com/llms-full.txt)
- Public signing keys: [/.well-known/jwks.json](https://insumermodel.com/.well-known/jwks.json)
- Agent guide: [/ai-agent-verification-api/](https://insumermodel.com/ai-agent-verification-api/)
- Seller guide (check the paying wallet): [/check-the-payer/](https://insumermodel.com/check-the-payer/)
- Developer docs: [/developers/](https://insumermodel.com/developers/)
- Docs in Markdown: the main docs pages answer `Accept: text/markdown`, or append `.md` (for example [quickstart.md](https://insumermodel.com/developers/quickstart.md))
- API base URL: `https://api.insumermodel.com`

## SDKs, packages and integrations

- **MCP server:** `npx -y mcp-server-insumer` ([npm](https://www.npmjs.com/package/mcp-server-insumer), [source](https://github.com/insumerapi/mcp-server-insumer)), listed on the official MCP Registry. Also hosted at `https://api.insumermodel.com/mcp` (MCP streamable HTTP, no install, no key: ten tools on a shared daily allowance; run the package locally with your own key for the full set).
- **Agent skills:** six skills in the Agent Skills `SKILL.md` format, `npx skills add insumerapi/insumer-agent-skills` ([index](https://insumermodel.com/.well-known/agent-skills/index.json), [source](https://github.com/insumerapi/insumer-agent-skills))
- **Claude Code authoring skill:** [insumer-skill](https://github.com/insumerapi/insumer-skill)
- **Verifier:** `npm install insumer-verify` or `pip install insumer-verify` ([npm](https://www.npmjs.com/package/insumer-verify), [PyPI](https://pypi.org/project/insumer-verify/), [source](https://github.com/insumerapi/insumer-verify))
- **LangChain:** `pip install langchain-insumer` ([PyPI](https://pypi.org/project/langchain-insumer/))
- **LlamaIndex:** `pip install llama-index-tools-insumer` ([PyPI](https://pypi.org/project/llama-index-tools-insumer/))
- **ElizaOS:** `@insumermodel/plugin-eliza` ([npm](https://www.npmjs.com/package/@insumermodel/plugin-eliza))
- **WDK protocol module:** `@insumermodel/wdk-protocol-wallet-auth` ([npm](https://www.npmjs.com/package/@insumermodel/wdk-protocol-wallet-auth))
- **MPP condition gate:** `@insumermodel/mppx-condition-gate` ([npm](https://www.npmjs.com/package/@insumermodel/mppx-condition-gate))

## Where InsumerAPI is listed

- Official MCP Registry: `com.insumermodel/insumer` (npm package + hosted remote): https://registry.modelcontextprotocol.io/v0.1/servers?search=com.insumermodel/insumer
- Glama, hosted connector: https://glama.ai/mcp/connectors/com.insumermodel/insumer
- Glama, MCP server (npm package): https://glama.ai/mcp/servers/insumerapi/mcp-server-insumer
- Smithery, hosted server `insumerapi/insumer`: https://smithery.ai/servers/insumerapi/insumer
- mcp.so, remote server: https://mcp.so/servers/insumerapi
- mcpservers.org (Awesome MCP Servers), hosted and npm: https://mcpservers.org/servers/insumerapi/mcp-server-insumer
- GitHub organization (source for the MCP server, verifier, agent skills, examples): https://github.com/insumerapi
- **OpenAI GPT:** [InsumerAPI Wallet Auth](https://chatgpt.com/g/g-699c5e43ce2481918b3f1e7f144c8a49-insumerapi-wallet-auth)
- **Reference implementation:** [insumer-examples](https://github.com/insumerapi/insumer-examples)

## Getting access

- **Free key:** just an email, no dashboard, no password. `POST https://api.insumermodel.com/v1/keys/create` with an email returns a working key. 10 free verifications plus 100 requests a day, no credit card.
- **No key at all (x402):** send the request with no credentials, get back a 402 quote, sign five cents of USDC on Base, Polygon, Arbitrum, Arc, or Solana, and retry. [x402 pricing, from $0.05](https://insumermodel.com/pricing/#x402)
- Six ways in overall: a free key, a card subscription, prepaid credits in USDC, or five cents per call with no account. An agent that spends a dollar can claim a soulbound access pass on Base with its first signed request, and drop the key entirely.

## Two core endpoints. Signed output.

**`POST /v1/attest`** (1 credit): check up to ten conditions across 37 chains: holdings, NFTs, attestations, account code (plain key, EIP-7702 delegation or contract), and agent standing (ERC-8004 registration, ERC-7710 delegation). A signed yes or no for each.

```json
{
  "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "conditions": [{
    "type": "token_balance",
    "contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    "chainId": 1,
    "threshold": "1000"
  }]
}
```

The response carries `pass` and a per-condition `met`, signed twice: ES256 (`sig`, `kid`) and a post-quantum ML-DSA-65 signature (`pqSig`, `pqKid`), both verifiable against the public JWKS.

**`POST /v1/trust`** (3 credits): send only an address and get a signed fact profile: 155 checks across 27 chains in 10 dimensions (up to 176 across 29 in 14 with optional Solana, XRPL, Bitcoin, and Tron wallets). Facts, not a score. Built for AI agents.

Boolean, not balance: your system asks "does this wallet hold at least 100 USDC?" and gets yes or no, never the actual amount.

**What a signed result shows.** A signed result is InsumerAPI's statement that it read chain state and evaluated the stated conditions. It does not show who controls the wallet or who the person is, and it describes state at its anchor, valid until `expiresAt`. With a Merkle proof the value can be checked against the chain itself; without one, the result is as reliable as InsumerAPI, its upstream data sources, and its signing keys. A failed read is refused, never signed. Full list of limits: "What a signed result shows, and what it does not" in [llms-full.txt](https://insumermodel.com/llms-full.txt).

The rest of the API is built on these two: discount codes and agent commerce formats (ACP, UCP) for platforms, keys and credits, and discovery. [API reference](https://insumermodel.com/developers/api-reference/)

## Verify it yourself

Every result checks out without us. Verification runs on your side against published keys; nothing goes back to us for a verdict.

- Public keys at [/.well-known/jwks.json](https://insumermodel.com/.well-known/jwks.json), matched by the `kid` on each response.
- Every attestation and trust profile is signed twice: ES256, and a post-quantum ML-DSA-65 signature over the same bytes, with the binding between the two keys anchored on Base.
- 27 published test vectors and the [State Attestation Spec](https://insumermodel.com/state-attestation-spec/), so any verifier can be checked.
- Optional Merkle proofs (EIP-1186) that tie a balance to the block itself.
- `npm install insumer-verify` or `pip install "insumer-verify[pq]"` (the `[pq]` extra adds the post-quantum check).

## If you are an agent about to pay a counterparty

Before the money moves you need three answers. Is this wallet registered as the agent it claims to be? Did a principal actually delegate this authority, and is that delegation still valid? Does the wallet's history hold up? Each is a single POST. `erc8004_agent` and `erc7710_delegation` answer standing, with an on-chain proof that the delegation was not revoked. `/v1/trust` returns the fact profile.

## Condition-based access

Every access system asks for a secret: a password, a key, a credential someone issued. This one does not. Access depends on what a wallet holds, right now.

- **No secrets to steal.** The lock checks on-chain state, not a stored credential.
- **No identity to verify.** The system never asks who the user is, only what the wallet holds and whether that meets the conditions.
- **No credentials to rotate.** The next check reflects any change in wallet state.

Token gating is a subset. Condition-based access is the category.

## What this is not

- **Not an oracle network.** No token staking, no node network, no gas fees. InsumerAPI reads wallet state server-side and issues a signed answer.
- **Not a payment processor.** Customers' purchases never pass through us.
- **Not DeFi.** No smart contracts to deploy. If you can make an API call, you can use this.

## Read. Evaluate. Sign. Keep.

1. **Read:** the wallet's state on any of 37 chains, with the block, slot or ledger it was read at. A read that does not complete is refused, never guessed.
2. **Evaluate:** your conditions, up to ten per call, on any mix of chains. Every result carries the exact condition it was judged against.
3. **Sign:** a yes or no per condition, signed twice: ES256, which standard libraries check today, and ML-DSA-65, a post-quantum signature, for records that must outlast it.
4. **Keep:** good for access for up to 30 minutes, good as evidence for as long as you hold it, checkable later against a saved copy of our public keys. We cannot reproduce it later, so the signed result is your record.

## Pricing

- **Free:** $0. 10 verifications plus 100 requests a day. A key by email, no card.
- **Prepaid credits:** from $0.04 a call, volume tiers down to $0.02. Card or USDC.
- **Pay per call:** from $0.05 a call. No key, no account. x402 in USDC on five networks.

Details: [pricing](https://insumermodel.com/pricing/).

## Use cases

- **Agent-to-agent trust:** a signed trust profile an agent can act on immediately. [Docs](https://insumermodel.com/developers/trust/)
- **Access control:** gate features, content, or API access behind token ownership, verified server-side. [Docs](https://insumermodel.com/developers/verification/)
- **Compliance:** verify Coinbase identity checks and other on-chain compliance records on Base without handling personal data. [Templates](https://insumermodel.com/developers/compliance/)
- **Point of sale:** recognize members and holders at the counter. [Skye Meta](https://skyemeta.com/recognition/) runs it for stores, clubs and communities, with every pass signed and checked by InsumerAPI.
- **Trading venues:** check a Tokenized Securities Venue's wallet access condition at the moment of each trade and keep a signed answer an examiner can reproduce. [For venues](https://insumermodel.com/for-venues/)
- **Governance, WordPress, and WooCommerce:** see the [blog](https://insumermodel.com/blog/) and [ecosystem](https://insumermodel.com/ecosystem/).

In production today: [Skye Meta](https://skyemeta.com), [AsterPay](https://insumermodel.com/blog/asterpay-kya-erc8183-attestation-integration.html) (ERC-8183 integration), and [Revettr](https://revettr.com) (x402 integration).

## More

- [How it works](https://insumermodel.com/how-it-works/) · [Pricing](https://insumermodel.com/pricing/) · [FAQ](https://insumermodel.com/faq/) · [Standards](https://insumermodel.com/standards/) · [Contact](https://insumermodel.com/contact/)
- [Standards](https://insumermodel.com/standards/): two IETF Internet-Drafts, work in the ERC, UCP and A2A communities, and a public spec with test vectors.
- [Secrets and Agents](https://www.amazon.com/dp/B0HJPBL8FL): why AI agents cannot hold secrets, and how the blockchain becomes the way they prove anything. By Douglas C. Borthwick.
- [Company overview (PDF, 15 slides)](https://insumermodel.com/press-kit/insumer-company-overview.pdf): what the company does, who uses it, the standards work and the regulatory record
- [Privacy Policy](https://insumermodel.com/privacy-policy/) · [Terms of Service](https://insumermodel.com/terms-of-service/)

© 2026 The Insumer Model™
