Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2027-01-20
Changed the definition of "insumer_attest"
VerifyEvaluate1-10aon-chainlist of 1 to 10 conditionsforagainst awalletwallet's on-chain state and returnaone signed attestation: a yes or no for each condition, never the balance.Condition types: token_balance, nft_ownership, eas_attestation (raw schemaId or a compliance templateOnesuchcallasreadsCoinbasetheVerificationschainorforGitcoineveryPassport),conditionfarcaster_idin(IdRegistrytheonlistOptimism),andevm_view_callreturns(asingle-address-argument view function returning bool), ratio_to_amount (balance >= multiple * amount), ratio_to_supply (balance / totalSupply >= minFraction, ERC-20 only), erc8004_agentsingle(registeredattestationERC-8004coveringagentallonofBase)them,erc7710_delegation (a signed MetaMask-framework delegation from principalsotoconditionsagentofisdifferentcurrentlykindsvalidand onBase; spend, targetdifferentandchainscallarelimitscombinedareinreportedoneassigneddeclaredLimits,result.notAsimulated),conditionandstatesaccount_codewhat(themustcodebestatetrue of the walletaddress itself at the anchored block on an EVM chain: expect,'none'suchforas aplainminimumkeytokenaccountbalance,'eip7702'ownershipforof anEIP-7702 delegation designatorNFT,optionally to aangivenattestationdelegate,held or'contract' foraanyregisteredotheragentcode;ID; theanswer istypemetfieldoronnoteachmet,conditionandlists thecodekinds available and thedelegation targetfieldsareeachneveronereturned).takes. Chains: EVM chains plus Solana, XRPL, ⟨6 unchanged words⟩ Tron, Stellar and Sui support token_balance only.ResponsesTheareattestationECDSA-signedis signed twice: ES256, with a kid identifying the key, andcarrya post-quantumcompanionML-DSA-65signature;signatureeach(pqSig, pqKid). Each result includes evaluatedCondition, a SHA-256 conditionHash, and ⟨6 unchanged words⟩ or checkpoint (Sui) it was read at.proof: 'merkle' adds EIP-1186 proofs on supported EVM chains: a balance-slot storage proof for token_balance and ratio_to_amount (an account proof, subject account_balance, for the nativeAncoin),attestationanexpiresaccount30proofminutes(subjectafteraccount_code)itforisaccount_codesigned,and a revocation-slot proof (subject delegation_revocation) for erc7710_delegation. Attestations with a delegation condition expire inor 5 minutesinsteadwhenofit30;includes afaileddelegationresult carries failReason.condition. Costs 1 credit (2 with proof: 'merkle'). An rpc_failure error (503) means a ⟨66 unchanged words⟩
⟨42 unchanged words⟩ :"string"},"conditions":{"description":"1-10Theon-chainlist of 1 to 10 conditions toverifyevaluate. All of them are read in this one call and covered by the one signed attestation.","items":{"additionalProperties":false,"properties" ⟨535 unchanged words⟩ them, the attestation does not simulate enforcement). A delegation result that is not met carries failReason, and an attestation that includes a delegation condition expires in 5 minutes instead of 30.","properties":{"authority":{"description": ⟨1146 unchanged words⟩
Certificate recorded, valid to 2026-11-22
Authorization not required
Changed the definition of "insumer_attest", "insumer_batch_wallet_trust" and "insumer_wallet_trust"
⟨295 unchanged words⟩ no. Current chain and check counts: https://insumermodel.com/llms.txt On this hosted endpoint the call is paid from a shared daily allowance, so the caller is not charged; the credit cost above applies on the caller's own API key, and each result states the price on a key and by x402 pay-per-call.
⟨263 unchanged words⟩ call signs fresh profiles and is charged again. On this hosted endpoint the call is paid from a shared daily allowance, so the caller is not charged; the credit cost above applies on the caller's own API key, and each result states the price on a key and by x402 pay-per-call.
Changed the definition of "insumer_attest", "insumer_batch_wallet_trust" and "insumer_wallet_trust"
⟨62 unchanged words⟩ erc8004_agent (registered ERC-8004 agent on Base),anderc7710_delegation (a signed MetaMask-framework delegation from principal to ⟨10 unchanged words⟩ limits are reported as declaredLimits, not simulated), and account_code (the code state of the wallet address itself at the anchored block on an EVM chain: expect 'none' for a plain key account, 'eip7702' for an EIP-7702 delegation designator, optionally to a given delegate, or 'contract' for any other code; the answer is met or not met, and the code and the delegation target are never returned). Chains: EVM chains plus Solana, XRPL, ⟨46 unchanged words⟩ was read at. proof: 'merkle' adds EIP-1186storageproofs on supported EVMchains.chains: a balance-slot storage proof for token_balance and ratio_to_amount (an account proof, subject account_balance, for the native coin), an account proof (subject account_code) for account_code, and a revocation-slot proof (subject delegation_revocation) for erc7710_delegation. Attestations with a delegation condition expire in 5 ⟨46 unchanged words⟩
Changed the definition of "insumer_batch_wallet_trust" and "insumer_list_tokens"
⟨58 unchanged words⟩ 'merkle'); credits are charged only for successfulprofiles.profiles, while a pay-per-call (x402) payment covers every wallet in the request. A wallet whose reads did not complete gets ⟨10 unchanged words⟩ and never treat the entry as a no. Each profile lists every check, so the response is large; by default the text is a summary per wallet (profile ID, held / not held / not evaluated counts, and the checks held in each dimension), and the complete signed profiles are returned unchanged as structuredContent. Set detail to 'full' on the call to get the complete signed profiles as text too. Profiles cannot be fetched again, so a later call signs fresh profiles and is charged again.
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"detail":{"description":"'summary' (default): the text is a short summary per wallet and the complete signed profiles are in structuredContent. 'full': the complete signed profiles as text too, tens of thousands of characters per wallet (more with optional wallets or merkle proofs). Choose it on the call that needs it: profiles cannot be fetched again, so a second call signs fresh profiles and is charged again. Not sent to the API; it does not change the price of the call.","enum":["summary","full"],"type":"string"},"Changed the definition of "insumer_check_discount", "insumer_get_merchant", "insumer_list_merchants" and 1 more
⟨45 unchanged words⟩ retry, and never treat it as not eligible. The check carries no proof of wallet control, so totalDiscount is what an unproven wallet gets; walletTerms gives the store's terms, and discountIfProven (when present) is what signing would get.
⟨6 unchanged words⟩ token tiers, NFT collections, discount mode, verification status, andverificationwalletTerms:status.what the store gives a wallet with and without proof of control, so you can decide whether to sign before creating a code.
Changed the definition of "insumer_attest", "insumer_batch_wallet_trust", "insumer_check_discount" and 1 more
⟨178 unchanged words⟩ Costs 1 credit (2 with proof). An rpc_failure error (503) means a read did not complete and nothing was signed: retry, and never treat it as a no. Current chain and check counts: https://insumermodel.com/llms.txt
⟨270 unchanged words⟩ 'stellar', or 'sui'"},"contractAddress":{"anyOf":[{"maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9:_]+$","type":"string"},{"maxLength":600,"pattern":"^0x[0-9a-fA-F]{1,64}::[A-Za-z_][A-Za-z0-9_]*::[A-Za-z_][A-Za-z0-9_]*<[A-Za-z0-9:_<>, ]+>$","type":"string"}],"description":"Token or NFT contract address (required ⟨69 unchanged words⟩ ::SUI', and 'native' is not accepted there.","maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9:_]+$","A coin type":"string
Changed the definition of "insumer_attest"
⟨370 unchanged words⟩ :"XRPL trust line currency code (e.g. 'RLUSD', 'USDC'). Case-sensitive: enter it exactly as the issuer created it. Required for XRPL trust line tokens, ignored for other chains.","maxLength":40,"minLength":1,"pattern":"^[A-Za-z0-9\\x20-\\x7E]+$","type":"string"},"decimals" ⟨1047 unchanged words⟩
Changed the definition of "insumer_attest", "insumer_batch_wallet_trust", "insumer_check_discount" and 7 more
before
—after
Verify wallet conditions (signed)before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}Unknown → Live
First tool surface recorded: 10 tools (server version 1.15.0)
https://api.insumermodel.com/mcp (mcp_streamable_http) — from mcp_registry
Showing the latest 14 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨236 unchanged words⟩ no. Current chain and check counts: https://insumermodel.com/llms.txt On this hosted endpoint the call is paid from a shared daily allowance, so the caller is not charged; the credit cost above applies on the caller's own API key, and each result states the price on a key and by x402 pay-per-call.
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"bitcoinWallet":{"description":"Bitcoin address (P2PKH, P2SH, bech32, or Taproot). For verifying native BTC balance. Use chainId 'bitcoin' with contractAddress 'native'.","pattern":"^(?:[13][1-9A-HJ-NP-Za-km-z]{25,34}|(?:bc1|BC1)[02-9ac-hj-np-zAC-HJ-NP-Z]{11,87})$","type":"string"},"conditions":{"description":"1-10 on-chain conditions to verify","items":{"additionalProperties":false,"properties":{"agentId":{"description":"Required for erc8004_agent. The ERC-8004 agent ID as a uint256 decimal string — the caller must supply it (the deployed Identity Registry has no wallet-to-agentId reverse lookup). Met iff the attested wallet owns the agent NFT (ownerOf) or is the registry's signature-verified agentWallet binding. Registry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 on Base; chainId 8453 only. Honest semantics: registration is permissionless minting — the signed statement implies no vetting, no reputation, no endorsement.","pattern":"^\\d{1,78}$","type":"string"},"amount":{"$ref":"#/properties/conditions/items/properties/threshold","description":"For ratio_to_amount: per-request reference amount in token/display units as a decimal string (e.g. \"100\" for 100 USDC, not base units/wei). Numbers are accepted and coerced. Must be > 0."},"assetCode":{"description":"Stellar trustline asset code (e.g. 'USDC', 'BENJI'). Required for Stellar non-native (trustline) tokens. Use contractAddress 'native' for XLM. Ignored for other chains. Flows into conditionHash so different assets on the same issuer produce different hashes.","pattern":"^[A-Za-z0-9]{1,12}$","type":"string"},"attester":{"$ref":"#/properties/wallet","description":"Expected attester address (optional, for eas_attestation)"},"chainId":{"anyOf":[{"description":"EVM chain ID","type":"integer"},{"const":"solana","type":"string"},{"const":"xrpl","type":"string"},{"const":"bitcoin","type":"string"},{"const":"tron","type":"string"},{"const":"stellar","type":"string"},{"const":"sui","type":"string"}],"description":"Chain identifier: EVM chain ID (integer, includes 50 for XDC), 'solana', 'xrpl', 'bitcoin', 'tron', 'stellar', or 'sui'"},"contractAddress":{"anyOf":[{"maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9:_]+$","type":"string"},{"maxLength":600,"pattern":"^0x[0-9a-fA-F]{1,64}::[A-Za-z_][A-Za-z0-9_]*::[A-Za-z_][A-Za-z0-9_]*<[A-Za-z0-9:_<>, ]+>$","type":"string"}],"description":"Token or NFT contract address (required for token_balance, nft_ownership, ratio_to_amount, and ratio_to_supply; ratio_to_supply requires an ERC-20 contract, no native). 'native' means the chain's native coin and is for token_balance and ratio_to_amount only. nft_ownership needs the NFT contract address (0x + 40 hex on EVM); 'native' with nft_ownership is rejected with a 400, so use token_balance for the native coin. On Sui, pass a coin type address::module::Name: native SUI is '0x2::sui::SUI', and 'native' is not accepted there. A coin type may carry type parameters in angle brackets."},"currency":{"description":"XRPL trust line currency code (e.g. 'RLUSD'). Case-sensitive: enter it exactly as the issuer created it. Required for XRPL trust line tokens, ignored for other chains.","maxLength":40,"minLength":1,"pattern":"^[\\x20-\\x7E]+$","type":"string"},"decimals":{"description":"Optional. Leave it out: the token's own decimals are always read from the chain. If sent it is only a cross-check, and a value that differs from the token's own decimals is rejected with a 400.","maximum":77,"minimum":0,"type":"integer"},"delegation":{"additionalProperties":false,"description":"Required for erc7710_delegation. The signed ERC-7710 delegation to evaluate. Met iff ALL of: attested wallet is the delegate; declared delegator is expectedDelegator; EIP-712 signature verifies (EOA or ERC-1271); unrevoked at the anchored block; every caveat enforcer recognized; any time-window caveat currently satisfied. Recognized enforcers: timestamp (evaluated), erc20_transfer_amount, native_transfer_amount, allowed_targets, limited_calls (the last four are REPORTED as declaredLimits — redemption enforces them, the attestation does not simulate enforcement).","properties":{"authority":{"description":"Root authority only (0xffff…ffff, 32 bytes of 0xff). Delegation chains are unsupported.","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"caveats":{"description":"Caveats the principal signed (max 16). Every enforcer must be recognized or the condition fails — no override.","items":{"additionalProperties":false,"properties":{"enforcer":{"description":"Caveat enforcer contract address","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"terms":{"description":"ABI-encoded caveat terms (hex)","maxLength":20000,"pattern":"^0x[0-9a-fA-F]*$","type":"string"}},"required":["enforcer","terms"],"type":"object"},"maxItems":16,"type":"array"},"delegate":{"description":"Agent wallet the delegation authorizes. Must equal the attested wallet.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"delegator":{"description":"Principal address that signed the delegation. Must equal expectedDelegator.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"salt":{"anyOf":[{"$ref":"#/properties/conditions/items/properties/agentId"},{"minimum":0,"type":"integer"}],"description":"Delegation salt (decimal string; numbers coerced)"},"signature":{"description":"EIP-712 signature over the delegation (hex). EOA recovery, or ERC-1271 for smart-contract principals.","maxLength":20000,"pattern":"^0x[0-9a-fA-F]*$","type":"string"}},"required":["delegator","delegate","authority","caveats","salt","signature"],"type":"object"},"delegationManager":{"$ref":"#/properties/wallet","description":"Required for erc7710_delegation. DelegationManager contract the delegation was signed against — one of the recognized MetaMask Delegation Framework managers on Base (current default 0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3). chainId 8453 only."},"expectedDelegator":{"$ref":"#/properties/wallet","description":"Required for erc7710_delegation. The principal address the caller asserts authorized this agent. The condition fails unless the delegation's declared delegator matches — without it a self-delegation would read as authority, so there is no structural-only mode."},"indexer":{"$ref":"#/properties/wallet","description":"EAS indexer contract address (optional, for eas_attestation)"},"label":{"description":"Human-readable label","maxLength":100,"type":"string"},"minFraction":{"$ref":"#/properties/conditions/items/properties/threshold","description":"For ratio_to_supply: required share of total supply, a decimal string in (0,1] (e.g. \"0.005\" for 0.5%). Met iff balance / totalSupply() >= minFraction. Numbers are accepted and coerced. For project/governance tokens, not stablecoins."},"multiple":{"$ref":"#/properties/conditions/items/properties/threshold","description":"For ratio_to_amount: collateralization multiple as a decimal string (e.g. \"10\" for 'hold >= 10x the amount'). Met iff balance >= multiple * amount. Numbers are accepted and coerced. Must be > 0."},"schemaId":{"description":"EAS schema ID (bytes32 hex). Required for eas_attestation unless template is provided.","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"selector":{"description":"Required for evm_view_call. Canonical signature of a view function returning bool, in the form 'functionName(address)' (e.g. 'hasAccess(address)'). Single-address-argument view functions only; the 4-byte selector is derived from this signature.","maxLength":100,"pattern":"^[A-Za-z_][A-Za-z0-9_]*\\(address\\)$","type":"string"},"taxon":{"description":"XRPL NFToken taxon filter: an integer from 0 to 4294967295 (optional, for nft_ownership on XRPL only). Filters NFTs by issuer + taxon.","maximum":4294967295,"minimum":0,"type":"integer"},"template":{"description":"Compliance template name. Use instead of raw schemaId/attester/indexer for eas_attestation. Gitcoin Passport templates check Sybil resistance on Optimism.","enum":["coinbase_verified_account","coinbase_verified_country","coinbase_one","gitcoin_passport_score","gitcoin_passport_active"],"type":"string"},"threshold":{"anyOf":[{"maxLength":80,"pattern":"^\\d+(\\.\\d+)?$","type":"string"},{"type":"number"}],"description":"Minimum balance for token_balance, as a decimal string in token/display units (e.g. \"100\", not base units). Numbers are accepted and coerced to a string. Must be > 0 when proof is merkle."},"type":{"description":"Condition type: token_balance, nft_ownership (EVM, Solana and XRPL), eas_attestation, farcaster_id (Farcaster IdRegistry on Optimism), evm_view_call (single-address-argument view function returning bool; RPC EVM chains only), ratio_to_amount (balance >= multiple * amount; RPC EVM chains only), ratio_to_supply (balance / totalSupply >= minFraction; RPC EVM chains, ERC-20 only), erc8004_agent (registered ERC-8004 agent on Base; agentId required), or erc7710_delegation (signed MetaMask-framework delegation validity on Base; delegationManager, expectedDelegator, and delegation required; max 3 per request)","enum":["token_balance","nft_ownership","eas_attestation","farcaster_id","evm_view_call","ratio_to_amount","ratio_to_supply","erc8004_agent","erc7710_delegation"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":10,"minItems":1,"type":"array"},"declaredLimits":{"description":"Set to 'omit' to leave decoded caveat limits out of the signed results of erc7710_delegation conditions, so a forwarded attestation does not carry the principal's spending ceiling. met, delegationHash, and conditionHash are byte-identical either way.","enum":["omit"],"type":"string"},"format":{"description":"Set to 'jwt' to include a Wallet Auth by InsumerAPI token (ES256-signed JWT) in the response, with its ML-DSA-65 sibling pqJwt beside it. The jwt is verifiable by any standard JWT library using JWKS at /.well-known/jwks.json.","enum":["jwt"],"type":"string"},"proof":{"description":"Set to 'merkle' for EIP-1186 Merkle storage proofs (2 credits). For token_balance on supported EVM chains (not ZKsync Era, Sei, Viction or XDC Network, and not on non-EVM chains); for erc7710_delegation, a storage proof of the revocation slot (subject 'delegation_revocation') on managers with an on-chain-verified layout.","enum":["merkle"],"type":"string"},"solanaWallet":{"description":"Solana wallet address (base58)","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"},"stellarWallet":{"description":"Stellar wallet address (G-prefixed). For verifying XLM or trustline assets (USDC, BENJI, etc.). Use chainId 'stellar' with the asset issuer's G-address as contractAddress and pass assetCode (e.g. 'USDC'). Soroban contract balances not visible — classic trustlines only.","pattern":"^G[A-Z2-7]{55}$","type":"string"},"suiWallet":{"description":"Sui wallet address (0x + 64 hex chars). For verifying SUI or other Sui coins (e.g. USDC). Use chainId 'sui' with the Sui coin type as contractAddress: '0x2::sui::SUI' for native SUI, or the full coin type address::module::Name for other coins. The string 'native' is not accepted on Sui.","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"tronWallet":{"description":"Tron wallet address (T-prefixed, base58). For verifying TRX or TRC20 tokens (USDT-TRC20). Use chainId 'tron'.","pattern":"^T[1-9A-HJ-NP-Za-km-z]{33}$","type":"string"},"wallet":{"description":"EVM wallet address (0x...)","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"xrplWallet":{"description":"XRPL wallet address (r-address). For verifying XRP, trust line tokens (RLUSD, USDC), or NFTs on XRP Ledger.","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","type":"string"}},"required":["conditions"],"type":"object"}after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"bitcoinWallet":{"description":"Bitcoin address (P2PKH, P2SH, bech32, or Taproot). For verifying native BTC balance. Use chainId 'bitcoin' with contractAddress 'native'.","pattern":"^(?:[13][1-9A-HJ-NP-Za-km-z]{25,34}|(?:bc1|BC1)[02-9ac-hj-np-zAC-HJ-NP-Z]{11,87})$","type":"string"},"conditions":{"description":"1-10 on-chain conditions to verify","items":{"additionalProperties":false,"properties":{"agentId":{"description":"Required for erc8004_agent. The ERC-8004 agent ID as a uint256 decimal string; the caller must supply it (the deployed Identity Registry has no wallet-to-agentId reverse lookup). Met iff the attested wallet owns the agent NFT (ownerOf) or is the registry's signature-verified agentWallet binding. Registry 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 on Base; chainId 8453 only. Honest semantics: registration is permissionless minting, so the signed statement implies no vetting, no reputation, no endorsement.","pattern":"^\\d{1,78}$","type":"string"},"amount":{"$ref":"#/properties/conditions/items/properties/threshold","description":"For ratio_to_amount: per-request reference amount in token/display units as a decimal string (e.g. \"100\" for 100 USDC, not base units/wei). Numbers are accepted and coerced. Must be > 0."},"assetCode":{"description":"Stellar trustline asset code (e.g. 'USDC', 'BENJI'). Required for Stellar non-native (trustline) tokens. Use contractAddress 'native' for XLM. Ignored for other chains. Flows into conditionHash so different assets on the same issuer produce different hashes.","pattern":"^[A-Za-z0-9]{1,12}$","type":"string"},"attester":{"$ref":"#/properties/wallet","description":"Expected attester address (optional, for eas_attestation)"},"chainId":{"anyOf":[{"description":"EVM chain ID","type":"integer"},{"const":"solana","type":"string"},{"const":"xrpl","type":"string"},{"const":"bitcoin","type":"string"},{"const":"tron","type":"string"},{"const":"stellar","type":"string"},{"const":"sui","type":"string"}],"description":"Chain identifier: EVM chain ID (integer, includes 50 for XDC), 'solana', 'xrpl', 'bitcoin', 'tron', 'stellar', or 'sui'"},"contractAddress":{"anyOf":[{"maxLength":200,"minLength":1,"pattern":"^[A-Za-z0-9:_]+$","type":"string"},{"maxLength":600,"pattern":"^0x[0-9a-fA-F]{1,64}::[A-Za-z_][A-Za-z0-9_]*::[A-Za-z_][A-Za-z0-9_]*<[A-Za-z0-9:_<>, ]+>$","type":"string"}],"description":"Token or NFT contract address (required for token_balance, nft_ownership, ratio_to_amount, and ratio_to_supply; ratio_to_supply requires an ERC-20 contract, no native). 'native' means the chain's native coin and is for token_balance and ratio_to_amount only. nft_ownership needs the NFT contract address (0x + 40 hex on EVM); 'native' with nft_ownership is rejected with a 400, so use token_balance for the native coin. On Sui, pass a coin type address::module::Name: native SUI is '0x2::sui::SUI', and 'native' is not accepted there. A coin type may carry type parameters in angle brackets."},"currency":{"description":"XRPL trust line currency code (e.g. 'RLUSD'). Case-sensitive: enter it exactly as the issuer created it. Required for XRPL trust line tokens, ignored for other chains.","maxLength":40,"minLength":1,"pattern":"^[\\x20-\\x7E]+$","type":"string"},"decimals":{"description":"Optional. Leave it out: the token's own decimals are always read from the chain. If sent it is only a cross-check, and a value that differs from the token's own decimals is rejected with a 400.","maximum":77,"minimum":0,"type":"integer"},"delegate":{"$ref":"#/properties/wallet","description":"For account_code with expect 'eip7702' only (a 400 with any other expect): an EVM address; met iff the wallet's EIP-7702 designator points at it. Echoed in lowercase inside the signed evaluatedCondition as the caller's input; the actual delegation target is never returned."},"delegation":{"additionalProperties":false,"description":"Required for erc7710_delegation. The signed ERC-7710 delegation to evaluate. Met iff ALL of: attested wallet is the delegate; declared delegator is expectedDelegator; EIP-712 signature verifies (EOA or ERC-1271); unrevoked at the anchored block; every caveat enforcer recognized; any time-window caveat currently satisfied. Recognized enforcers: timestamp (evaluated), erc20_transfer_amount, native_transfer_amount, allowed_targets, limited_calls (the last four are REPORTED as declaredLimits: redemption enforces them, the attestation does not simulate enforcement).","properties":{"authority":{"description":"Root authority only (0xffff…ffff, 32 bytes of 0xff). Delegation chains are unsupported.","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"caveats":{"description":"Caveats the principal signed (max 16). Every enforcer must be recognized or the condition fails, with no override.","items":{"additionalProperties":false,"properties":{"enforcer":{"description":"Caveat enforcer contract address","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"terms":{"description":"ABI-encoded caveat terms (hex)","maxLength":20000,"pattern":"^0x[0-9a-fA-F]*$","type":"string"}},"required":["enforcer","terms"],"type":"object"},"maxItems":16,"type":"array"},"delegate":{"description":"Agent wallet the delegation authorizes. Must equal the attested wallet.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"delegator":{"description":"Principal address that signed the delegation. Must equal expectedDelegator.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"salt":{"anyOf":[{"$ref":"#/properties/conditions/items/properties/agentId"},{"minimum":0,"type":"integer"}],"description":"Delegation salt (decimal string; numbers coerced)"},"signature":{"description":"EIP-712 signature over the delegation (hex). EOA recovery, or ERC-1271 for smart-contract principals.","maxLength":20000,"pattern":"^0x[0-9a-fA-F]*$","type":"string"}},"required":["delegator","delegate","authority","caveats","salt","signature"],"type":"object"},"delegationManager":{"$ref":"#/properties/wallet","description":"Required for erc7710_delegation. DelegationManager contract the delegation was signed against: one of the recognized MetaMask Delegation Framework managers on Base (current default 0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3). chainId 8453 only."},"expect":{"description":"Required for account_code: the code state the wallet address itself must be in at the anchored block. 'none' is no code (a plain key account); 'eip7702' is the EIP-7702 delegation designator (a key that has delegated execution to a contract); 'contract' is any other code (a smart-contract wallet, a protocol, a token). The three states are exclusive on a chain. EVM chains only; a non-EVM chainId is rejected with a 400. The result is met or not met, like every type: the code and the delegation target are never returned, in any format or mode. The signed evaluatedCondition is {type, chainId, expect, operator: 'code_state'}. With proof 'merkle', the proof is an EIP-1186 account proof (subject 'account_code') whose codeHash is the proven value.","enum":["none","eip7702","contract"],"type":"string"},"expectedDelegator":{"$ref":"#/properties/wallet","description":"Required for erc7710_delegation. The principal address the caller asserts authorized this agent. The condition fails unless the delegation's declared delegator matches. Without it a self-delegation would read as authority, so there is no structural-only mode."},"indexer":{"$ref":"#/properties/wallet","description":"EAS indexer contract address (optional, for eas_attestation)"},"label":{"description":"Human-readable label","maxLength":100,"type":"string"},"minFraction":{"$ref":"#/properties/conditions/items/properties/threshold","description":"For ratio_to_supply: required share of total supply, a decimal string in (0,1] (e.g. \"0.005\" for 0.5%). Met iff balance / totalSupply() >= minFraction. Numbers are accepted and coerced. For project/governance tokens, not stablecoins."},"multiple":{"$ref":"#/properties/conditions/items/properties/threshold","description":"For ratio_to_amount: collateralization multiple as a decimal string (e.g. \"10\" for 'hold >= 10x the amount'). Met iff balance >= multiple * amount. Numbers are accepted and coerced. Must be > 0."},"schemaId":{"description":"EAS schema ID (bytes32 hex). Required for eas_attestation unless template is provided.","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"selector":{"description":"Required for evm_view_call. Canonical signature of a view function returning bool, in the form 'functionName(address)' (e.g. 'hasAccess(address)'). Single-address-argument view functions only; the 4-byte selector is derived from this signature.","maxLength":100,"pattern":"^[A-Za-z_][A-Za-z0-9_]*\\(address\\)$","type":"string"},"taxon":{"description":"XRPL NFToken taxon filter: an integer from 0 to 4294967295 (optional, for nft_ownership on XRPL only). Filters NFTs by issuer + taxon.","maximum":4294967295,"minimum":0,"type":"integer"},"template":{"description":"Compliance template name. Use instead of raw schemaId/attester/indexer for eas_attestation. Gitcoin Passport templates check Sybil resistance on Optimism.","enum":["coinbase_verified_account","coinbase_verified_country","coinbase_one","gitcoin_passport_score","gitcoin_passport_active"],"type":"string"},"threshold":{"anyOf":[{"maxLength":80,"pattern":"^\\d+(\\.\\d+)?$","type":"string"},{"type":"number"}],"description":"Minimum balance for token_balance, as a decimal string in token/display units (e.g. \"100\", not base units). Numbers are accepted and coerced to a string. Must be > 0 when proof is merkle."},"type":{"description":"Condition type: token_balance, nft_ownership (EVM, Solana and XRPL), eas_attestation, farcaster_id (Farcaster IdRegistry on Optimism), evm_view_call (single-address-argument view function returning bool; EVM chains only), ratio_to_amount (balance >= multiple * amount; EVM chains only), ratio_to_supply (balance / totalSupply >= minFraction; EVM chains, ERC-20 only), erc8004_agent (registered ERC-8004 agent on Base; agentId required), erc7710_delegation (signed MetaMask-framework delegation validity on Base; delegationManager, expectedDelegator, and delegation required; max 3 per request), or account_code (the code state of the wallet address itself on an EVM chain; expect required, delegate optional with expect 'eip7702'; no contractAddress)","enum":["token_balance","nft_ownership","eas_attestation","farcaster_id","evm_view_call","ratio_to_amount","ratio_to_supply","erc8004_agent","erc7710_delegation","account_code"],"type":"string"}},"required":["type"],"type":"object"},"maxItems":10,"minItems":1,"type":"array"},"declaredLimits":{"description":"Set to 'omit' to leave decoded caveat limits out of the signed results of erc7710_delegation conditions, so a forwarded attestation does not carry the principal's spending ceiling. met, delegationHash, and conditionHash are byte-identical either way.","enum":["omit"],"type":"string"},"format":{"description":"Set to 'jwt' to include a Wallet Auth by InsumerAPI token (ES256-signed JWT) in the response, with its ML-DSA-65 sibling pqJwt beside it. The jwt is verifiable by any standard JWT library using JWKS at /.well-known/jwks.json.","enum":["jwt"],"type":"string"},"proof":{"description":"Set to 'merkle' for EIP-1186 Merkle proofs (2 credits, refunded to 1 when no proof is delivered). For token_balance or ratio_to_amount against an ERC-20, a storage proof of the balance slot (no subject field); for the same conditions with contractAddress 'native', an account proof whose balance field is the value evaluated (subject 'account_balance'); for account_code, an account proof whose codeHash is the value evaluated (subject 'account_code'); for erc7710_delegation, a storage proof of the revocation slot (subject 'delegation_revocation') on managers with an on-chain-verified layout. Supported EVM chains only (not ZKsync Era, Sei, Viction or XDC Network, and not on non-EVM chains).","enum":["merkle"],"type":"string"},"solanaWallet":{"description":"Solana wallet address (base58)","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","type":"string"},"stellarWallet":{"description":"Stellar wallet address (G-prefixed). For verifying XLM or trustline assets (USDC, BENJI, etc.). Use chainId 'stellar' with the asset issuer's G-address as contractAddress and pass assetCode (e.g. 'USDC'). Soroban contract balances not visible; classic trustlines only.","pattern":"^G[A-Z2-7]{55}$","type":"string"},"suiWallet":{"description":"Sui wallet address (0x + 64 hex chars). For verifying SUI or other Sui coins (e.g. USDC). Use chainId 'sui' with the Sui coin type as contractAddress: '0x2::sui::SUI' for native SUI, or the full coin type address::module::Name for other coins. The string 'native' is not accepted on Sui.","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"tronWallet":{"description":"Tron wallet address (T-prefixed, base58). For verifying TRX or TRC20 tokens (USDT-TRC20). Use chainId 'tron'.","pattern":"^T[1-9A-HJ-NP-Za-km-z]{33}$","type":"string"},"wallet":{"description":"EVM wallet address (0x...)","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"xrplWallet":{"description":"XRPL wallet address (r-address). For verifying XRP, trust line tokens (RLUSD, USDC), or NFTs on XRP Ledger.","pattern":"^r[1-9A-HJ-NP-Za-km-z]{24,34}$","type":"string"}},"required":["conditions"],"type":"object"}⟨6 unchanged words⟩ up to 10 wallets in a single request.Shared block fetches make this fasterFaster than sequential calls. Each wallet gets an independently signed profile with its own TRST-XXXXXID.ID: 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, nfts, staking, institutional_stablecoins, tokenized_treasuries, stablecoin_deposits, wrapped_bitcoin, names, account), up to 176 checks across 29 chains in 14 dimensions with the optional Solana, XRPL, Bitcoin and Tron wallets; the signed conditionSetVersion (currently 2026-10-08) names the check list. Dimensions arrive in a fixed order, identical for every wallet in the batch: the base dimensions as listed, then any of solana, xrpl, bitcoin and tron that were switched on, in that order. Supports partial success: failed wallets get error entries ⟨89 unchanged words⟩ counts, and the checks held in each dimension, in the fixed dimension order; the account dimension's checks are present rather than held), and the complete signed profiles are returned ⟨35 unchanged words⟩
⟨16 unchanged words⟩ checks organized into dimensions (stablecoins, governance,NFTsnfts, staking,institutional stablecoinsinstitutional_stablecoins,tokenized treasuriestokenized_treasuries,stablecoin depositsstablecoin_deposits,wrapped bitcoinwrapped_bitcoin, names, account).: 155 base checks across 27 chains in 10 dimensions. Optional Solana, XRPL, Bitcoin and Tron wallets add their own dimensions, up to 176 checks across 29 chains in 14 dimensions; optional Stellar and Sui wallets let rows inside existing dimensions evaluate. Dimensions arrive in a fixed order: the base dimensions as listed, then any of solana, xrpl, bitcoin and tron that were switched on, in that order. The account dimension holds two rows per chain on Ethereum, Base, Arbitrum, Optimism and Polygon: contract code at the wallet address, and an EIP-7702 delegation there; a plain key reads false on both, and which contract is never named. Rows on a chain whose wallet is not ⟨8 unchanged words⟩ false. Every check is held or not held (present or not present in the account dimension), never a balance. The signed conditionSetVersion (currently 2026-10-08) names the check list that was run; log ⟨60 unchanged words⟩
⟨57 unchanged words⟩ computed rather than stored (Aave aTokens, BUIDL), NFT/non-EVM rows andNFT/non-EVMthe account rows are declined with areason;reason (an account proof is available from the attest tool's account_code condition); the premium is refunded whenever no proof is ⟨159 unchanged words⟩
Listall registeredthe tokens and NFT collections listed in the Insumer registry. Filter by chain, symbol, or asset type. The registry is a directory, not the list of what can be checked: an attestation can check any token on a supported chain, and NFTs on EVM chains, Solana and XRPL, whether listed or not. An empty result means nothing is listed under that filter, not that the token is unsupported.
⟨12 unchanged words⟩ Returns company name, website, tokens accepted, discount info, anddiscountwalletTermsinfo.(the store's terms with and without proof of wallet control).
⟨16 unchanged words⟩ percent, and expiry. Returns valid/invalid status withreason.reason, and walletProven (whether the code went to a caller that proved control of the wallet). No authentication required, no credits consumed. Does ⟨6 unchanged words⟩
⟨59 unchanged words⟩ ); credits are charged only for successful profiles. A wallet whose reads did not complete gets an error entry and no signed profile: retry that wallet, and never treat the entry as a no.
⟨20 unchanged words⟩ raw balance amounts. Free: does not consume credits. Takes an EVM, Solana or XRPL wallet. An rpc_failure error (503) means a read did not complete: retry, and never treat it as not eligible.
⟨30 unchanged words⟩ ,44}$","type":"string"},"stellarWallet":{"description":"Stellar wallet address (G-prefixed)","pattern":"^G[A-Z2-7]{55}$","type":"string"},"suiWallet":{"description":"Sui wallet address (0x + 64 hex)","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"tronWallet":{"description":"Tron wallet address (T-prefixed)","pattern":"^T[1-9A-HJ-NP-Za-km-z]{33}$","type":"string"},"wallet":{"description":"EVM wallet address ( ⟨26 unchanged words⟩
⟨118 unchanged words⟩ 3 credits (6 with proof: 'merkle'). An rpc_failure error (503) means a read did not complete and nothing was signed: retry, and never treat it as a no. Current chain and check counts: https://insumermodel.com/llms.txt
before
—after
Batch wallet trust profiles (signed)before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
Check a discount (free)before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
List compliance templatesbefore
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
Get a merchant profilebefore
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
Get public signing keysbefore
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
List merchantsbefore
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
List registered tokensbefore
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
Validate a discount codebefore
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}before
—after
Wallet trust profile (signed)before
—after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"properties":{"data":{"description":"The endpoint's payload: a signed attestation, trust profile, discount, merchant or token records"},"error":{"description":"Error details when ok is false"},"items":{"description":"The result when the endpoint returns a JSON array","items":{},"type":"array"},"keys":{"description":"JWKS entries (insumer_jwks)","items":{},"type":"array"},"message":{"description":"A plain-text result (insumer_setup), or a message from the API"},"meta":{"description":"Response metadata such as version and timestamp"},"ok":{"description":"true when the API call succeeded","type":"boolean"}},"type":"object"}