eth_getBalance on Story
Everything below was measured on 2026-10-13 by calling eth_getBalance on Story through the same endpoint customers use, and is re-measured weekly.
What eth_getBalance does
Returns an account's balance of the chain's native token in wei (the smallest unit, 10^-18), at a given block. It works for contracts as well as wallets; ERC-20 balances need eth_call to the token's balanceOf instead.
eth_getBalance on Story: what we measured
The zero address held 912,423,257 DATA on Story when we measured. On most chains a zero-address balance is funds sent there by mistake or burned; either way it differs from chain to chain, so reading it is a quick sanity test that your client is talking to Story and not another network.
You can pin a read to an exact block with {"blockHash": "0x..."} (EIP-1898). Unlike a block number, a hash fails loudly if that block was reorganised away.
Balances at blocks older than about 64 blocks need historical state. Archive routing did not measure as available for this chain.
| Unit | wei of DATA (1 DATA = 10^18 wei) |
|---|---|
| Balance of 0x0000…0000 (zero address) | 912,423,257 DATA |
| Balance of 0x…dEaD (burn address) | 12.72 DATA |
| Block given by hash (EIP-1898) | accepted |
| History on default routing | about the last 64 blocks |
| Older blocks (archive=1) | not measured as available |
Example request
curl -s https://rpc.swiftnodes.io/rpc/story?key=YOUR_API_KEY \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x000000000000000000000000000000000000dEaD","latest"]}'import { createPublicClient, formatEther, http } from "viem";
const client = createPublicClient({
transport: http("https://rpc.swiftnodes.io/rpc/story?key=YOUR_API_KEY"),
});
const wei = await client.getBalance({ address: "0x000000000000000000000000000000000000dEaD" });
console.log(formatEther(wei), "DATA");
// At a past block
const then = await client.getBalance({ address: "0x000000000000000000000000000000000000dEaD", blockNumber: 23299079n });
// Many balances in one request: Multicall3 is deployed on Story
const balances = await client.multicall({
contracts: addresses.map((a) => ({ address: "0xcA11bde05977b3631167028862bE2a173976CA11", abi: [{ name: "getEthBalance", type: "function", stateMutability: "view", inputs: [{ type: "address" }], outputs: [{ type: "uint256" }] }], functionName: "getEthBalance", args: [a] })),
});Other methods on Story
- eth_blockNumberSupported
- eth_chainIdSupported
- eth_getBlockByNumberSupported
- eth_getTransactionByHashNot measured
- eth_getTransactionReceiptNot measured
- eth_callSupported
- eth_estimateGasSupported
- eth_gasPriceSupported
- eth_maxPriorityFeePerGasSupported
- eth_sendRawTransactionSupported
- eth_getTransactionCountNot measured
- eth_getCodeSupported
- eth_subscribeSupported
- eth_getLogsSupported
- eth_getBlockReceiptsSupported
- eth_feeHistorySupported
- eth_getProofSupported
- eth_createAccessListSupported
- debug_traceCallNot available
- trace_blockNot available
- trace_transactionNot available
eth_getBalance on other chains
- Ethereum
- Base
- Arbitrum
- Optimism
- Polygon
- BNB Smart Chain
- Avalanche
- Sonic
- Linea
- Scroll
- zkSync Era
- Blast
- Mantle
- Gnosis
- Celo
- Berachain
- Monad
- Unichain
- Kaia
- PulseChain
- World Chain
- Ronin
- Abstract
- ApeChain
- MegaETH
- Fantom
- Lisk
- Hemi
- X Layer
- BOB
- Plasma
- Fraxtal
- Zora
- Soneium
- Sei
- Hyperliquid
- Taiko
- Morph
- Ink
- Katana
- Ethereum Classic
- opBNB
- Mode
- Flare
- Core
- Chiliz
- Telos EVM
- Tempo
- Cronos
- Manta Pacific
- Shibarium
- Boba Network
- Arbitrum Nova
- Immutable zkEVM
Frequently asked questions
Does Story support eth_getBalance?
Yes. eth_getBalance answered on the SwiftNodes Story endpoint when our weekly probe called it through the customer path (2026-10-13).
What unit does eth_getBalance return on Story?
Wei of DATA, as a hex string: divide by 10^18 for DATA. viem's formatEther does this.
Can I get historical balances on Story?
Default routing keeps about 64 blocks of state. Older balances did not measure as available.
Story endpoints, live block height and WebSocket status are on the Story RPC page.
One key covers every chain we serve, and SwiftNodes has a free tier.