Everything you need to know about wallet auth, from getting started to technical details.
POST /v1/attest, which checks wallet conditions and returns a verified yes or no. Other endpoints include wallet trust profiles, batch trust, compliance checks, and credit management. See the developer documentation for details.
attest and trust support x402 pay-per-call. Send a request with no credentials, get a 402 quote, sign a USDC authorization on Base, retry. $0.05 per attestation, settled on-chain.
npx -y mcp-server-insumer, runtime agent access for Claude Desktop, Cursor, Windsurf), LangChain (pip install langchain-insumer), ElizaOS plugin (@insumermodel/plugin-eliza), LlamaIndex tool spec (pip install llama-index-tools-insumer), and OpenAI GPT (GPT Store). Plus a Claude Code skill (smithery skill add douglasborthwick/insumer-skill) that helps Claude Code write wallet auth into your project. Plus two framework adapters that package the wallet auth primitive into host-shaped surfaces: WDK protocol module (@insumermodel/wdk-protocol-wallet-auth) for Tether's Wallet Development Kit, and mppx condition-gate (@insumermodel/mppx-condition-gate) for Machine Payments Protocol routes. Attestations are independently verifiable with insumer-verify (npm install insumer-verify). OpenAPI 3.1 spec available at /openapi.yaml.
POST /v1/credits/buy, all programmatically with no human intervention. Agents can also skip keys entirely and pay per call over x402 (USDC on Base, $0.05 per attestation). Two condition types exist specifically for agents: erc8004_agent verifies ERC-8004 agent registration, and erc7710_delegation verifies that a principal really delegated authority to an agent, checked against live chain state. The MCP server and LangChain SDK make integration straightforward for agent frameworks.
POST /v1/attest, POST /v1/trust, POST /v1/trust/batch, GET /v1/credits, and POST /v1/credits/buy. Agents that buy a key via POST /v1/keys/buy with USDC on an EVM chain receive an Insumer Access pass (soulbound ERC-721) minted to their wallet on Base. The same wallet can then sign requests with its private key and present them in an Authorization: Wallet header instead of X-API-Key. The signed message is SIWE (EIP-4361) scoped to api.insumermodel.com; the signature is EIP-191 personal_sign; single-use nonce; Issued At within the last 5 minutes. Other endpoints return 501 for this scheme. The five-endpoint coverage lets an SBT-holding agent run the full read-side lifecycle (attest, generate trust profiles, check balance, top up credits) without ever handling an API key. Drop-in middleware: @skyemeta/access on npm. See the full Authentication reference.
kid). Fetch our public key from /.well-known/jwks.json or GET /v1/jwks, then verify the signature using insumer-verify (npm) or any standard crypto library. JWT-format results can be verified by standard JWT libraries. No callback to the API is required.
format: "jwt" for a standard JWT, or proof: "merkle" for a blockchain-anchored storage proof. See How It Works for the full flow.
format: "jwt" to an attestation request returns a standard ES256-signed JWT alongside the normal response. The JWT contains claims for pass/fail, condition results, and block context. It can be verified by any standard JWT library via the JWKS endpoint, making it compatible with Kong, Nginx, Cloudflare Access, AWS API Gateway, and similar systems.
proof: "merkle" to an attestation request returns an EIP-1186 Merkle storage proof anchored to a specific block hash. This makes the attestation independently verifiable against the blockchain state trie without trusting the API. Available on 28 of 32 EVM chains. Costs 2 credits instead of 1.
Ask InsumerChat in the bottom right corner, reach out to our team.