Card snapshot
insumermodel.com
·
2026-10-01 23:22:58 UTC
·
b59fb87f8e688f3e2e5a5187592dfc45cc0212bba43695c60c3b9fe72b6a5137
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"name": "InsumerAPI",
"description": "Condition-based access infrastructure for blockchain state. InsumerAPI reads wallet state, evaluates operator-defined conditions, and returns ECDSA-signed booleans across 37 chains. No secrets, no identity lookups, no static credentials, no balances exposed. Agents can acquire access, operate, and refuel autonomously: buy a key with USDC, USDT, or BTC, or pay per call via x402 with no key at all.",
"url": "https://insumermodel.com/developers/",
"version": "1.0.0",
"base_url": "https://api.insumermodel.com",
"chains": 37,
"auth": {
"api_key": "X-API-Key header. Key format insr_live_ plus 40 hex characters. Free key with 10 credits: POST /v1/keys/create with { email, appName, tier: 'free' }.",
"wallet_auth": "Authorization: Wallet <base64(JSON({message, signature}))>. SIWE (EIP-4361) message with Domain: api.insumermodel.com, signed EIP-191 by the wallet that purchased the key and holds the Insumer Access pass (soulbound ERC-721 on Base). Accepted on attest, trust, trust/batch, credits, credits/buy. Pay-per-call wallets earn a consensual claim on the pass at $1.00 cumulative x402 spend: nothing is minted unprompted, and the wallet's first wallet-auth request (the SIWE signature itself) is the claim that mints it.",
"x402": "No key, no signup. Call POST /v1/attest, /v1/trust, or /v1/trust/batch with no credential headers to receive a 402 priced quote (x402 v2; one accept per settlement network: USDC on Base eip155:8453, Polygon eip155:137, Arbitrum eip155:42161, Solana, or Arc eip155:5042). Pay the exact quoted amount on any of them and retry with the PAYMENT-SIGNATURE header (X-PAYMENT still accepted). Attest $0.05 ($0.10 with Merkle proof), trust $0.15 ($0.30), trust/batch $0.15 per wallet. Settlement is gasless on every network \u2014 the wallet needs only USDC."
},
"capabilities": [
{
"name": "attest",
"description": "Verify 1 to 10 on-chain conditions and receive an ECDSA P-256 signed true/false per condition, with an ML-DSA-65 post-quantum companion signature (pqSig/pqKid). Condition types: token_balance, nft_ownership, eas_attestation (compliance templates supported), farcaster_id, evm_view_call, ratio_to_amount, ratio_to_supply, erc8004_agent, erc7710_delegation. Optional proof: 'merkle' returns EIP-1186 storage proofs; optional format: 'jwt' returns an ES256-signed JWT verifiable via JWKS. Booleans only, no raw balances.",
"endpoint": "https://api.insumermodel.com/v1/attest",
"method": "POST",
"auth": "X-API-Key (1 credit; 2 with Merkle proof), Wallet Auth, or x402 ($0.05; $0.10 with Merkle proof)",
"input": {
"wallet": "EVM address (0x...). Non-EVM wallets via solanaWallet, xrplWallet, bitcoinWallet, tronWallet, stellarWallet, suiWallet",
"conditions": "Array of 1-10 conditions, each with type, chainId, and type-specific fields. Send threshold as a decimal string",
"proof": "Optional: 'merkle' for EIP-1186 storage proofs",
"format": "Optional: 'jwt' for an ES256-signed JWT attestation, returned with a sibling pqJwt (ML-DSA-65). A verifier binds the two by the whole claim set, not by bytes: see the state attestation spec, Section 12 Check 6"
},
"output": {
"results": "Per-condition met boolean with evaluatedCondition, conditionHash (SHA-256), and chain freshness fields (blockNumber and blockTimestamp on RPC chains)",
"signature": "ECDSA P-256 signature with kid for JWKS key discovery"
}
},
{
"name": "trust",
"description": "Wallet trust fact profile. Send a wallet address, get a structured ECDSA-signed fact profile: 145 base checks across 27 chains in 9 dimensions (stablecoins, governance tokens, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names), up to 166 checks across 29 chains in 13 dimensions with optional Solana, XRPL, Bitcoin, and Tron wallets. No score, just signed evidence organized by dimension. Designed for agent-to-agent trust decisions.",
"endpoint": "https://api.insumermodel.com/v1/trust",
"method": "POST",
"auth": "X-API-Key (3 credits; 6 with Merkle proofs), Wallet Auth, or x402 ($0.15; $0.30)",
"input": {
"wallet": "EVM address. Optional solanaWallet, xrplWallet, bitcoinWallet, tronWallet for the extra dimensions; stellarWallet and suiWallet evaluate the Stellar and Sui institutional_stablecoins checks and USDY on Sui in tokenized_treasuries"
},
"output": {
"profile": "Fact profile organized by dimension, each check a signed boolean",
"signature": "ECDSA P-256 signature verifiable offline via JWKS"
}
},
{
"name": "trust_batch",
"description": "Profile up to 10 wallets in one request. Block numbers are fetched once and shared, 5 to 8x faster than sequential calls. Each wallet gets an independently signed profile. Partial success supported; credits charged only for successful profiles.",
"endpoint": "https://api.insumermodel.com/v1/trust/batch",
"method": "POST",
"auth": "X-API-Key (3 credits per wallet; 6 with Merkle proofs), Wallet Auth, or x402 ($0.15 per wallet)",
"input": {
"wallets": "Array of up to 10 wallet entry objects: { wallet, solanaWallet?, xrplWallet?, bitcoinWallet?, tronWallet?, stellarWallet?, suiWallet? }"
},
"output": {
"profiles": "One independently ECDSA-signed fact profile per wallet"
}
},
{
"name": "create_key",
"description": "Get a free API key instantly with 10 verification credits plus 100 reads/day. Email required (one free key per email); the key is returned in the response, never emailed.",
"endpoint": "https://api.insumermodel.com/v1/keys/create",
"method": "POST",
"auth": "None",
"input": {
"email": "Contact email (one free key per email; the key is returned in the response, never emailed)",
"appName": "Name of the calling application or agent",
"tier": "'free'"
},
"output": {
"apiKey": "insr_live_ key with 10 credits"
}
},
{
"name": "buy_key",
"description": "Buy an API key with USDC, USDT, or BTC. No email or prior auth needed: the sender wallet from the transaction becomes the key identity. One key per wallet. Send crypto to the platform wallet, then submit the transaction hash. Optional keyDelivery ('wallet' | 'apiKey' | 'both', default 'wallet') controls whether a bearer key string is issued alongside the soulbound Insumer Access pass.",
"endpoint": "https://api.insumermodel.com/v1/keys/buy",
"method": "POST",
"auth": "None",
"input": {
"txHash": "Hash of the payment transaction",
"chainId": "Chain the payment was sent on",
"appName": "Name of the calling application or agent",
"amount": "Required for stablecoins, not for BTC",
"keyDelivery": "Optional: 'wallet' | 'apiKey' | 'both'"
},
"output": {
"apiKey": "New key with credits per the volume discount schedule (suppressed when keyDelivery is 'wallet' and the pass mints)"
}
},
{
"name": "check_credits",
"description": "Check the verification credit balance on the calling key.",
"endpoint": "https://api.insumermodel.com/v1/credits",
"method": "GET",
"auth": "X-API-Key or Wallet Auth",
"output": {
"credits": "Remaining verification credits"
}
},
{
"name": "buy_credits",
"description": "Refuel credits with USDC, USDT, or BTC. Volume discounts: $5-$99 at $0.04/call, $100-$499 at $0.03/call, $500+ at $0.02/call. First purchase registers the sender wallet to the key; later purchases must come from the same wallet.",
"endpoint": "https://api.insumermodel.com/v1/credits/buy",
"method": "POST",
"auth": "X-API-Key or Wallet Auth",
"input": {
"txHash": "Hash of the payment transaction",
"chainId": "Chain the payment was sent on"
},
"output": {
"credits": "Updated credit balance"
}
},
{
"name": "compliance_templates",
"description": "List pre-configured compliance templates for EAS attestation verification: coinbase_verified_account (KYC), coinbase_verified_country, coinbase_one, gitcoin_passport_score, gitcoin_passport_active. Use a template name in POST /v1/attest instead of raw schemaId, attester, and indexer.",
"endpoint": "https://api.insumermodel.com/v1/compliance/templates",
"method": "GET",
"auth": "None",
"output": {
"templates": "Available compliance template names and definitions"
}
},
{
"name": "jwks",
"description": "Public ECDSA P-256 signing key and ML-DSA-65 post-quantum companion key for offline verification of every attestation (RFC 7517). Three EC kid labels select the verification scheme: insumer-attest-v1, insumer-attest-v2, insumer-trust-v2. Two RFC 9964 AKP entries follow them, insumer-attest-pq1 and insumer-trust-pq1, for the pqSig/pqKid companion every response has carried since September 2026; resolve by kid and pqKid, never by position. Also at https://insumermodel.com/.well-known/jwks.json. Zero-dependency verifier: npm install insumer-verify.",
"endpoint": "https://api.insumermodel.com/v1/jwks",
"method": "GET",
"auth": "None",
"output": {
"keys": "JWKS key set"
}
}
],
"sdks": [
{
"name": "MCP server",
"install": "npx -y mcp-server-insumer",
"url": "https://www.npmjs.com/package/mcp-server-insumer"
},
{
"name": "LangChain (Python)",
"install": "pip install langchain-insumer",
"url": "https://pypi.org/project/langchain-insumer/"
},
{
"name": "LlamaIndex (Python)",
"install": "pip install llama-index-tools-insumer",
"url": "https://pypi.org/project/llama-index-tools-insumer/"
},
{
"name": "ElizaOS (TypeScript)",
"install": "npm install @insumermodel/plugin-eliza",
"url": "https://www.npmjs.com/package/@insumermodel/plugin-eliza"
},
{
"name": "Agent skills (Claude Code, Grok Build, any SKILL.md agent)",
"install": "npx skills add insumerapi/insumer-agent-skills",
"url": "https://github.com/insumerapi/insumer-agent-skills"
},
{
"name": "Attestation verifier (Node.js/Browser)",
"install": "npm install insumer-verify",
"url": "https://www.npmjs.com/package/insumer-verify",
"source": "https://github.com/insumerapi/insumer-verify"
},
{
"name": "Attestation verifier (Python 3.9+; same checks and same 27 test vectors as the npm package)",
"install": "pip install insumer-verify",
"url": "https://pypi.org/project/insumer-verify/",
"source": "https://github.com/insumerapi/insumer-verify"
}
],
"discovery": {
"llms_txt": "https://insumermodel.com/llms.txt",
"llms_full_txt": "https://insumermodel.com/llms-full.txt",
"openapi": "https://insumermodel.com/openapi.yaml",
"ai_plugin": "https://insumermodel.com/.well-known/ai-plugin.json",
"ucp": "https://insumermodel.com/.well-known/ucp.json",
"jwks": "https://insumermodel.com/.well-known/jwks.json",
"agent_guide": "https://insumermodel.com/ai-agent-verification-api/"
},
"contact_email": "support@insumermodel.com",
"legal_info_url": "https://insumermodel.com/terms-of-service/"
}