Denim activated on Base Sepolia on October 21, 2026, replacing Flashblocks with canonical 200ms blocks. Flashblocks subscriptions and the "pending" block tag no longer provide preconfirmation data on Sepolia. Use canonical blocks and state instead. Base Mainnet continues to use Flashblocks until its own Denim activation, which is targeting November 2026.
See the Denim migration steps.
Parameters
- addressstringREQUIRED
The address (20 bytes) to check for balance
- blockNumber/tagstringREQUIRED
The block number in hexadecimal format or the string latest, earliest, pending, safe or finalized (safe and finalized tags are only supported on Ethereum, Gnosis, Arbitrum, Arbitrum Nova and Avalanche C-chain), see the default block parameter description in the official Ethereum documentation
Returns
- result
The ETH balance of the specified address in hexadecimal value, measured in wei
1curl -X POST "https://docs-demo.base-mainnet.quiknode.pro/" \2-H "Content-Type: application/json" \3-d '{4"jsonrpc": "2.0",5"method": "eth_getBalance",6"params": [7"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",8"latest"9],10"id": 111}'
1curl -X POST "https://docs-demo.base-mainnet.quiknode.pro/" \2-H "Content-Type: application/json" \3-d '{4"jsonrpc": "2.0",5"method": "eth_getBalance",6"params": [7"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",8"latest"9],10"id": 111}'
1import { ethers } from "ethers";23async function main() {4const provider = new ethers.JsonRpcProvider("https://docs-demo.base-mainnet.quiknode.pro/");5const response = await provider.send("eth_getBalance", [6"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",7"latest"8]);9console.log(response);10}1112main();
1import { ethers } from "ethers";23async function main() {4const provider = new ethers.JsonRpcProvider("https://docs-demo.base-mainnet.quiknode.pro/");5const response = await provider.send("eth_getBalance", [6"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",7"latest"8]);9console.log(response);10}1112main();
1from web3 import Web3, HTTPProvider2w3 = Web3(HTTPProvider('https://docs-demo.base-mainnet.quiknode.pro/'))3response = w3.provider.make_request("eth_getBalance", ["0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB","latest"])4print(response)
1from web3 import Web3, HTTPProvider2w3 = Web3(HTTPProvider('https://docs-demo.base-mainnet.quiknode.pro/'))3response = w3.provider.make_request("eth_getBalance", ["0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB","latest"])4print(response)
1import { createPublicClient, http } from 'viem'23async function main() {4const client = createPublicClient({5transport: http('https://docs-demo.base-mainnet.quiknode.pro/')6})78const result = await client.request({9method: 'eth_getBalance',10params: [11"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",12"latest"13]14})1516console.log(result)17}1819main()
1import { createPublicClient, http } from 'viem'23async function main() {4const client = createPublicClient({5transport: http('https://docs-demo.base-mainnet.quiknode.pro/')6})78const result = await client.request({9method: 'eth_getBalance',10params: [11"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",12"latest"13]14})1516console.log(result)17}1819main()
1import { QuicknodeSdk } from '@quicknode/sdk'23const qn = new QuicknodeSdk({})45const result = await qn.rpc.call(6'eth_getBalance',7[8"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",9"latest"10],11undefined,12'https://docs-demo.base-mainnet.quiknode.pro/'13)1415console.log(result)
1import { QuicknodeSdk } from '@quicknode/sdk'23const qn = new QuicknodeSdk({})45const result = await qn.rpc.call(6'eth_getBalance',7[8"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",9"latest"10],11undefined,12'https://docs-demo.base-mainnet.quiknode.pro/'13)1415console.log(result)
1import asyncio2from quicknode_sdk import QuicknodeSdk, SdkFullConfig34async def main():5qn = QuicknodeSdk(SdkFullConfig(api_key=None))6result = await qn.rpc.call(7"eth_getBalance",8[9"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",10"latest"11],12endpoint_url="https://docs-demo.base-mainnet.quiknode.pro/",13)14print(result)1516asyncio.run(main())
1import asyncio2from quicknode_sdk import QuicknodeSdk, SdkFullConfig34async def main():5qn = QuicknodeSdk(SdkFullConfig(api_key=None))6result = await qn.rpc.call(7"eth_getBalance",8[9"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",10"latest"11],12endpoint_url="https://docs-demo.base-mainnet.quiknode.pro/",13)14print(result)1516asyncio.run(main())
1require "quicknode_sdk"23qn = QuicknodeSdk::SDK.from_config(api_key: nil)45result = qn.rpc.call(6method: "eth_getBalance",7params: [8"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",9"latest"10],11endpoint_url: "https://docs-demo.base-mainnet.quiknode.pro/"12)1314puts result
1require "quicknode_sdk"23qn = QuicknodeSdk::SDK.from_config(api_key: nil)45result = qn.rpc.call(6method: "eth_getBalance",7params: [8"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",9"latest"10],11endpoint_url: "https://docs-demo.base-mainnet.quiknode.pro/"12)1314puts result
1use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};23#[tokio::main]4async fn main() -> Result<(), Box<dyn std::error::Error>> {5let qn = QuicknodeSdk::new(&SdkFullConfig::keyless())?;6let result = qn7.rpc8.call(9"eth_getBalance",10Some(serde_json::json!([11"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",12"latest"13])),14None,15Some("https://docs-demo.base-mainnet.quiknode.pro/".into()),16)17.await?;1819println!("{result}");20Ok(())21}
1use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};23#[tokio::main]4async fn main() -> Result<(), Box<dyn std::error::Error>> {5let qn = QuicknodeSdk::new(&SdkFullConfig::keyless())?;6let result = qn7.rpc8.call(9"eth_getBalance",10Some(serde_json::json!([11"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",12"latest"13])),14None,15Some("https://docs-demo.base-mainnet.quiknode.pro/".into()),16)17.await?;1819println!("{result}");20Ok(())21}
1const body = {2jsonrpc: '2.0',3method: 'eth_getBalance',4params: ["0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB","latest"],5id: 16}78async function main() {9const response = await fetch('https://docs-demo.base-mainnet.quiknode.pro/', {10method: 'POST',11headers: {'Content-Type': 'application/json'},12body: JSON.stringify(body)13})14const data = await response.json()15console.log(data)16}1718main()
1const body = {2jsonrpc: '2.0',3method: 'eth_getBalance',4params: ["0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB","latest"],5id: 16}78async function main() {9const response = await fetch('https://docs-demo.base-mainnet.quiknode.pro/', {10method: 'POST',11headers: {'Content-Type': 'application/json'},12body: JSON.stringify(body)13})14const data = await response.json()15console.log(data)16}1718main()
1import requests2import json34url = "https://docs-demo.base-mainnet.quiknode.pro/"56payload = json.dumps({7"jsonrpc": "2.0",8"method": "eth_getBalance",9"params": [10"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",11"latest"12],13"id": 114})15headers = {16'Content-Type': 'application/json'17}1819response = requests.request("POST", url, headers=headers, data=payload)2021print(response.text)
1import requests2import json34url = "https://docs-demo.base-mainnet.quiknode.pro/"56payload = json.dumps({7"jsonrpc": "2.0",8"method": "eth_getBalance",9"params": [10"0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB",11"latest"12],13"id": 114})15headers = {16'Content-Type': 'application/json'17}1819response = requests.request("POST", url, headers=headers, data=payload)2021print(response.text)
1require "uri"2require "json"3require "net/http"45uri = URI("https://docs-demo.base-mainnet.quiknode.pro/")67payload = {8jsonrpc: "2.0",9id: 1,10method: "eth_getBalance",11params: ["0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB","latest"]12}1314request = Net::HTTP::Post.new(uri)15request["Content-Type"] = "application/json"16request.body = JSON.generate(payload)1718response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|19http.request(request)20end2122puts response.body
1require "uri"2require "json"3require "net/http"45uri = URI("https://docs-demo.base-mainnet.quiknode.pro/")67payload = {8jsonrpc: "2.0",9id: 1,10method: "eth_getBalance",11params: ["0x622Fbe99b3A378FAC736bf29d7e23B85E18816eB","latest"]12}1314request = Net::HTTP::Post.new(uri)15request["Content-Type"] = "application/json"16request.body = JSON.generate(payload)1718response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|19http.request(request)20end2122puts response.body
1{2"jsonrpc": "2.0",3"id": 1,4"result": "0x0"5}
1{2"jsonrpc": "2.0",3"id": 1,4"result": "0x0"5}