skills
67 agent skills from scenario-labs/skills — including scenario, scenario-game-assets, scenario-video. Install with npx skills add scenario-labs/skills.
Condition-based access API. Reads wallet state, evaluates conditions, returns signed yes/no answers across 37 chains. ECDSA + post-quantum, no balances exposed.
Translation pending
SkillsPythonGitHub @insumerapiOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Wallet auth as agent skills for Claude Code, Grok Build, Cursor, Copilot, Codex, and other agents that read SKILL.md. Boolean, not balance. 37 chains.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Wallet auth as agent skills. Install once, and every Claude Code, Cursor, Copilot, Codex, Gemini CLI, and 25+ other agentskills.io-compatible agent gets native knowledge of how to call InsumerAPI for condition-based access across 37 chains.
Boolean, not balance. Verified yes or no. Provable and private.
These skills are in early release. Expect refinements as the API surface evolves and as we add coverage for new chains and condition types.Read the full README ↗Wallet auth as agent skills. Install once, and every Claude Code, Cursor, Copilot, Codex, Gemini CLI, and 25+ other agentskills.io-compatible agent gets native knowledge of how to call InsumerAPI for condition-based access across 37 chains.
Boolean, not balance. Verified yes or no. Provable and private.
[!NOTE] Technical preview
These skills are in early release. Expect refinements as the API surface evolves and as we add coverage for new chains and condition types.
OAuth proves who the user is. Wallet auth proves what the wallet holds. InsumerAPI evaluates a wallet's on-chain state against a condition and returns a JWKS-verifiable boolean, signed twice: ES256 and a post-quantum ML-DSA-65 signature. The pattern is read → evaluate → sign:
conditionHash for tamper detectionNo secrets. No identity-first. No static credentials. Token gating is one form of condition-based access; this is the general primitive.
| Skill | What it does | Version |
|---|---|---|
| insumer-auth | Free API key creation, env var setup, credit balance | 0.2.3 |
| insumer-attest | Custom condition attestation across 37 chains, ten condition types (/v1/attest) | 0.3.2 |
| insumer-trust | Curated wallet trust profile, 155 base checks across 27 chains in 10 dimensions (/v1/trust) | 0.3.1 |
| insumer-trust-batch | Batch trust profiles for multiple wallets (/v1/trust/batch) | 0.4.3 |
| insumer-jwks-verify | Offline ES256 verification of signed responses (raw sig or JWT) against the public JWKS | 0.2.1 |
| insumer-discount | Token-holder discounts at InsumerAPI merchants: read the store's terms, prove the wallet if it pays, create a signed code (/v1/verify) | 0.1.1 |
These skills follow the Agent Skills open standard, so they install into any compatible agent.
skills CLI (recommended)# Project-level (per repo)
npx skills add insumerapi/insumer-agent-skills
# Global (every project on your machine)
npx skills add insumerapi/insumer-agent-skills --global
claude plugin marketplace add insumerapi/insumer-agent-skills
claude plugin install insumer@insumerapi
The plugin carries the same six skills and nothing else: no hooks and no MCP servers. claude plugin details insumer lists what it loaded.
Each skill folder goes directly under ~/.claude/skills/ (one level deep; a nested insumer/ group folder is not discovered):
git clone https://github.com/insumerapi/insumer-agent-skills.git
mkdir -p ~/.claude/skills
cp -r insumer-agent-skills/skills/insumer-* ~/.claude/skills/
Grok Build reads the same SKILL.md format from ~/.grok/skills/ (every project) or .grok/skills/ in a repo:
git clone https://github.com/insumerapi/insumer-agent-skills.git
mkdir -p ~/.grok/skills
cp -r insumer-agent-skills/skills/insumer-* ~/.grok/skills/
Restart your agent. The skills activate when you ask about InsumerAPI: getting a key, attesting a wallet condition, a wallet trust profile, or verifying an InsumerAPI signed response.
Get a free API key (10 free verifications plus 100 requests a day, no signup beyond an email):
curl -s -X POST https://api.insumermodel.com/v1/keys/create \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","appName":"insumer-agent-skills","tier":"free"}'
Set the env var:
export INSUMER_API_KEY='insr_live_...'
Ask your agent something that triggers a skill. Examples:
/admin by USDC balance on Base"0xabc...def holds at least 100 USDC on Base"0xd8dA...6045"The skill loads the right canonical request shape, the offline verification recipe, and the failure-mode guardrails, so your agent emits working integration code on the first try.
The agent ecosystem already knows how to call HTTP APIs. What it doesn't know, and gets wrong, is the InsumerAPI-specific patterns that matter:
decimals is a cross-check, never an input (leave it out: the token's own decimals are read from the chain, and a sent value that differs is rejected with a 400)insr_live_... in browser JS)Each skill encodes these as hard constraints, with reference shapes verified against the live API.
These skills work in any agentskills.io-compatible agent. The current adopter list includes Claude, Claude Code, Cursor, GitHub Copilot, VS Code, OpenAI Codex, Google Gemini CLI, JetBrains Junie, Sourcegraph Amp, Block Goose, OpenHands, OpenCode, Letta, Roo Code, Mistral Vibe, ByteDance Trae, Snowflake Cortex, Databricks Genie, Spring AI, Kiro, Workshop, Qodo, Factory, Firebender, and others; see agentskills.io/home for the live list. xAI's Grok Build reads the same SKILL.md format (see Option D above).
The skills are instructions plus small helper scripts. There are no hooks, no MCP servers, and no install or postinstall steps. The scripts use the Python standard library, except insumer-jwks-verify/scripts/verify.py, which needs pyjwt[crypto] installed by you.
| Script | Calls | Sends |
|---|---|---|
insumer-auth/scripts/create_key.py | POST https://api.insumermodel.com/v1/keys/create | email (yours), appName, tier: "free"; no key needed |
insumer-auth/scripts/buy_key.py | POST https://api.insumermodel.com/v1/keys/buy | txHash, chainId, amount (USDC), appName (default "insumer-agent-skills"), keyDelivery: "apiKey", and the senderSignature you pass in --sender-signature; no key needed |
insumer-auth/scripts/buy_credits.py | POST https://api.insumermodel.com/v1/credits/buy | INSUMER_API_KEY, plus txHash, chainId, amount (USDC), optional updateWallet, and the senderSignature you pass in --sender-signature when one is needed |
insumer-attest/scripts/attest.py | POST https://api.insumermodel.com/v1/attest | INSUMER_API_KEY and the request body you provide |
insumer-trust/scripts/trust.py | POST https://api.insumermodel.com/v1/trust | INSUMER_API_KEY, the wallet addresses you pass, and optional proof: "merkle" |
insumer-trust-batch/scripts/trust_batch.py | POST https://api.insumermodel.com/v1/trust/batch | INSUMER_API_KEY, the wallet addresses you pass, and optional proof: "merkle". It always saves the signed response to a local JSON file (--out, default trust_batch_<time>.json in the working directory) |
insumer-jwks-verify/scripts/verify.py | GET https://insumermodel.com/.well-known/jwks.json | Nothing; it fetches the public keys and verifies locally |
insumer-discount/scripts/proof_message.py | Nothing | Nothing; it prints a message for the wallet to sign. It never signs and never handles a key |
The only credential is INSUMER_API_KEY, read from the environment and sent only to api.insumermodel.com in the X-API-Key header. No script signs or sends a transaction or holds a private key. None reads any other environment variable (beyond the standard proxy variables Python's HTTP client honors) or any file except a request, wallet list or signed proof you pass on the command line (--body-file, --wallets-file, --proof-file) or on stdin.
create_key.py and buy_key.py send appName: "insumer-agent-skills" by default, a label on the key that tells InsumerAPI which channel it came from. Pass --app-name to use your own; nothing else is collected.
The skills also show GET https://api.insumermodel.com/v1/credits (balance check) as a curl example. The paid paths in insumer-auth (Path 3 and Path 4) begin with a USDC payment that the skill tells the agent never to make without the user's explicit approval of the amount, token, chain and recipient. Where the API asks for it, the wallet that paid also signs a short text confirming it sent the payment; the user signs it with their own wallet, and no script signs it.
mcp-server-insumerMIT. See LICENSE.
insumer-discount/scripts/discount.pyGET https://api.insumermodel.com/v1/merchants/{id}, GET .../v1/discount/check, and with --create, POST .../v1/verify |
The merchant ID and wallet address you pass; with --create, also INSUMER_API_KEY and the signed proof you pass in --proof-file |