Docs

eth_getBalance - Boba Network RPC Method

Query account balance on Boba Network. Essential for wallet applications and AI-powered dApps, Web2 API integration, enterprise blockchain solutions, and offchain computation on the Hybrid Compute L2 enabling smart contracts to access AI models and Web2 APIs natively.

Returns the balance of a given address on Boba Network.

Why Boba Network? Build on the Hybrid Compute L2 enabling smart contracts to access AI models and Web2 APIs natively with HybridCompute 2.0 for native AI/API access, $70M ecosystem funding, OP Stack compatibility, and two-way offchain integration.

When to Use This Method

eth_getBalance is fundamental for AI dApp developers, enterprise integration teams, and builders requiring offchain compute access:

  • Wallet applications: Display user balances and enable balance-dependent operations on Boba Network
  • Transaction validation: Verify accounts have sufficient funds before submitting transactions to Boba Network
  • DeFi monitoring: Track collateral positions, liquidity pools, and TVL across AI-powered dApps, Web2 API integration, enterprise blockchain solutions, and offchain computation
  • Accounting and reconciliation: Cross-reference on-chain balances against off-chain ledger entries for financial reporting

Common Use Cases

1. Display Formatted Wallet Balance with Ether Conversion

Retrieve and display a human-readable balance for any address on Boba Network. Convert the wei result to ether client-side using your web3 library.

JavaScript
import { JsonRpcProvider, formatEther } from 'ethers';

const provider = new JsonRpcProvider('https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY');

async function displayBalance(address) {
  const balanceWei = await provider.getBalance(address);
  const balance = formatEther(balanceWei);
  console.log(`Balance: ${balance} Boba Network`);
  return balance;
}

displayBalance('0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000');

2. Monitor Whale Wallet Activity with Polling and Threshold Alerts

Poll a high-value wallet on Boba Network at regular intervals. Trigger an alert when the balance crosses a defined threshold, useful for tracking DeFi movements or exchange hot wallet activity.

Python
from web3 import Web3
import time

w3 = Web3(Web3.HTTPProvider('https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY'))
address = '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000'
threshold_wei = w3.to_wei(100, 'ether')

def monitor_balance():
    previous_balance = w3.eth.get_balance(address)
    while True:
        time.sleep(15)
        current_balance = w3.eth.get_balance(address)
        if abs(current_balance - previous_balance) > threshold_wei:
            print(f'Balance changed by more than 100 Boba Network')
        if current_balance > w3.to_wei(1000, 'ether'):
            print(f'Whale alert: wallet exceeds 1000 Boba Network')
        previous_balance = current_balance

monitor_balance()

3. Historical Balance Tracking Using Block Tags

Query an account's balance at a specific block height to build a historical balance timeline. This is essential for audit trails, tax reporting, and analyzing wallet behavior over time on Boba Network.

Go
package main

import (
    "context"
    "fmt"
    "log"
    "math/big"

    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/ethclient"
)

func main() {
    client, _ := ethclient.Dial("https://api-boba-mainnet.n.dwellir.com/YOUR_API_KEY")

    address := common.HexToAddress("0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000")

    // Query balance at a specific block number
    blockNumber := big.NewInt(1000000)
    historicalBalance, _ := client.BalanceAt(context.Background(), address, blockNumber)
    fmt.Printf("Historical balance at block 1,000,000: %s wei\n", historicalBalance.String())

    // Query latest balance for comparison
    currentBalance, _ := client.BalanceAt(context.Background(), address, nil)
    change := new(big.Int).Sub(currentBalance, historicalBalance)
    fmt.Printf("Balance change: %s wei\n", change.String())
}

Best Practices

  • Cache balances with short TTL: Set a 2-5 second cache duration for balance queries to reduce RPC calls while keeping data fresh enough for most UI use cases
  • Convert wei to ether client-side: Use formatEther (ethers.js) or fromWei (web3.py) rather than relying on node-side conversion, which the JSON-RPC does not provide
  • Use pending tag cautiously: Balances returned with the pending block tag may reflect unconfirmed state changes and differ from finalized on-chain values
  • For batch balance queries, use eth_call with multicall: When querying balances for many addresses, bundle them through a multicall contract to reduce individual RPC round-trips

Code Examples

Error Handling

Error CodeMessageDescription
-32602Invalid paramsInvalid address format or block parameter
-32000Execution errorNode execution error