← InsumerAPICONTENT HISTORY

Update to InsumerAPI

Snapshot Oct 29, 2026 · 19:10 UTC · version 0.2.2

WHAT CHANGED

Package or technical metadata updated

Package or technical metadata updated

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Save InsumerAPI and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Declared skills

Before

Oct 28, 2026 · 18:06 UTC

[{"description":"Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Us...

After

Oct 29, 2026 · 19:10 UTC

[{"description":"Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Us...

Composer icon url

Before

Oct 28, 2026 · 18:06 UTC

https://files.openai.com/content?id=file_00000000c1a081f59240b447543f45d8

After

Oct 29, 2026 · 19:10 UTC

https://files.openai.com/content?id=file_000000009ccc820db6af57995b1fe588

Logo url

Before

Oct 28, 2026 · 18:06 UTC

https://files.openai.com/content?id=file_00000000e1f881fbad7ed29f68bda9d5

After

Oct 29, 2026 · 19:10 UTC

https://files.openai.com/content?id=file_00000000aea0820db23fc27a91c1ec41

Version

Before

Oct 28, 2026 · 18:06 UTC

0.2.1

After

Oct 29, 2026 · 19:10 UTC

0.2.2

Compare saved observations

Download comparison JSON
Full technical diff · 5 changed fields

changed /release/id

BEFORE
"pluginrel_bf3d2c61f5dc81919d193881fd08a6b2"
AFTER
"pluginrel_456cd7df903c81919b464f2bde2a8b91"

changed /release/interface/composer_icon_url

BEFORE
"https://files.openai.com/content?id=file_00000000c1a081f59240b447543f45d8"
AFTER
"https://files.openai.com/content?id=file_000000009ccc820db6af57995b1fe588"

changed /release/interface/logo_url

BEFORE
"https://files.openai.com/content?id=file_00000000e1f881fbad7ed29f68bda9d5"
AFTER
"https://files.openai.com/content?id=file_00000000aea0820db23fc27a91c1ec41"

changed /release/skills

BEFORE
[
  {
    "description": "Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Use when the user wants InsumerAPI to give a \"verified yes or no\" on whether a wallet satisfies an on-chain condition, to gate a feature by what a wallet holds with InsumerAPI, or to compose an InsumerAPI wallet_state signal in a multi-issuer trust envelope. Read, evaluate, sign, in one call.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-attest",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "code",
      "short_description": "Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Use when the user wants InsumerAPI to give a \"verified yes or no\" on whether a wallet satisfies an on-chain condition, to gate a feature by what a wallet holds with InsumerAPI, or to compose an InsumerAPI wallet_state signal in a multi-issuer trust envelope. Read, evaluate, sign, in one call.\n"
    },
    "name": "insumer-attest",
    "plugin_release_skill_id": "pluginrsk_6ae21825b4c88191ac1bb3ea6a232346"
  },
  {
    "description": "InsumerAPI wallet auth: get an InsumerAPI key, configure INSUMER_API_KEY, check or top up InsumerAPI credits, or debug InsumerAPI 401/402/429 errors. Covers four key paths: free (email), paid (Stripe), an agent's first key paid on-chain, and an on-chain top-up of an existing key. The on-chain paths need the user's explicit approval of every payment.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-auth",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "InsumerAPI wallet auth: get an InsumerAPI key, configure INSUMER_API_KEY, check or top up InsumerAPI credits, or debug InsumerAPI 401/402/429 errors. Covers four key paths: free (email), paid (Stripe), an agent's first key paid on-chain, and an on-chain top-up of an existing key. The on-chain paths need the user's explicit approval of every payment.\n"
    },
    "name": "insumer-auth",
    "plugin_release_skill_id": "pluginrsk_6ae21826bde881918eed238066cb410e"
  },
  {
    "description": "Token-holder discounts at InsumerAPI merchants: read a store's terms, check what a wallet qualifies for (free), optionally prove control of the wallet by signing an EIP-4361 message, and create a signed single-use discount code (INSR-XXXXX). Use when the user or agent wants a holder discount at a store in the InsumerAPI merchant directory, wants to know whether signing with the wallet gets a bigger discount, or needs a discount in ACP or UCP checkout format.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-discount",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Token-holder discounts at InsumerAPI merchants: read a store's terms, check what a wallet qualifies for (free), optionally prove control of the wallet by signing an EIP-4361 message, and create a signed single-use discount code (INSR-XXXXX). Use when the user or agent wants a holder discount at a store in the InsumerAPI merchant directory, wants to know whether signing with the wallet gets a bigger discount, or needs a discount in ACP or UCP checkout format.\n"
    },
    "name": "insumer-discount",
    "plugin_release_skill_id": "pluginrsk_6ae21825b2f4819181312221a6cb85d4"
  },
  {
    "description": "How to use the InsumerAPI MCP tools this plugin connects to (the hosted server at api.insumermodel.com/mcp, no key needed). Use when the user asks to check if a wallet holds a token or an amount, whether a wallet owns an NFT, whether a wallet is a registered ERC-8004 agent, for a wallet trust profile, for InsumerAPI's signing keys or how to verify an attestation, for compliance templates, or for a merchant's discount, and the insumer MCP tools are available. Do not use for exact balances, prices, or sending transactions. Explains the shared daily allowance and when to switch to the REST skills with the user's own key.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-hosted-tools",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "How to use the InsumerAPI MCP tools this plugin connects to (the hosted server at api.insumermodel.com/mcp, no key needed). Use when the user asks to check if a wallet holds a token or an amount, whether a wallet owns an NFT, whether a wallet is a registered ERC-8004 agent, for a wallet trust profile, for InsumerAPI's signing keys or how to verify an attestation, for compliance templates, or for a merchant's discount, and the insumer MCP tools are available. Do not use for exact balances, prices, or sending transactions. Explains the shared daily allowance and when to switch to the REST skills with the user's own key.\n"
    },
    "name": "insumer-hosted-tools",
    "plugin_release_skill_id": "pluginrsk_6ae21826d11c81919655d15099a28cfd"
  },
  {
    "description": "Offline ES256 verification of InsumerAPI signed responses against the public JWKS. Use when the user receives a signed attestation from /v1/attest, /v1/trust, or /v1/trust/batch and needs to verify the signature without trusting the JSON body. Covers both the JWT path (jose / PyJWT / go-jose) and the raw sig path (ES256 over the canonical attestation/trust object).\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-jwks-verify",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "code",
      "short_description": "Offline ES256 verification of InsumerAPI signed responses against the public JWKS. Use when the user receives a signed attestation from /v1/attest, /v1/trust, or /v1/trust/batch and needs to verify the signature without trusting the JSON body. Covers both the JWT path (jose / PyJWT / go-jose) and the raw sig path (ES256 over the canonical attestation/trust object).\n"
    },
    "name": "insumer-jwks-verify",
    "plugin_release_skill_id": "pluginrsk_6ae21825d25081918b3051b12dff1bd4"
  },
  {
    "description": "InsumerAPI wallet trust profile: a curated multi-dimensional condition-based access bundle for a single wallet. 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names, account), plus optional Solana, XRPL, Bitcoin and Tron dimensions (up to 176 checks across 29 chains in 14 dimensions). Use when the user wants an InsumerAPI trust profile, a pre-built signed wallet snapshot rather than conditions specified one by one (for example an InsumerAPI pre-transaction trust check). The profile is signed once, as a whole. Carry it unchanged: never re-sign or wrap it.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-trust",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "InsumerAPI wallet trust profile: a curated multi-dimensional condition-based access bundle for a single wallet. 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names, account), plus optional Solana, XRPL, Bitcoin and Tron dimensions (up to 176 checks across 29 chains in 14 dimensions). Use when the user wants an InsumerAPI trust profile, a pre-built signed wallet snapshot rather than conditions specified one by one (for example an InsumerAPI pre-transaction trust check). The profile is signed once, as a whole. Carry it unchanged: never re-sign or wrap it.\n"
    },
    "name": "insumer-trust",
    "plugin_release_skill_id": "pluginrsk_6ae21826840881919e2302cd0310813c"
  },
  {
    "description": "InsumerAPI batch wallet trust profiles: the same curated bundle as insumer-trust, for up to 10 wallets in a single call. Use when the user wants InsumerAPI trust profiles for a list of wallets (for example screening an airdrop or allowlist with InsumerAPI). Each wallet's profile is independently signed; the response supports partial success.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-trust-batch",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "InsumerAPI batch wallet trust profiles: the same curated bundle as insumer-trust, for up to 10 wallets in a single call. Use when the user wants InsumerAPI trust profiles for a list of wallets (for example screening an airdrop or allowlist with InsumerAPI). Each wallet's profile is independently signed; the response supports partial success.\n"
    },
    "name": "insumer-trust-batch",
    "plugin_release_skill_id": "pluginrsk_6ae21825daf08191becdc604e579d9c8"
  }
]
AFTER
[
  {
    "description": "Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Use when the user wants InsumerAPI to give a \"verified yes or no\" on whether a wallet satisfies an on-chain condition, to gate a feature by what a wallet holds with InsumerAPI, or to compose an InsumerAPI wallet_state signal in a multi-issuer trust envelope. Read, evaluate, sign, in one call.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-attest",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Use when the user wants InsumerAPI to give a \"verified yes or no\" on whether a wallet satisfies an on-chain condition, to gate a feature by what a wallet holds with InsumerAPI, or to compose an InsumerAPI wallet_state signal in a multi-issuer trust envelope. Read, evaluate, sign, in one call.\n"
    },
    "name": "insumer-attest",
    "plugin_release_skill_id": "pluginrsk_6ae385dfd6988191844307401492ea75"
  },
  {
    "description": "InsumerAPI wallet auth: get an InsumerAPI key, configure INSUMER_API_KEY, check or top up InsumerAPI credits, or debug InsumerAPI 401/402/429 errors. Covers four key paths: free (email), paid (Stripe), an agent's first key paid on-chain, and an on-chain top-up of an existing key. The on-chain paths need the user's explicit approval of every payment.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-auth",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "InsumerAPI wallet auth: get an InsumerAPI key, configure INSUMER_API_KEY, check or top up InsumerAPI credits, or debug InsumerAPI 401/402/429 errors. Covers four key paths: free (email), paid (Stripe), an agent's first key paid on-chain, and an on-chain top-up of an existing key. The on-chain paths need the user's explicit approval of every payment.\n"
    },
    "name": "insumer-auth",
    "plugin_release_skill_id": "pluginrsk_6ae385dfd3588191a2e5eb5fccc819b5"
  },
  {
    "description": "Token-holder discounts at InsumerAPI merchants: read a store's terms, check what a wallet qualifies for (free), optionally prove control of the wallet by signing an EIP-4361 message, and create a signed single-use discount code (INSR-XXXXX). Use when the user or agent wants a holder discount at a store in the InsumerAPI merchant directory, wants to know whether signing with the wallet gets a bigger discount, or needs a discount in ACP or UCP checkout format.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-discount",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Token-holder discounts at InsumerAPI merchants: read a store's terms, check what a wallet qualifies for (free), optionally prove control of the wallet by signing an EIP-4361 message, and create a signed single-use discount code (INSR-XXXXX). Use when the user or agent wants a holder discount at a store in the InsumerAPI merchant directory, wants to know whether signing with the wallet gets a bigger discount, or needs a discount in ACP or UCP checkout format.\n"
    },
    "name": "insumer-discount",
    "plugin_release_skill_id": "pluginrsk_6ae385df0dbc819181a490e7d62c9d67"
  },
  {
    "description": "How to use the InsumerAPI MCP tools this plugin connects to (the hosted server at api.insumermodel.com/mcp, no key needed). Use when the user asks to check if a wallet holds a token or an amount, whether a wallet owns an NFT, whether a wallet is a registered ERC-8004 agent, for a wallet trust profile, for InsumerAPI's signing keys or how to verify an attestation, for compliance templates, or for a merchant's discount, and the insumer MCP tools are available. Do not use for exact balances, prices, or sending transactions. Explains the shared daily allowance and when to switch to the REST skills with the user's own key.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-hosted-tools",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "How to use the InsumerAPI MCP tools this plugin connects to (the hosted server at api.insumermodel.com/mcp, no key needed). Use when the user asks to check if a wallet holds a token or an amount, whether a wallet owns an NFT, whether a wallet is a registered ERC-8004 agent, for a wallet trust profile, for InsumerAPI's signing keys or how to verify an attestation, for compliance templates, or for a merchant's discount, and the insumer MCP tools are available. Do not use for exact balances, prices, or sending transactions. Explains the shared daily allowance and when to switch to the REST skills with the user's own key.\n"
    },
    "name": "insumer-hosted-tools",
    "plugin_release_skill_id": "pluginrsk_6ae385df39e88191a40c7fdf89ec43d3"
  },
  {
    "description": "Offline ES256 verification of InsumerAPI signed responses against the public JWKS. Use when the user receives a signed attestation from /v1/attest, /v1/trust, or /v1/trust/batch and needs to verify the signature without trusting the JSON body. Covers both the JWT path (jose / PyJWT / go-jose) and the raw sig path (ES256 over the canonical attestation/trust object).\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-jwks-verify",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "code",
      "short_description": "Offline ES256 verification of InsumerAPI signed responses against the public JWKS. Use when the user receives a signed attestation from /v1/attest, /v1/trust, or /v1/trust/batch and needs to verify the signature without trusting the JSON body. Covers both the JWT path (jose / PyJWT / go-jose) and the raw sig path (ES256 over the canonical attestation/trust object).\n"
    },
    "name": "insumer-jwks-verify",
    "plugin_release_skill_id": "pluginrsk_6ae385e04b988191918637e55e870ee4"
  },
  {
    "description": "InsumerAPI wallet trust profile: a curated multi-dimensional condition-based access bundle for a single wallet. 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names, account), plus optional Solana, XRPL, Bitcoin and Tron dimensions (up to 176 checks across 29 chains in 14 dimensions). Use when the user wants an InsumerAPI trust profile, a pre-built signed wallet snapshot rather than conditions specified one by one (for example an InsumerAPI pre-transaction trust check). The profile is signed once, as a whole. Carry it unchanged: never re-sign or wrap it.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-trust",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "InsumerAPI wallet trust profile: a curated multi-dimensional condition-based access bundle for a single wallet. 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names, account), plus optional Solana, XRPL, Bitcoin and Tron dimensions (up to 176 checks across 29 chains in 14 dimensions). Use when the user wants an InsumerAPI trust profile, a pre-built signed wallet snapshot rather than conditions specified one by one (for example an InsumerAPI pre-transaction trust check). The profile is signed once, as a whole. Carry it unchanged: never re-sign or wrap it.\n"
    },
    "name": "insumer-trust",
    "plugin_release_skill_id": "pluginrsk_6ae385ded28081918814025b60fa8cf3"
  },
  {
    "description": "InsumerAPI batch wallet trust profiles: the same curated bundle as insumer-trust, for up to 10 wallets in a single call. Use when the user wants InsumerAPI trust profiles for a list of wallets (for example screening an airdrop or allowlist with InsumerAPI). Each wallet's profile is independently signed; the response supports partial success.\n",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "insumer-trust-batch",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "InsumerAPI batch wallet trust profiles: the same curated bundle as insumer-trust, for up to 10 wallets in a single call. Use when the user wants InsumerAPI trust profiles for a list of wallets (for example screening an airdrop or allowlist with InsumerAPI). Each wallet's profile is independently signed; the response supports partial success.\n"
    },
    "name": "insumer-trust-batch",
    "plugin_release_skill_id": "pluginrsk_6ae385debde8819194aad575954ae855"
  }
]

