Skip to content

docs(rpc): add batch balance snapshot guidance to eth_getBalance - #2138

Open
youssefea wants to merge 4 commits into
masterfrom
docs/devrel-859-wallet-enumeration-estate-wide-balance-a
Open

youssefea wants to merge 4 commits into
masterfrom
docs/devrel-859-wallet-enumeration-estate-wide-balance-a

Conversation

@youssefea

Copy link
Copy Markdown
Contributor

What changed? Why?

Adds a "Read Balances for Many Addresses" section to the eth_getBalance reference. It explains that integrators must keep their own address list (Base has no organization-level wallet registry), pin every read to one block, batch reads through the Multicall3 preinstall with eth_call, and repeat snapshots for time-based reporting. A note states that such snapshots are RPC reads, not attestations, and that Base does not provide a balance attestation service.

Closes knowledge gap gap-20261006-wallet-enumeration-estate-wide-balance-attestati: "How can a partner enumerate all of its wallets (user smart accounts plus omnibus) and produce time-weighted or attested balances across the whole estate on Base?"

Notes to reviewers

Primary sources for each fact:

  • One address per call, block parameter tags including finalized: docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx and eth_call.mdx on master.
  • Multicall3 preinstall address 0xcA11bde05977b3631167028862bE2a173976CA11: docs/specifications/base-protocol/execution/preinstalls.mdx.
  • getEthBalance(address) exists on Multicall3: mds1/multicall3 src/Multicall3.sol.
  • Full node keeps a recent block window, archive keeps all history: docs/specifications/node-operators/snapshots.mdx.

Owner confirmation before merge (Base RPC/Node engineering, plus the wallet/data or attestation owner):

  • The historical-state wording (full node keeps a recent window; older-block reads need an archive node).
  • The statement that Base does not provide a service that attests, audits, or certifies balances across an organization's wallets.

This reuses only the eth_getBalance.mdx part of open PR #2088. That PR also bundles unrelated Base Verify changes, so this PR can replace its eth_getBalance part.

How has it been tested?

  • node scripts/lint-mdx.js --files-from=<changed files>: 0 errors. The 2 warnings point at existing code blocks.
  • node scripts/validate-docs-structure.js: fails with 2 errors about the /upgrades/denim/eip-8130 redirect. The same 2 errors occur on master without this change.
  • Confirmed that every internal link added (eth_getBlockByNumber, eth_call, preinstalls#multicall3, node-operators/snapshots) is in docs/docs.json, and that the ## Multicall3 heading exists.

Screenshots

N/A (text-only change)

Generated with Toshi

@mintlify

mintlify Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
base 🟢 Ready View Preview Oct 15, 2026, 3:04 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@linear

linear Bot commented Oct 14, 2026

Copy link
Copy Markdown

DEVREL-859

@cb-heimdall

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

This branch was successfully deployed

1 active deployment
staging - docs — 2e145c0b Deployed Oct 15, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants