New endpoints, SDK releases, chain support, and spec changes. Updated as features ship.
keyDelivery body field ("wallet" | "apiKey" | "both", default "wallet"). On EVM purchases where the Insumer Access pass mints successfully, the default response omits the API key string entirely — the wallet + pass is the credential and there is nothing for the agent to store or leak. Callers that prefer a bearer key (legacy HTTP clients, cold-storage backup) opt in with keyDelivery: "apiKey". The key is always returned on non-EVM purchases (Solana, BTC, Tron) and on deferred mints so no buyer is ever left without a usable credential. The response now also carries authMethod ("wallet" | "apiKey" | "both") and, on the wallet path, a human-readable authHint.Authorization: Wallet is now accepted on POST /v1/attest, POST /v1/trust, POST /v1/trust/batch, GET /v1/credits, and POST /v1/credits/buy. Other endpoints continue to return 501 for this scheme. An SBT-holding agent can now run the full read-side lifecycle — attest against conditions, generate wallet trust profiles, batch-profile counterparties, check own balance, and top up credits — without ever handling an API key.updateWallet: true on POST /v1/credits/buy is ignored for wallet-auth callers. The SIWE signer is already bound to the registered wallet, and the soulbound Insumer Access pass cannot follow a rotation, so honouring the rewrite would silently lock the caller out on the next sign-in. To rotate the registered wallet, use X-API-Key auth.X-API-Key flows are unchanged on every endpoint. Blog post: Your Agent Doesn't Need an API Key.0x3E2a408cc6eceba04FF9d04A5B8B05aBa8DD50ce) — went live on May 18. POST /v1/keys/buy now mints a pass to the EVM sender wallet on every purchase. The pass is the wallet's lifetime membership token, never expires, and cannot follow a rotation.Authorization: Wallet header carrying a SIWE (EIP-4361) envelope from a pass-holding wallet, in place of X-API-Key. The signing wallet must match the wallet that bought the key and must hold the pass on Base. Single-use nonce; Issued At must be within the last 5 minutes. We dogfooded the pattern on our own API first so we could speak from the experience of running it.Authorization: Wallet <base64(JSON({message, signature}))> where message is a SIWE string with domain api.insumermodel.com and signature is an EIP-191 personal_sign. Existing X-API-Key auth on /v1/attest is unaffected.tronWallet (T-prefixed base58, 34 chars) with chainId: "tron" for native TRX and TRC-20 tokens including USDT-TRC20; stellarWallet (G-prefixed StrKey, 56 chars) with chainId: "stellar" for native XLM and classic trustlines (use the new assetCode field for trustline assets); and suiWallet (0x + 64 hex) with chainId: "sui" for native SUI and Sui-native tokens via fully-qualified Move type strings.wallet field; xdc... addresses are auto-normalized to 0x... form.tronWallet is supplied; existing Solana, XRPL, and Bitcoin optional dimensions carry forward.txHash with chainId: "tron". Stellar and Sui are read-only — not payment chains. Merchant token-tier configuration (/v1/merchants/{id}/tokens, /v1/merchants/{id}/nfts) still covers EVM + Solana + XRPL only (33 chains).ledgerIndex + ledgerHash (parallel to XRPL); Sui carries checkpointSequence + checkpointDigest.draft-borthwick-wallet-state-attestation-00 to the IETF Datatracker. Independent Submission stream, Informational, 19 pages, expires November 13, 2026. Archived .txt at ietf.org/archive/id.environment.* constraint family Internet-Draft (May 12) and other public adoption artifacts informatively.draft-borthwick-msebenzi-environment-state-00 to the IETF Datatracker. Independent Submission stream, Informational, 43 pages, expires November 12, 2026. Archived .txt at ietf.org/archive/id.environment.* constraint family for autonomous-agent mandate vocabulary — membership criterion, family-wide fields, composition discipline, register discipline, security considerations, and IANA registry mechanics. Does not define any individual constraint type.environment.wallet_state, Headless Oracle for environment.market_state — with the family-definition Internet-Draft the converged parent document. Both type specifications are referenced informatively in Appendix A.token_balance, nft_ownership, eas_attestation (Coinbase Verified, Gitcoin Passport templates), and farcaster_id. Mix any of them in a single call@insumermodel/mppx-condition-gate. The previous package is deprecated on npm with a redirect; Tempo’s MPP extensions page entry update is open/v1/attest returning a signed-boolean attestation against an ERC-8183 envelope. Also authored SkyeMeta’s case.proof: "merkle" returns full EIP-1186 storage proofs. Verified live via a USDC condition against a holder wallet: mappingSlot: 9, 7-node accountProof, storageProof value matches the raw balance.eth_getProof.eth_getProof. No backend change; docs updated across openapi.yaml, llms-full.txt, the Merkle-proof blog, and the A2A/x402 specs.blockHeight (integer) and blockHash (64-character hex) inside the ECDSA-signed payload — the Bitcoin chain tip at the time of wallet state observation.blockNumber+blockTimestamp on EVM, slot on Solana, ledgerIndex+ledgerHash on XRPL, blockHeight+blockHash on Bitcoin.POST /v1/attest, POST /v1/trust, POST /v1/trust/batch.AttestationResult and TrustCheck schemas updated with the new blockHeight and blockHash fields.blockNumber and blockTimestamp are now present on every signed result across all 31 EVM chains. Previously, if the RPC helper silently failed on the block-lookup step, an attestation could sign with the anchor fields absent.eth_blockNumber or eth_getBlockByNumber fails, the API now returns 503 with a retryable error payload (no credits charged) instead of signing a partial result.POST /v1/attest, POST /v1/trust, POST /v1/trust/batch.AttestationResult and TrustCheck schema descriptions updated; the prior “26 of 31” carve-out for Taiko, Ronin, Moonriver, and Viction was stale — those chains have always returned the same anchor fields via direct public RPC.slot field (integer) identifying the Solana ledger slot at which the wallet state was read. Parallel to blockNumber on EVM chains and ledgerIndex on XRPL.POST /v1/attest, POST /v1/trust, POST /v1/trust/batch.AttestationResult and TrustCheck schemas updated with the new slot field.insumer-skill — Wallet Auth for Claude Codejose. Verified end-to-end on April 13.smithery skill add douglasborthwick/insumer-skill.@insumermodel/plugin-eliza v2.0.0 — Scoped Package Renameeliza-plugin-insumer to @insumermodel/plugin-eliza to match the elizaOS registry format convention (all entries in index.json use @org/plugin-name).@insumermodel/plugin-eliza@2.0.0. Same 10 actions, same source code, zero functional changes.eliza-plugin-insumer deprecated on npm pointing to the new name.npm install @insumermodel/plugin-eliza.type, fetches each issuer’s public key via standard JWKS, and verifies signatures independently.multi-attest-verify.js) resolves the JWKS, fetches a live attestation, and returns a verified result with no issuer cooperation beyond the published endpoints.agent-governance-vocabulary — Co-author of vocabulary.yamlvocabulary.yaml and sole author of the insumerapi.yaml crosswalk in aeoess/agent-governance-vocabulary, merged via PR #1./v1/trust for Counterparty Risk ScoringPOST /v1/trust as the wallet analysis signal in their counterparty risk scoring API. Trust profile dimensions surface at signal_scores.wallet.details.insumer_trust in every Revettr score responsebitcoinWallet parameter on POST /v1/attest and GET /v1/trust. Supports P2PKH (1...), P2SH (3...), bech32 (bc1q...), and Taproot (bc1p...) addressesbitcoinWallet to add a native BTC balance check alongside stablecoins, governance, NFTs, staking, Solana, and XRPLdev.ucp.shopping.eligibility/v1/attest with SkyeMeta’s SkyeWoo.@insumermodel/mppx-token-gate listed as the first entry on Tempo’s new Extensions page. Wraps any MPP Method.Server to grant free access to token holders — one API call checks ownership across 37 chains and returns a signed receipt/v1/attest for Pre-Transaction VerificationPOST /v1/attest as the pre-transaction verification layer in their Settlement Attestation Record (SAR) flow. Wallet auth qualifies agents going in, SAR verifies delivery coming outmulti-attest-verify.js shipped in insumer-examples. Zero dependencies, supports ES256 (P-256) and EdDSA (Ed25519), handles both raw P1363 signatures and JWT compact JWSPOST /v1/attest. Agents declare wallet conditions, join channels, and receive per-agent ECDSA-signed attestation JWTs. Sessions re-verify on demand. Sell the token, lose the sessionPOST /v1/keys/buy. 10 free attestation calls per agentchannel parameter added to POST /v1/keys/buy for partner revenue share trackingPOST /v1/attest. Restrict product visibility and purchases based on wallet conditions. Wallet-verified discounts apply automatically at checkout. No coupon codes to leakPOST /v1/attest. Gate any page, post, or block with a shortcode. Connects MetaMask, Phantom, and Coinbase Wallet simultaneouslyPOST /v1/attest returns native gas token balance verdicts (ETH, POL, BNB, AVAX, etc.) accurately on all 31 EVM chains when contractAddress: "native" is set. Native balances flow through eth_getBalance lookups, distinct from ERC-20 balanceOf calls used for token balance evaluation.provider_jwks / kid / payload / sig) now in the spec. Suggestions for kid field and full signed payload accepted by spec author.POST /v1/attest output maps directly to the extension wire format.eliza-plugin-insumer expanded from 4 to 10 actions covering the complete autonomous agent lifecycle — no human required at any step: BUY_API_KEY, CREATE_MERCHANT, CONFIGURE_TOKENS, ADD_CREDITS, VERIFY_WALLET, CHECK_TRUST, CHECK_TRUST_BATCH, ACP_DISCOUNT, UCP_DISCOUNT, CONFIRM_PAYMENT.currency field to token config for XRPL trust line support; refines ACP/UCP discount display to read correct response fields.POST /v1/keys/buy — buy an API key with USDC, no email or prior authentication required. The sender wallet from the on-chain transaction becomes the key’s identity. One key per wallet.POST /v1/keys/create) remains unchanged for human developers.mcp-server-insumer v1.8.0: new insumer_buy_key tool.langchain-insumer v0.10.0: new InsumerBuyKeyTool (26 tools total).eliza-plugin-insumer v1.1.0: new BUY_API_KEY action (4 actions total).POST /v1/credits/buy and POST /v1/merchants/{id}/credits now verify the on-chain sender. First purchase registers the sender wallet to the API key. Subsequent purchases must come from the same sender.updateWallet parameter (boolean): set to true to change the registered wallet. The verified USDC transfer from the new address proves ownership.mcp-server-insumer v1.7.14 published to npm with updateWallet on both buy credits tools.langchain-insumer tools updated with update_wallet parameter.langchain-insumer v0.9.13 published to PyPI: added XRPL response field documentation to attest() docstring and README — ledgerHash, trustLineState: { frozen }, and frozen trust line behavior (met: false).POST /v1/attest with 4 conditions (USDC balance, Coinbase KYC, country verification, Gitcoin Passport) in a single API callerror.code: "rpc_failure" when an upstream data source is unavailable after retries. No attestation signed, no JWT issued, no credits charged. Retryable after 2–5 seconds.failedConditions array identifying which source and chain failed.POST /v1/attest, POST /v1/trust, POST /v1/verify, POST /v1/acp/discount, POST /v1/ucp/discount. (POST /v1/trust/batch handles failures per-wallet and always returns 200.)insumer-verify v1.3.0, mcp-server-insumer v1.7.5, langchain-insumer v0.9.7, eliza-plugin-insumer v1.0.4 published with rpc_failure documentation.RpcFailureEnvelope schema on all 5 endpoints.format: "jwt" parameter on POST /v1/attest returns an ES256-signed JWT bearer token alongside the standard attestation response. No additional cost.pass, results, conditionHash, blockNumber, and blockTimestamp. 30-minute expiry. Verifiable via JWKS at /.well-known/jwks.json or GET /v1/jwks.insumer-verify v1.2.0 published to npm: auto-detects JWT string vs attestation object.mcp-server-insumer v1.7.3, langchain-insumer v0.9.5, eliza-plugin-insumer v1.0.2 updated with Wallet Auth support.mcp-server-insumer v1.6.2 published to npm: updated README with langchain-community PR #549 cross-reference, wallet trust tool descriptions now reflect optional Solana + XRPL dimensions (up to 20 checks), batch wallet trust mentions xrplWallet parameter, aligned version strings in server.json and src/index.tslangchain-insumer v0.9.1 published to PyPI: adds XRPL usage examples to README (native XRP, RLUSD trust line, wallet trust with XRPL dimensions); wallet trust tool description now reflects optional Solana + XRPL dimensions (up to 20 checks)langchain-community PR #549 updated to 25 tools: adds xrpl_wallet to 5 existing tools (attest, wallet_trust, batch_wallet_trust, check_discount, verify), adds 5 new tools (acp_discount, ucp_discount, request_domain_verification, verify_domain, validate_code), exports InsumerComplianceTemplates in __all__, adds World Chain (480) to Merkle proof chain listacp-ucp-onchain-eligibility-example repo: adds XRPL examples across all flows (attest, trust, merchant onboarding, ACP, UCP, credits); full_agent_flow.py now carries auth headers across all flowsinsumer-examples repo: added XRPL verification to Python, Node.js, and bash examples, added XRPL curl examples to READMEmcp-server-insumer v1.6.0 published to npm (updated to v1.6.2 same day): xrplWallet parameter on all 7 wallet-accepting tools, XRPL added to ChainId, OnboardingChainId, and UsdcChainId schemas, new currency field for trust line tokens, taxon field for NFT collections, xrplAddress in USDC payment settingslangchain-insumer v0.9.0 published to PyPI: xrpl_wallet parameter on attest, wallet_trust, check_discount, verify, acp_discount, and ucp_discount tools and wrapper methods (updated to v0.9.1 same day)openapi-gpt.yaml) updated with XRPL parameters across all endpoints and legacy server removedrGm7WCVp9gb4jZHWTEtGUr4dd74z2XuWhE) as second check in the XRPL trust dimension. Wallet trust profiles now support up to 20 checks across 6 dimensionsPOST /v1/attest call: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, and XRP Ledger"xrpl" to OnboardingChainId enum in OpenAPI spec, enabling merchants to configure XRPL tokens via PUT /v1/merchants/:id/tokensxrplWallet parameter documentation to commerce (/v1/acp/discount, /v1/ucp/discount), verification, and API reference developer pagesnft_ownership validation: the currency field is now only required for token_balance conditions on trust line tokens.chainId: "xrpl"). Native XRP balance verification, trust line token verification (RLUSD, any issued token), and NFT ownership verificationxrplWallet field on all 7 wallet-accepting endpoints: POST /v1/attest, POST /v1/trust, POST /v1/trust/batch, GET /v1/discount/check, POST /v1/verify, POST /v1/acp/discount, POST /v1/ucp/discountcurrency (XRPL currency code, auto hex-encoded) and taxon (optional NFT filter)ledgerIndex and ledgerHash (XRPL equivalent of block number/hash) for freshness and snapshot verificationmet: false for frozen trust lines even if balance exceeds threshold, with trustLineState: { frozen: true } in the resultopenapi.yaml, llms.txt, llms-full.txt, and all marketing/blog pages to reflect 32-chain supportapi.insumermodel.comversion: 1.0.0 to llms.txt and llms-full.txt for agent cache invalidationeas_attestation condition type with 5 pre-configured compliance templates: coinbase_verified_account, coinbase_verified_country, coinbase_one, gitcoin_passport_score, gitcoin_passport_activeGET /v1/compliance/templates endpoint for listing available templatesPOST /v1/acp/discount and POST /v1/ucp/discount for OpenAI/Stripe ACP and Google UCP commerce protocol integrationfarcaster_id condition type for social identity verification via IdRegistry on Optimism/developers/ into hub + 6 focused vertical pages: verification, trust, compliance, commerce, onboarding, api-referencemcp-server-insumer v1.2.0 and langchain-insumer v0.5.0 with EAS + compliance toolsPOST /v1/trust for ECDSA-signed wallet trust fact profiles across 4 dimensions (stablecoins, governance, NFTs, staking), 17 checks, 7 chainsPOST /v1/trust/batch for profiling up to 10 wallets per request. Shared block fetches make batch 5-8x faster than sequential callsGET /v1/jwks endpoint for public key discovery. Static JWKS also at /.well-known/jwks.jsonkid field added to all signed responses for key rotation supportevaluatedCondition and conditionHash (SHA-256) in attestation results for tamper-evidenceblockNumber (hex) and blockTimestamp (ISO 8601) in RPC chain results for freshness verificationinsumer-verify v1.1.3 published on npm: client-side ECDSA signature verification, condition hash checking, block freshness, and expiry validation. Zero dependenciesproof: "merkle" parameter on POST /v1/attest and POST /v1/trust/v1/discount/check and /v1/verify responses. Booleans only by defaultunsafe-eval from CSP script-src across all pagesX-API-Key authentication (insr_live_ prefix)POST /v1/attest, GET /v1/credits, POST /v1/credits/buy, and 8 merchant onboarding endpointsllms.txt, llms-full.txt, openapi.yaml, ai-plugin.jsonmcp-server-insumer published on npm. Listed on Official MCP Registry, awesome-mcp-servers, mcp.so, mcpservers.orglangchain-insumer published on PyPIframe-src, XSS hardening, email validation, rate limitingunsafe-inline from CSP script-srcrobots.txttranslate="no" on brand names site-wide