An attestation travels with the exact condition it evaluated, a SHA-256 hash of that logic, the block it read and an ECDSA P-256 signature, which lets a merchant backend or an API gateway check it without trusting whoever passed it along — and requesting the JWT form puts it in a shape ordinary middleware already accepts. Two behaviours to build around: token_balance thresholds must be decimal strings, because keys issued from 2026-06-10 sign as insumer-attest-v2 and reject a JSON number with a 400; and when a data source is unreachable the call comes back as rpc_failure with no signature and no credit charged, so retry after a few seconds rather than reading it as a failed check.
An MCP server for InsumerAPI, which answers questions about a wallet without disclosing what is in it. You pass an address and 1 to 10 conditions — token balances, NFT ownership, EAS attestations, Farcaster identity, ERC-8004 agent registration, ERC-7710 delegation validity, or an arbitrary boolean view call — and get back a signed pass or fail evaluated across 32 EVM chains plus Solana, XRP Ledger, Bitcoin, Tron, Stellar and Sui. The rest of the catalogue is the commerce layer built on that primitive: token-holder discounts, merchant records, and the credits that pay for both.
- insumer_attest evaluates the conditions and returns an ECDSA-signed boolean carrying the evaluatedCondition, a SHA-256 conditionHash of the exact logic, and the block it read — 1 credit, or 2 with proof: "merkle" for EIP-1186 storage proofs
- Ask for format: "jwt" and the same attestation arrives as an ES256 JWT that Kong, Nginx, Cloudflare Access or AWS API Gateway can validate against the JWKS at GET /v1/jwks; insumer_jwks fetches that key set with no authentication
- insumer_wallet_trust builds a signed profile — 44 checks across 25 chains in 5 dimensions covering stablecoins, governance, NFTs, staking and institutional stablecoins, rising to 49 checks across 27 chains in 9 dimensions once Solana, XRPL, Bitcoin and Tron addresses are supplied. 3 credits, 6 with merkle
- insumer_batch_wallet_trust profiles up to 10 wallets in one request with shared block fetches, 5-8x faster than sequential calls, and returns error entries for the ones that fail instead of dropping the batch
- On the commerce side insumer_check_discount reports tier and discount percentage for free and never the raw balance, insumer_verify mints a signed INSR-XXXXX code with a 30-minute expiry, and insumer_acp_discount and insumer_ucp_discount wrap the same check in OpenAI/Stripe ACP and Google UCP checkout shapes
- insumer_validate_code lets a merchant backend confirm a code's validity, discount percent and expiry with no key, no credits and no exposure of wallet or token data
- Merchant onboarding runs from the same session: insumer_create_merchant arrives with 100 free credits and caps at 10 merchants per key, insumer_configure_tokens takes up to 8 tokens, insumer_configure_nfts up to 4 collections, and domain verification accepts a DNS TXT record, an HTML meta tag or a file upload
- Discovery costs nothing: insumer_list_merchants, insumer_get_merchant, insumer_list_tokens, and insumer_compliance_templates for the pre-configured EAS schemas (Coinbase Verifications on Base, Gitcoin Passport on Optimism)
Runs over stdio as npx -y mcp-server-insumer and reads INSUMER_API_KEY, a key beginning insr_live_. You can obtain one inside the session: insumer_setup takes an email and returns a free key with 10 verification credits and 100 calls a day, limited to one key per email and 3 per IP per day. Instead of a key you can set INSUMER_PAYMENT_KEY to a throwaway Base wallet holding a few dollars of USDC and let metered calls pay inline over x402 — an attestation costs $0.05 and a trust profile $0.15, and the wallet needs no ETH because settlement is gasless. Paid tiers are Pro at $29/mo for 1,000 credits a month and Enterprise at $99/mo for 5,000. MIT.
One command plus a key — npx -y mcp-server-insumer, then supply credentials