changed /release/version

BEFORE
"0.2.1"
AFTER
"0.2.2"
Full snapshot data
{
  "canonical_app_id": "asdk_app_6ac02f0983b0819189bdf9074149a9bb",
  "connector_id": "asdk_app_6ac02f0983b0819189bdf9074149a9bb",
  "created_at": "2026-10-02T22:32:43.121395Z",
  "discoverability": "LISTED",
  "id": "plugin_asdk_app_6ac02f0983b0819189bdf9074149a9bb",
  "is_template": false,
  "is_template_instance": false,
  "is_v2_template": false,
  "name": "insumer",
  "release": {
    "app_ids": [
      "asdk_app_6ac02f0983b0819189bdf9074149a9bb"
    ],
    "app_manifest": {
      "apps": {
        "insumer": {
          "id": "asdk_app_6ac02f0983b0819189bdf9074149a9bb",
          "required": true
        }
      }
    },
    "app_templates": [],
    "description": "Check what a wallet holds, with a signed yes or no. InsumerAPI wallet auth for AI agents: token balances, NFTs, EAS attestations, ERC-8004 agents and trust profiles across 37 chains, never the balance. Seven skills plus the hosted MCP server at api.insumermodel.com/mcp.",
    "display_name": "InsumerAPI",
    "id": "pluginrel_456cd7df903c81919b464f2bde2a8b91",
    "interface": {
      "brand_color": "#D4A853",
      "capabilities": [
        "Read"
      ],
      "category": "Developer Tools",
      "composer_icon_dark_url": null,
      "composer_icon_url": "https://files.openai.com/content?id=file_000000009ccc820db6af57995b1fe588",
      "default_prompt": "Check if wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 holds at least 1 ETH on Ethereum and show me the signed attestation.",
      "default_prompts": [
        "Check if wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 holds at least 1 ETH on Ethereum and show me the signed attestation.",
        "Build a trust profile for wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 and summarize each dimension.",
        "Is wallet 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 a registered ERC-8004 agent with agent ID 1 on Base?"
      ],
      "developer_name": "InsumerAPI",
      "logo_url": "https://files.openai.com/content?id=file_00000000aea0820db23fc27a91c1ec41",
      "logo_url_dark": null,
      "long_description": "Ask ChatGPT things like \"check if this wallet holds at least 100 USDC on Base\", \"does this wallet own an NFT from this collection\", \"is this wallet a registered ERC-8004 agent\", \"build a trust profile for this wallet\", \"verify this wallet attestation offline\" or \"what discount does this wallet get at this merchant\". InsumerAPI answers each one with a signed yes or no: does this wallet satisfy this condition right now? The balance itself is never returned.\n\nConditions cover token balances, NFT ownership, EAS attestations (including Coinbase Verifications and Gitcoin Passport templates), Farcaster IDs, ERC-8004 agent registration, ERC-7710 delegations and account code state (plain key, EIP-7702 delegation or contract), across 37 chains: 31 EVM chains plus Solana, XRP Ledger, Bitcoin, Tron, Stellar and Sui. Send a wallet address and up to ten conditions in one request. A wallet trust profile runs 155 checks across 27 chains in ten dimensions and reports what is held or not held, with no score and no opinion.\n\nEvery response is signed twice, with ES256 and with a post-quantum ML-DSA-65 signature, and carries a hash of the evaluated condition and the block it was read at. Anyone can check a result without calling InsumerAPI again, using the open-source insumer-verify package on npm and PyPI.\n\nThis plugin connects to the hosted InsumerAPI MCP server, which needs no account and no key. It serves ten tools: the public signing keys, condition attestation, compliance templates, wallet trust profiles (single and batch), the merchant and token directories, a discount check, and discount-code validation. The hosted server is shared, so the tools that produce signed results are rate limited per day; when the limit is reached, calls are declined until 00:00 UTC. Six of the seven included skills cover the same work through the REST API with your own key, which adds key management, discount codes and the merchant tools.\n\nNot for: exact balances, portfolio values, price data, sending transactions, or trading. InsumerAPI holds no secrets, requires no identity, issues no static credentials, and stores no wallet addresses or conditions from verification requests. It is condition-based access infrastructure, and wallet auth is how it works: read the wallet's on-chain state, evaluate it against the condition, sign the answer.\n\nDocumentation: https://insumermodel.com/developers/\nOpenAPI: https://insumermodel.com/openapi.yaml\nSource for the MCP server (MIT): https://github.com/insumerapi/mcp-server-insumer",
      "plugin_category_id": "developer tools",
      "privacy_policy_url": "https://insumermodel.com/privacy-policy/",
      "screenshot_urls": [],
      "short_description": "Wallet auth for AI agents",
      "terms_of_service_url": "https://insumermodel.com/terms-of-service/",
      "website_url": "https://insumermodel.com"
    },
    "keywords": [
      "insumer",
      "insumerapi",
      "wallet auth",
      "check wallet balance",
      "verify wallet",
      "nft ownership",
      "wallet trust profile",
      "erc-8004",
      "condition-based access",
      "blockchain",
      "attestation",
      "web3",
      "ai agents"
    ],
    "mcp_servers": [
      {
        "key": "insumer",
        "metadata": {
          "headers": {},
          "type": "streamable-http",
          "url": "https://api.insumermodel.com/mcp"
        }
      }
    ],
    "onboarding_skill_name": null,
    "requires_local_executor": false,
    "skills": [
      {
        "description": "Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Use when the user wants InsumerAPI to give a \"verified yes or no\" on whether a wallet satisfies an on-chain condition, to gate a feature by what a wallet holds with InsumerAPI, or to compose an InsumerAPI wallet_state signal in a multi-issuer trust envelope. Read, evaluate, sign, in one call.\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-attest",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "Wallet auth via InsumerAPI: condition-based access with ES256-signed, JWKS-verifiable boolean responses (token balances across 37 chains, plus NFT ownership, EAS attestations, Farcaster IDs and other condition types). Use when the user wants InsumerAPI to give a \"verified yes or no\" on whether a wallet satisfies an on-chain condition, to gate a feature by what a wallet holds with InsumerAPI, or to compose an InsumerAPI wallet_state signal in a multi-issuer trust envelope. Read, evaluate, sign, in one call.\n"
        },
        "name": "insumer-attest",
        "plugin_release_skill_id": "pluginrsk_6ae385dfd6988191844307401492ea75"
      },
      {
        "description": "InsumerAPI wallet auth: get an InsumerAPI key, configure INSUMER_API_KEY, check or top up InsumerAPI credits, or debug InsumerAPI 401/402/429 errors. Covers four key paths: free (email), paid (Stripe), an agent's first key paid on-chain, and an on-chain top-up of an existing key. The on-chain paths need the user's explicit approval of every payment.\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-auth",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "bolt",
          "short_description": "InsumerAPI wallet auth: get an InsumerAPI key, configure INSUMER_API_KEY, check or top up InsumerAPI credits, or debug InsumerAPI 401/402/429 errors. Covers four key paths: free (email), paid (Stripe), an agent's first key paid on-chain, and an on-chain top-up of an existing key. The on-chain paths need the user's explicit approval of every payment.\n"
        },
        "name": "insumer-auth",
        "plugin_release_skill_id": "pluginrsk_6ae385dfd3588191a2e5eb5fccc819b5"
      },
      {
        "description": "Token-holder discounts at InsumerAPI merchants: read a store's terms, check what a wallet qualifies for (free), optionally prove control of the wallet by signing an EIP-4361 message, and create a signed single-use discount code (INSR-XXXXX). Use when the user or agent wants a holder discount at a store in the InsumerAPI merchant directory, wants to know whether signing with the wallet gets a bigger discount, or needs a discount in ACP or UCP checkout format.\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-discount",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "bolt",
          "short_description": "Token-holder discounts at InsumerAPI merchants: read a store's terms, check what a wallet qualifies for (free), optionally prove control of the wallet by signing an EIP-4361 message, and create a signed single-use discount code (INSR-XXXXX). Use when the user or agent wants a holder discount at a store in the InsumerAPI merchant directory, wants to know whether signing with the wallet gets a bigger discount, or needs a discount in ACP or UCP checkout format.\n"
        },
        "name": "insumer-discount",
        "plugin_release_skill_id": "pluginrsk_6ae385df0dbc819181a490e7d62c9d67"
      },
      {
        "description": "How to use the InsumerAPI MCP tools this plugin connects to (the hosted server at api.insumermodel.com/mcp, no key needed). Use when the user asks to check if a wallet holds a token or an amount, whether a wallet owns an NFT, whether a wallet is a registered ERC-8004 agent, for a wallet trust profile, for InsumerAPI's signing keys or how to verify an attestation, for compliance templates, or for a merchant's discount, and the insumer MCP tools are available. Do not use for exact balances, prices, or sending transactions. Explains the shared daily allowance and when to switch to the REST skills with the user's own key.\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-hosted-tools",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "How to use the InsumerAPI MCP tools this plugin connects to (the hosted server at api.insumermodel.com/mcp, no key needed). Use when the user asks to check if a wallet holds a token or an amount, whether a wallet owns an NFT, whether a wallet is a registered ERC-8004 agent, for a wallet trust profile, for InsumerAPI's signing keys or how to verify an attestation, for compliance templates, or for a merchant's discount, and the insumer MCP tools are available. Do not use for exact balances, prices, or sending transactions. Explains the shared daily allowance and when to switch to the REST skills with the user's own key.\n"
        },
        "name": "insumer-hosted-tools",
        "plugin_release_skill_id": "pluginrsk_6ae385df39e88191a40c7fdf89ec43d3"
      },
      {
        "description": "Offline ES256 verification of InsumerAPI signed responses against the public JWKS. Use when the user receives a signed attestation from /v1/attest, /v1/trust, or /v1/trust/batch and needs to verify the signature without trusting the JSON body. Covers both the JWT path (jose / PyJWT / go-jose) and the raw sig path (ES256 over the canonical attestation/trust object).\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-jwks-verify",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "Offline ES256 verification of InsumerAPI signed responses against the public JWKS. Use when the user receives a signed attestation from /v1/attest, /v1/trust, or /v1/trust/batch and needs to verify the signature without trusting the JSON body. Covers both the JWT path (jose / PyJWT / go-jose) and the raw sig path (ES256 over the canonical attestation/trust object).\n"
        },
        "name": "insumer-jwks-verify",
        "plugin_release_skill_id": "pluginrsk_6ae385e04b988191918637e55e870ee4"
      },
      {
        "description": "InsumerAPI wallet trust profile: a curated multi-dimensional condition-based access bundle for a single wallet. 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names, account), plus optional Solana, XRPL, Bitcoin and Tron dimensions (up to 176 checks across 29 chains in 14 dimensions). Use when the user wants an InsumerAPI trust profile, a pre-built signed wallet snapshot rather than conditions specified one by one (for example an InsumerAPI pre-transaction trust check). The profile is signed once, as a whole. Carry it unchanged: never re-sign or wrap it.\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-trust",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "InsumerAPI wallet trust profile: a curated multi-dimensional condition-based access bundle for a single wallet. 155 base checks across 27 chains in 10 dimensions (stablecoins, governance, NFTs, staking, institutional stablecoins, tokenized treasuries, stablecoin deposits, wrapped bitcoin, names, account), plus optional Solana, XRPL, Bitcoin and Tron dimensions (up to 176 checks across 29 chains in 14 dimensions). Use when the user wants an InsumerAPI trust profile, a pre-built signed wallet snapshot rather than conditions specified one by one (for example an InsumerAPI pre-transaction trust check). The profile is signed once, as a whole. Carry it unchanged: never re-sign or wrap it.\n"
        },
        "name": "insumer-trust",
        "plugin_release_skill_id": "pluginrsk_6ae385ded28081918814025b60fa8cf3"
      },
      {
        "description": "InsumerAPI batch wallet trust profiles: the same curated bundle as insumer-trust, for up to 10 wallets in a single call. Use when the user wants InsumerAPI trust profiles for a list of wallets (for example screening an airdrop or allowlist with InsumerAPI). Each wallet's profile is independently signed; the response supports partial success.\n",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "insumer-trust-batch",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "InsumerAPI batch wallet trust profiles: the same curated bundle as insumer-trust, for up to 10 wallets in a single call. Use when the user wants InsumerAPI trust profiles for a list of wallets (for example screening an airdrop or allowlist with InsumerAPI). Each wallet's profile is independently signed; the response supports partial success.\n"
        },
        "name": "insumer-trust-batch",
        "plugin_release_skill_id": "pluginrsk_6ae385debde8819194aad575954ae855"
      }
    ],
    "version": "0.2.2"
  },
  "scope": "GLOBAL",
  "share_url": "https://chatgpt.com/plugins/plugin_asdk_app_6ac02f0983b0819189bdf9074149a9bb?open_in_app",
  "status": "ENABLED"
}

SHA-256 of public snapshot: ec7224095a017f0875856bf2882c20d0ca4d00983e4d0020e1bf0a623bd8404a