/rpc
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,
$ npx -y skills add BlockRunAI/blockrun-mcp --skill rpc --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/rpc
Context preview
The summary Claude sees to decide when to auto-load this skill.
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,
SKILL.md
rpc.SKILL.mdname: 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 Base
data: "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 inside `result.error` — the call **is** charged (the node did the work).
Read more
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 Base
data: "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 inside `result.error` — the call **is** charged (the node did the work).
Live data for AI agents — search, research, markets, crypto, X/Twitter. Pay-per-call via x402 micropayments.
Repo: BlockRunAI/blockrun-mcp
Other skills on blockrun-mcp.
- /blockrun
Pay-per-call access to AI models, real-time data, media generation and multi-chain RPC over x402 micropayments (USDC on Base or Solana). No API keys, no accounts, no subscriptions. Start here when you have the BlockRun MCP installed and need to know WHICH tool answers a
Open skill - /crypto-data
Use for any crypto data question — token/coin prices, FX, commodities, stocks, OHLC history, DEX pairs and liquidity, DeFi TVL, yield/APY pools, on-chain SQL, wallet labels and net worth, social mindshare, news, or raw JSON-RPC against a chain. Routes across five tools that
Open skill - /exa-research
Use when researching products, finding academic papers, discovering competitors, reading webpage content, or getting cited answers grounded in real web sources. Use over generic search when semantic relevance matters.
Open skill - /gentech-blockrun
GenTech Labs' integration patterns for BlockRun MCP from Hermes Agent. Covers daily usage patterns, cost-optimized workflows, multi-tool pipelines, and reliable error handling for BlockRun's full toolset.
Open skill - /image-prompting
Use when generating or editing images via `blockrun_image` — especially with GPT Image 2, Nano Banana, or Grok Imagine for posters, UI mockups, marketing assets, product shots, or anything with on-image text. Turns vague user requests ("make me a cool poster") into structured,
Open skill - /modal
Use when the user needs to run isolated code remotely — a disposable container, optional GPU access (T4 → H100), or a safer place for untrusted / heavy code. Prefer local execution for normal repo work; use Modal sandboxes for isolation, hardware access, or one-shot heavy
Open skill

