Simmer X402
by @simmer
Make x402 payments to access paid APIs and gated content. Use when a skill needs to fetch data from x402-gated endpoints (like Kaito mindshare API, Simmer pr...
clawhub install simmer-x402π About This Skill
name: simmer-x402 description: Make x402 payments to access paid APIs and gated content. Use when a skill needs to fetch data from x402-gated endpoints (like Kaito mindshare API, Simmer premium endpoints, or any x402 provider). Handles 402 Payment Required responses automatically using USDC on Base. metadata: author: Simmer (@simmer_markets) version: "1.0.8" displayName: x402 Payments difficulty: advanced
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.
When to Use This Skill
Use this skill when:
Setup
1. Install the Simmer SDK
pip install simmer-sdk
2. Set your wallet private key
export EVM_PRIVATE_KEY=0x...your_private_key...
Falls back to WALLET_PRIVATE_KEY if EVM_PRIVATE_KEY is not set (same key Simmer/Polymarket users already have). Your EVM address works on all chains β Polygon for trading, Base for x402 payments.3. 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
4. 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 | Fetch URL with automatic x402 payment |
| python x402_cli.py fetch | Same but output raw JSON only |
| python x402_cli.py fetch | Show payment info without paying |
| python x402_cli.py fetch | Override max payment limit |
| python x402_cli.py rpc | Make RPC call via Quicknode x402 |
Examples
Check balance
python x402_cli.py balance
x402 Wallet Balance
==============================
Address: 0x1234...5678
Network: Base MainnetUSDC: $42.50
ETH: 0.000000 ETH
Fetch free endpoint (no payment needed)
python x402_cli.py fetch "https://api.kaito.ai/api/v1/tokens" --json
Fetch 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" --json
Fetch 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" --json
Ask 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"}' --json
Fetch 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" --json
Fetch Simmer premium endpoint
python x402_cli.py fetch "https://x402.simmer.markets/api/sdk/context/market-123" \
--header "Authorization: Bearer sk_live_..." --json
Quicknode RPC β blockchain calls without API keys
# Get ETH balance on Ethereum mainnet
python x402_cli.py rpc ethereum-mainnet eth_getBalance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 latestGet latest block on Polygon
python x402_cli.py rpc polygon-mainnet eth_blockNumberGet token balance on Base
python x402_cli.py rpc base-mainnet eth_call '{"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x70a08231000000000000000000000000YOUR_ADDRESS"}' latest
Quicknode 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
1. Skill makes HTTP request to the target URL 2. If server returns 200 β done, no payment needed 3. If server returns 402 Payment Required β x402 SDK reads payment requirements 4. SDK signs a USDC transfer authorization on Base (no gas needed) 5. SDK retries request with payment signature 6. 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_fetchReturns parsed JSON response
data = await x402_fetch("https://api.kaito.ai/api/payg/mindshare?token=BTC")
Security
x402 Python SDK for payment signingPrivate key safety:
.env file, never pass it inline in shell history.env is in your .gitignore β never commit private keys to gitTroubleshooting
"EVM_PRIVATE_KEY not set"
export EVM_PRIVATE_KEY=0x..."Insufficient USDC balance"
python x402_cli.py balance to check"Payment exceeds max limit"
--max 50 or set X402_MAX_PAYMENT_USD=50"Unsupported network in payment options"
π‘ Examples
Check balance
python x402_cli.py balance
x402 Wallet Balance
==============================
Address: 0x1234...5678
Network: Base MainnetUSDC: $42.50
ETH: 0.000000 ETH
Fetch free endpoint (no payment needed)
python x402_cli.py fetch "https://api.kaito.ai/api/v1/tokens" --json
Fetch 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" --json
Fetch 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" --json
Ask 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"}' --json
Fetch 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" --json
Fetch Simmer premium endpoint
python x402_cli.py fetch "https://x402.simmer.markets/api/sdk/context/market-123" \
--header "Authorization: Bearer sk_live_..." --json
Quicknode RPC β blockchain calls without API keys
# Get ETH balance on Ethereum mainnet
python x402_cli.py rpc ethereum-mainnet eth_getBalance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 latestGet latest block on Polygon
python x402_cli.py rpc polygon-mainnet eth_blockNumberGet token balance on Base
python x402_cli.py rpc base-mainnet eth_call '{"to":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","data":"0x70a08231000000000000000000000000YOUR_ADDRESS"}' latest
Quicknode x402 supports 55+ networks (Ethereum, Polygon, Base, Arbitrum, Solana, Bitcoin, and more). $10 buys 1M RPC credits β each successful call costs 1 credit.βοΈ 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"
}
π Tips & Best Practices
"EVM_PRIVATE_KEY not set"
export EVM_PRIVATE_KEY=0x..."Insufficient USDC balance"
python x402_cli.py balance to check"Payment exceeds max limit"
--max 50 or set X402_MAX_PAYMENT_USD=50"Unsupported network in payment options"