You are building something in Claude Code. A discount flow that requires holding a specific token. An AI agent that will not move money for unverified wallets. An NFT-gated dashboard. The wallet auth piece is fiddly. Chain RPCs, contract calls, signature verification, edge cases. One skill turns it into one command.

Install once, ask Claude

The skill lives at github.com/insumerapi/insumer-skill. Add it to Claude Code:

git clone https://github.com/insumerapi/insumer-skill.git ~/.claude/skills/insumer

That installs the skill for every project on the machine. For Cursor, Codex, Copilot, Gemini CLI, Grok Build and other agents that read the open SKILL.md format, use insumer-agent-skills: npx skills add insumerapi/insumer-agent-skills.

(Update, September 2026: this post first gave a one-line Smithery install. The Smithery listing does not currently serve installs, so the commands above install straight from GitHub. The skill itself is the same.)

Once installed, ask Claude what you want. Examples:

Claude reads the skill, picks the right endpoint, writes the call, parses the signed response, and adds JWKS verification so the result holds up offline. You review the diff and ship.

What Claude knows after installing

The skill is procedural knowledge, readable in full on GitHub before you install. It teaches Claude six things that are easy to get wrong otherwise:

What you get back from a call

Every /v1/attest response is a signed envelope. The shape Claude will write against:

{
  "ok": true,
  "data": {
    "attestation": {
      "id": "ATST-9F2C4E6A1B3D5F70",
      "pass": true,
      "results": [
        {
          "condition": 0,
          "label": "100+ USDC on Base",
          "type": "token_balance",
          "chainId": 8453,
          "met": true,
          "evaluatedCondition": {
            "type": "token_balance",
            "chainId": 8453,
            "contractAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "operator": "gte",
            "threshold": "100"
          },
          "conditionHash": "0x3a7f...",
          "blockNumber": "0x21e8a40",
          "blockTimestamp": "2026-03-06T10:00:01.000Z"
        }
      ],
      "passCount": 1,
      "failCount": 0,
      "attestedAt": "2026-03-06T10:00:01.000Z",
      "expiresAt": "2026-03-06T10:30:01.000Z"
    },
    "sig": "MEQCIB...base64...",
    "kid": "insumer-attest-v2"
  },
  "meta": { "version": "1.0", "timestamp": "2026-03-06T10:00:01.000Z", "creditsCharged": 1, "creditsRemaining": 9 }
}

The verification is portable. Any service downstream of the agent can re-verify the signature against the public JWKS without calling the API back. The condition hash lets the caller confirm the verdict is for the exact condition they asked about, not a substituted one. The block number and timestamp pin the read to a specific point in chain history.

What 37 chains buys you

Coverage is the boring part of wallet auth that bites you in production. The skill knows the live surface:

If a developer asks Claude to verify a condition on a chain the API does not cover, the skill instructs Claude to surface that explicitly rather than fabricate an integration. The list of supported chains lives in the skill's reference data, not in Claude's training-time memory.

Free key, no signup

The first thing the skill tells Claude to do is mint a free key. The flow is one curl, no email confirmation:

curl -s -X POST https://api.insumermodel.com/v1/keys/create \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","appName":"my-project","tier":"free"}'

The response includes a key starting with insr_live_. Drop it in .env as INSUMER_API_KEY. The free tier comes with 10 free verifications plus 100 reads per day, enough to wire up an integration end-to-end and ship the first version.

Where this fits with the rest of the agent stack

The Claude Code skill is one of several integration paths into InsumerAPI. Pick whichever matches the stack:

All four hit the same endpoints, return the same signed envelopes, and verify against the same JWKS.

The transport changes; the primitive does not.

Why this is a good fit for Claude Code in particular

Claude Code already writes most of the boilerplate. The hard part of wallet auth is not the boilerplate. It is the parts most LLMs get subtly wrong: confusing wallet auth with wallet connection, validating a JWT but not the underlying signature, picking the wrong endpoint, asking for a balance when a boolean is the right contract. The skill closes that gap. Claude reads the rules, writes correct integration code the first time, and the diff is small enough to review in a minute.

If you are sitting in Claude Code right now, the install is one command. The next thing Claude writes will be the integration you actually wanted.

Try it in the next Claude Code session

Run git clone https://github.com/insumerapi/insumer-skill.git ~/.claude/skills/insumer, mint a free key with one curl, and ask Claude to add wallet auth to whatever you are building.

Get a Free Key

Get every post by email

The Inevitable series and builder notes on condition-based access. Free, one or two posts a week.