> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-kb-gaps-devrel-821-privacy-identity-cust.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# eth_getBalance

> Returns the ETH balance of an account at a given block. Use the pending tag for 200ms pre-confirmed balances.

Returns the ETH balance of an address at a given block.

<Tip>
  **Flashblocks:** Query `https://mainnet.base.org` with `"pending"` to read balances updated every \~200ms — before the block seals.
</Tip>

## Parameters

<ParamField body="address" type="string" required>
  The 20-byte address to query.
</ParamField>

<ParamField body="block" type="string" required>
  Block number in hex, or `"latest"`, `"pending"`, `"safe"`, `"finalized"`, `"earliest"`. Use `"pending"` for pre-confirmed balance.
</ParamField>

## Returns

<ResponseField name="result" type="string">
  The balance in wei as a hexadecimal string.
</ResponseField>

## Example

<CodeGroup>
  ```bash Standard (latest) lines wrap expandable theme={null}
  curl https://mainnet.base.org \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "method": "eth_getBalance",
      "params": ["0x742d35Cc6634C0532925a3b8D4C9dD0b4f3BaEa", "latest"],
      "id": 1
    }'
  ```

  ```bash Flashblocks (pending, ~200ms) lines wrap expandable theme={null}
  curl https://mainnet.base.org \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "method": "eth_getBalance",
      "params": ["0x742d35Cc6634C0532925a3b8D4C9dD0b4f3BaEa", "pending"],
      "id": 1
    }'
  ```

  ```json Response theme={null}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "result": "0x1a055690d9db80000"
  }
  ```
</CodeGroup>

## Read Balances for Many Addresses

`eth_getBalance` returns the balance of one address per call. To produce a balance snapshot across a set of addresses, such as every wallet your platform operates:

1. **Keep your own address list.** Base has no registry that maps addresses to the organization that controls them, so the list comes from your own records, for example the accounts your wallet or custody provider created for you.
2. **Pin one block number.** Read every balance at the same block so the snapshot reflects a single chain state. For reports, use a `finalized` block.
3. **Batch the reads.** Call the [`Multicall3`](/specifications/base-protocol/execution/preinstalls#multicall3) preinstall at `0xcA11bde05977b3631167028862bE2a173976CA11` with [`eth_call`](/base-chain/api-reference/ethereum-json-rpc-api/eth_call) at the pinned block. Use `getEthBalance(address)` for ETH and the token contract's `balanceOf(address)` for ERC-20 balances.

To report balances over time, for example a time-weighted average, repeat the snapshot at fixed block intervals. Reading state at older blocks requires a node that retains historical state (an archive node).
