simmer-x402
Skill56 starsChanged 10 days agoMITView on GitHub
Make x402 payments, handle HTTP 402 Payment Required responses, check Base wallet balances, or access Simmer premium endpoints and other paid APIs. Uses USDC on Base.
- Reads credentials
- Installs packages
In this repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- kalshi-weather-traderSkill
- nansen-copytrader-overlaySkill
- polymarket-ai-divergenceSkill
- polymarket-btc-up-down-traderSkill
- polymarket-combo-builderSkill
- polymarket-copytradingSkill
- polymarket-dca-eval-traderSkill
- polymarket-elon-tweetsSkill
- polymarket-fast-loopSkill
- polymarket-fast-scalerSkill
- polymarket-market-makerSkill
- polymarket-mert-sniperSkill
- polymarket-mil-aircraft-trackerSkill
- polymarket-nothing-ever-happensSkill
- polymarket-researchSkill
- polymarket-signal-sniperSkill
- polymarket-soccer-shock-ladderSkill
- polymarket-wallet-xraySkill
- polymarket-weather-traderSkill
- polymarket-worldcup-copytraderSkill
- prediction-trade-journalSkill
- simmer-preflightSkill
- simmer-briefingSkill
- simmer-mcp-setupSkill
- simmer-skill-builderSkill
- simmerSkill
- simmer-wallet-setupSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 150
If server returns 200 — done, no payment needed
- Distinctive: line 151
If server returns 402 Payment Required — x402 SDK reads payment requirements
- Distinctive: line 156
All payment handling is automatic via the official Coinbase x402 Python SDK.
- Very specific: line 178
Ensure .env is in your .gitignore — never commit private keys to git
- Distinctive: line 179
Use a dedicated hot wallet with limited funds, not your main wallet
- Very specific: line 189
Run python x402_cli.py balance to check
- Distinctive: line 195
Ensure you have USDC on Base.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
x402 Payments
Pay for x402-gated APIs using USDC on Base. This skill enables agents to autonomously make crypto payments when accessing paid web resources.
🚨 Framework for x402 payment plumbing, not financial advice. Read DISCLAIMER.md before connecting to a wallet with real funds. Cap per-call payments with
--max <USD>or theX402_MAX_PAYMENT_USDenv var; the wallet should be a scoped working-capital wallet, not your treasury.
This is a template. The default
x402_cli.pyhandles 402 detection, payment-payload construction, and balance checks. Bring your own policy for which endpoints to pay for, what max payment per call is acceptable, and how to scope the funded wallet.
Setup
- Install the Simmer SDK
pip install simmer-sdk - Set your wallet private key
Falls back toexport EVM_PRIVATE_KEY=0x...your_private_key...WALLET_PRIVATE_KEYifEVM_PRIVATE_KEYis not set (same key Simmer/Polymarket users already have). Your EVM address works on all chains — Polygon for trading, Base for x402 payments. - Fund with USDC on Base
- Send USDC to your wallet address on Base network
- x402 payments on Base are fully gasless — you only need USDC, no ETH
- Install dependencies
pip install x402[httpx,evm]
Quick Commands
| Command | Description |
python x402_cli.py balance | Check USDC and ETH balances on Base |
python x402_cli.py fetch <url> | Fetch URL with automatic x402 payment |
python x402_cli.py fetch <url> --json | Same but output raw JSON only |
python x402_cli.py fetch <url> --dry-run | Show payment info without paying |
python x402_cli.py fetch <url> --max 5.00 | Override max payment limit |
python x402_cli.py rpc <network> <method> [params...] | Make RPC call via Quicknode x402 |
Examples
Check balance
python x402_cli.py balancex402 Wallet Balance
==============================
Address: 0x1234...5678
Network: Base Mainnet
USDC: $42.50
ETH: 0.000000 ETHFetch free endpoint (no payment needed)
python x402_cli.py fetch "https://api.kaito.ai/api/v1/tokens" --jsonFetch Kaito mindshare data ($0.02/data point via x402)
python x402_cli.py fetch "https://api.kaito.ai/api/payg/mindshare?token=BTC&start_date=2026-02-13&end_date=2026-02-14" --jsonFetch Kaito sentiment data ($0.02/data point via x402)
python x402_cli.py fetch "https://api.kaito.ai/api/payg/sentiment?token=BTC&start_date=2026-02-13&end_date=2026-02-14" --jsonAsk AlphaKek knowledge engine ($0.01 via x402)
python x402_cli.py fetch "https://api.alphakek.ai/x402/knowledge/ask" \
--method POST --body '{"question": "What is the current sentiment on BTC?", "search_mode": "fast"}' --jsonFetch CoinGecko price data ($0.01 via x402)
python x402_cli.py fetch "https://pro-api.coingecko.com/api/v3/x402/simple/price?ids=bitcoin&vs_currencies=usd" --jsonFetch Simmer premium endpoint
python x402_cli.py fetch "https://x402.simmer.markets/api/sdk/context/market-123" \
--header "Authorization: Bearer sk_live_..." --jsonQuicknode RPC — blockchain calls without API keys
# Get ETH balance on Ethereum mainnet
python x402_cli.py rpc ethereum-mainnet eth_getBalance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 latest
# Get latest block on Polygon
python x402_cli.py rpc polygon-mainnet eth_blockNumber
# Get token balance on Base
python x402_cli.py rpc base-mainnet eth_call '{"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x70a08231000000000000000000000000YOUR_ADDRESS"}' latestQuicknode x402 supports 55+ networks (Ethereum, Polygon, Base, Arbitrum, Solana, Bitcoin, and more). $10 buys 1M RPC credits — each successful call costs 1 credit.
Supported x402 Providers
| Provider | Endpoint | Price | Description |
| Kaito | /api/payg/mindshare | $0.02/data point | Token mindshare time series |
| Kaito | /api/payg/sentiment | $0.02/data point | Token sentiment time series |
| Kaito | /api/payg/narrative_mindshare | $0.02/data point | Narrative mindshare time series |
| Kaito | /api/payg/smart_followers | $0.20/request | Smart follower metrics |
| AlphaKek | /x402/knowledge/ask | $0.01/request | AI knowledge engine (POST, search_mode: fast/deep/ultrafast) |
| CoinGecko | /api/v3/x402/simple/price | $0.01/request | Token price data |
| Simmer | /api/sdk/context/:id | $0.005/request | Market context (rate limit bypass) |
| Simmer | /api/sdk/briefing | $0.005/request | Portfolio briefing (rate limit bypass) |
| Simmer | /api/sdk/markets/import | $0.005/request | Market import (daily quota bypass) |
| Quicknode | /:network (55+ networks) | $10/1M credits | Pay-per-request RPC access (no API key needed) |
Kaito API docs: https://github.com/MetaSearch-IO/KaitoX402APIDocs Quicknode x402 docs: https://x402.quicknode.com/llms.txt
Configuration
| Setting | Environment Variable | Default | Description |
| Wallet key | EVM_PRIVATE_KEY | (required) | Hex-encoded private key (falls back to WALLET_PRIVATE_KEY) |
| Max payment | X402_MAX_PAYMENT_USD | 10.00 | Safety cap per request |
| Network | X402_NETWORK | mainnet | mainnet or testnet |
Or set via config.json in the skill directory:
{
"max_payment_usd": 10.00,
"network": "mainnet"
}How It Works
- Skill makes HTTP request to the target URL
- If server returns 200 — done, no payment needed
- If server returns 402 Payment Required — x402 SDK reads payment requirements
- SDK signs a USDC transfer authorization on Base (no gas needed)
- SDK retries request with payment signature
- Server verifies payment, returns gated content
All payment handling is automatic via the official Coinbase x402 Python SDK.
For Other Skills
Other skills can import x402 functions directly:
from skills.x402.x402_cli import x402_fetch
# Returns parsed JSON response
data = await x402_fetch("https://api.kaito.ai/api/payg/mindshare?token=BTC")Security
- Uses the official Coinbase
x402Python SDK for payment signing - Private key never leaves your machine
- Max payment safety cap prevents accidental overspend
- Dry-run mode to preview payments before executing
Private key safety:
- Store your key in a
.envfile, never pass it inline in shell history - Ensure
.envis in your.gitignore— never commit private keys to git - Use a dedicated hot wallet with limited funds, not your main wallet
- Rotate the key immediately if you suspect it was exposed
Troubleshooting
"EVM_PRIVATE_KEY not set"
- Set your wallet private key:
export EVM_PRIVATE_KEY=0x...
"Insufficient USDC balance"
- Fund your wallet with USDC on Base network
- Run
python x402_cli.py balanceto check
"Payment exceeds max limit"
- Increase limit:
--max 50or setX402_MAX_PAYMENT_USD=50
"Unsupported network in payment options"
- Ensure you have USDC on Base. Some providers may offer other chains but this skill uses Base only.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

