simmer-x402 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited simmer-x402 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.py handles 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.Use this skill when:
pip install simmer-sdk 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.
pip install x402[httpx,evm]| 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 |
python x402_cli.py balancex402 Wallet Balance
==============================
Address: 0x1234...5678
Network: Base Mainnet
USDC: $42.50
ETH: 0.000000 ETHpython x402_cli.py fetch "https://api.kaito.ai/api/v1/tokens" --jsonpython x402_cli.py fetch "https://api.kaito.ai/api/payg/mindshare?token=BTC&start_date=2026-02-13&end_date=2026-02-14" --jsonpython x402_cli.py fetch "https://api.kaito.ai/api/payg/sentiment?token=BTC&start_date=2026-02-13&end_date=2026-02-14" --jsonpython 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"}' --jsonpython x402_cli.py fetch "https://pro-api.coingecko.com/api/v3/x402/simple/price?ids=bitcoin&vs_currencies=usd" --jsonpython x402_cli.py fetch "https://x402.simmer.markets/api/sdk/context/market-123" \
--header "Authorization: Bearer sk_live_..." --json# 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.
| 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
| 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"
}All payment handling is automatic via the official Coinbase x402 Python SDK.
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")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 git"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"
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.