Skill v1.0.1
currentAutomated scan100/100+4 new
version: "1.0.1" name: rpc description: Use when the user needs raw blockchain JSON-RPC access — contract reads (eth_call), native balances, blocks, transactions, logs, gas estimates, or any chain-native RPC method across 40 chains. One endpoint per chain via BlockRun's Tatum-backed gateway, $0.0030 per call, no node, no API key. Prefer blockrun_price / blockrun_dex / blockrun_surf when they already cover the question. triggers:
- "rpc"
- "json-rpc"
- "eth_call"
- "contract read"
- "raw chain"
- "node access"
- "blockchain rpc"
- "getBalance"
- "block number"
- "transaction receipt"
- "event logs"
- "tatum"
Multi-chain RPC — every supported chain, one tool
blockrun_rpc POSTs a standard JSON-RPC 2.0 body to /v1/rpc/{network}. Flat $0.0030 per call ($0.002 base + the $0.001 transaction fee). A JSON-RPC batch array charges per element but pays the flat fee only once — $0.002 × n + $0.001, so a batch of 3 costs $0.0070 where three separate calls cost $0.0090. Batch whenever you can. Settlement in USDC via x402. Responses are cached briefly server-side for identical read calls (X-Cache: HIT is free of upstream latency but still billed).
When to use which tool
| Question | Tool | |
|---|---|---|
| "What's ETH trading at?" | blockrun_price (free) | |
| "PEPE/WETH pool liquidity?" | blockrun_dex (free) | |
| "What's this wallet labeled as / holding?" | blockrun_surf | |
"Call balanceOf(0x...) on this ERC-20" | `blockrun_rpc` | |
| "Latest block / tx receipt / event logs / gas price" | `blockrun_rpc` | |
| "Solana account info / slot / signatures" | `blockrun_rpc` |
Networks
EVM (use eth_* methods):
| Key | Chain | Key | Chain | ||
|---|---|---|---|---|---|
ethereum | Ethereum | zksync | zkSync Era | ||
base | Base | berachain | Berachain | ||
arbitrum | Arbitrum One | unichain | Unichain | ||
arbitrum-nova | Arbitrum Nova | monad | Monad | ||
optimism | Optimism | chiliz | Chiliz | ||
polygon | Polygon | moonbeam | Moonbeam | ||
bsc | BNB Smart Chain | aurora | Aurora | ||
avalanche | Avalanche C-Chain | flare | Flare | ||
fantom | Fantom | oasis | Oasis Sapphire | ||
cronos | Cronos | kaia | Kaia (Klaytn) | ||
celo | Celo | sonic | Sonic | ||
gnosis | Gnosis | xdc | XDC Network | ||
abstract | Abstract | hyperevm | HyperEVM | ||
plume | Plume | ronin | Ronin | ||
rootstock | Rootstock (RSK) |
Non-EVM (chain-native methods):
| Key | Chain | Method family | |
|---|---|---|---|
solana | Solana | getSlot, getBalance, getAccountInfo, getSignaturesForAddress | |
bitcoin | Bitcoin | getblockchaininfo, getblockcount, getrawtransaction | |
litecoin / dogecoin / bitcoin-cash / zcash | UTXO chains | Bitcoin-style RPC | |
near | NEAR | status, query | |
sui | Sui | sui_getLatestCheckpointSequenceNumber, suix_getBalance | |
ripple | XRP Ledger | account_info, ledger | |
polkadot / kusama | Substrate | chain_getHeader, state_getStorage |
Unknown-but-wellformed slugs pass through to the Tatum gateway untouched — newly added chains work without an MCP update. A bad slug returns HTTP 400 with the supported list (no charge).
Recipes
ERC-20 balance (eth_call):
blockrun_rpc({network: "base",method: "eth_call",params: [{to: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC on Basedata: "0x70a08231000000000000000000000000<ADDRESS_NO_0x_PADDED_TO_32B>"}, "latest"]})
Native balance: method: "eth_getBalance", params: ["0x...", "latest"] Tx receipt: method: "eth_getTransactionReceipt", params: ["0x<txhash>"] Event logs: method: "eth_getLogs", params: [{ fromBlock, toBlock, address, topics }] — keep ranges small; huge ranges are rejected upstream (no charge). Gas: method: "eth_gasPrice" / eth_estimateGas
Solana token account: network: "solana", method: "getTokenAccountsByOwner", params: ["<owner>", {"mint": "<mint>"}, {"encoding": "jsonParsed"}]
Batch (charged per element, flat fee paid once — 3 calls = $0.0070, vs $0.0090 sent separately):
blockrun_rpc({ network: "ethereum", body: [{ jsonrpc: "2.0", id: 1, method: "eth_blockNumber" },{ jsonrpc: "2.0", id: 2, method: "eth_gasPrice" },{ jsonrpc: "2.0", id: 3, method: "eth_chainId" }]})
Failure semantics
- Upstream timeout / 5xx → no charge, retry safe.
- Malformed body / bad network → HTTP 400, no charge.
- JSON-RPC-level errors (e.g. revert on
eth_call) come back insideresult.error— the call is charged (the node did the work).