PROOF OF HOLDINGS API · BALANCES · SNAPSHOTS · ATTESTATION

On-Chain Proof of Holdings & Wealth API — verify wallet balances & prove reserves across 40+ chains

Prove what a wallet holds — at any block, on any chain. Bitquery sums on-chain balance updates into current and point-in-time balances, token holdings and holder proofs, so you can attest reserves, verify wealth and document source of funds with figures anyone can re-run.

Trusted for compliance & audit data byChainalysis logoTRM Labs logoLukka logoNexo logo
EVM.BalanceUpdatesCurrent native and token balances for any wallet — summed from on-chain balance updates.Docs
wallet_balances.graphqlCopy
query {
  EVM(network: eth) {
    BalanceUpdates(
      where: {BalanceUpdate: {Address:
        {is: "0x…"}}}
    ) {
      Currency { Symbol }
      balance: sum(of:
        BalanceUpdate_Amount)
    }
  }
}
responseSTREAMING
Wallet · TokenBalanceUSD value
200 · GraphQL · 180msgraphql.bitquery.io
Trusted by 40,000+ developers & teams like
Binance logoChainalysis logoTRM Labs logoNansen logo0x logoCoinMarketCap logoCoin Metrics logoBybit logoLukka logo3Commas logoNexo logoTether logo
40+
Chains supported
1PB+
Blockchain data indexed
10B+
API calls / month
99.9%
Production uptime
01
Forget the archive node

Proving what a wallet holds shouldn't take an indexing team.

Computing a verifiable balance yourself means an archive node per chain, replaying every transfer to reconstruct state, and a fresh pipeline for each token standard — and it still stops at the chain boundary. We summed the balance updates already, so a proof-grade figure is one query across every chain.

What you're proving
Build it yourself
Bitquery Holdings API
A wallet's current balance
Replay transfers on a full node
A single GraphQL query
Balance at a past block / date
Sync an archive node per chain
Summed to any block, built in
Every token a wallet holds
Index each standard yourself
Full portfolio, USD-valued
Holdings across EVM + Solana
Two stacks, two schemas
One schema across chains
A reproducible proof figure
Trust a screenshot
Anyone can re-run the query
Source-of-funds audit trail
Stitch logs by hand
Every balance update, on tap
02
Delivery channels

Four ways to pull holdings — one schema underneath.

Design your balance query once in GraphQL, then read the same fields as GraphQL streams, Kafka, gRPC or a bulk cloud export. Snapshot once for a report, or watch balances move in real time.

03
Holdings coverage

Every kind of balance, decoded into one feed.

A single BalanceUpdates query with sum(of: BalanceUpdate_Amount) reconstructs any balance — current or point-in-time, native or token, one chain or many — with the full update history behind it for audits.

CapabilityTypeWhat you get
NbNative balancesETH · BNB · SOL · MATICCurrent and historical native-coin balance for any wallet, summed on-chain
TbToken balancesERC-20 · SPLFull token portfolio per wallet with a USD value on every position
PtPoint-in-time snapshotsBlock · dateBalance at an exact block or date — the verifiable basis of a reserves attestation
CcCross-chain holdings40+ chains · EVM + SolanaRoll one entity's wallets across every chain into a single net-worth figure
HpHolder proofsOwnership · rankConfirm an address holds a token and rank every holder by balance at scale
AtAudit trailEvery balance updateThe full ledger of inflows and outflows behind any balance — source-of-funds ready
+ Ethereum, BNB, Base, Arbitrum, Polygon, Solana & 40+ chains on one schema
05
Build it this weekend

The proof products people ship on us.

Each one is a filter on the same indexed balance updates — snapshot once for a report, or subscribe over Kafka and gRPC to keep it live.

GraphQL

Proof-of-reserves attestation

Sum a custodian's wallets at a fixed block to produce a reserves figure auditors and users can independently re-run against the chain.

BalanceUpdates
  where: { Block: { Number: { le: "19000000" } } }
Read the docs
GraphQL

Wealth & source-of-funds report

Pull a wallet's full holdings plus the balance-update history behind them, USD-valued, to document how the funds were accumulated.

BalanceUpdates
  balance: sum(of: BalanceUpdate_Amount)
Read the docs
Cross-chain

Net-worth across every chain

Roll one entity's wallets across EVM chains and Solana into a single attested net-worth figure — one schema, no per-chain glue.

BalanceUpdates {
  usd: sum(of: BalanceUpdate_AmountInUSD)
}
Read the docs

What teams say about our data

"We did a thorough search of the market for the best onchain data. Bitquery came out on top — and now powers all live prices across Nansen. We don't think of them as a vendor. They're a partner."

A
Alexander Karsten
Nansen
40+
Chains for one cross-chain net worth
Anyblock
Point-in-time, re-runnable proofs
100%
On-chain & independently verifiable

Bitquery does the hard work of parsing blockchain transaction data into a usable form so that we don't have to. We use their interface to diagnose issues with complex transactions and their analytics as a starting point for our own.

0x Protocol logo
Alex Knaggs
0x Protocol

They proved they had the technology to deliver sophisticated data solutions. We extended our support through the Binance X fellowship — building an open-source library of visualization widgets on their blockchain data.

Director, Binance X logo
Flora Sun
Director, Binance X

The complex raw data is available at different levels of detail and from different viewpoints — whether we need simple aggregated transfers or parameters for failed contract calls. The support is responsive, friendly and quick.

Backend Developer, Blockpit logo
Jan Dreske
Backend Developer, Blockpit

Partnering with Bitquery has been highly cost-effective — leveraging their established infrastructure rather than building our own let us rapidly expand our blockchain support and reach a much broader segment of on-chain users.

Co-Founder, Syla logo
Nick Christie
Co-Founder, Syla

Bitquery's products are very intuitive and easy to use. We currently use their products to obtain DEX-related trading and liquidity information, which saves us the manpower and tedious technical details required to develop our own system. Their excellent technical team deserves special praise; they provide near-24/7 support and resolve issues quickly. I greatly appreciate their products and work ethic.

Ourbit logo
Data Team
Ourbit

Bitquery provides the infrastructure we rely on every day. Fast, reliable, and comprehensive across the chains that matter to our business.

Webacy
Webacy
webacy.com
06
Pricing

Start free. Scale when you ship.

Query every blockchain on every plan — no chain is paywalled. Move to commercial when you need volume, SLAs and bulk datashares.

Developer
$0 / month
Free plan for developers or small projects.
  • All blockchains, all plans
  • 10 requests / minute
  • 2 streams for testing
  • GraphQL IDE access
Get started free
Most popular
Commercial
Custom
Tailored solutions for business and enterprise.
  • Scalable calls, no throttling
  • SQL, Cloud, Kafka & more
  • 24/7 engineering access
  • Dedicated onboarding & SLA
Talk to sales
Datashares
Custom
Bulk historical & real-time data on your cloud.
  • Snowflake, BigQuery, S3, Azure
  • No setup or infrastructure
  • Structured for AI agents & MCP
  • Audit data for custodians
Talk to sales
FAQ

Proof-of-holdings questions, answered.

How do I prove a wallet's balance with Bitquery?
Query the BalanceUpdates dataset and aggregate with sum(of: BalanceUpdate_Amount)for any address. Because the figure is computed directly from on-chain balance updates, anyone can re-run the same query and reproduce it — that's what makes it a proof. Get an API key at ide.bitquery.io.
Can I get a wallet's balance at a past block or date?
Yes. Constrain BalanceUpdates with a Block: { Number: { le: … } } or Block: { Date: { le: … } } filter and the sum returns the point-in-time balance — the auditable basis of a proof-of-reserves or source-of-funds report.
Which chains and tokens are supported?
Native balances and tokens across 40+ chains — Ethereum, BNB Chain, Base, Arbitrum, Polygon and more on EVM, plus Solana SPL tokens — all on one BalanceUpdates schema, each position valued in USD.
Can I total one entity's holdings across multiple chains?
Yes. Run BalanceUpdates per chain — including Solana.BalanceUpdates— and roll the USD values into a single net-worth figure. The schema is identical across chains, so there's no per-chain glue code.
Is this suitable for proof-of-reserves and audits?
Yes. Snapshot every custodial wallet at a fixed block to attest reserves, and expose the underlying balance-update history so auditors can verify inflows and outflows. The figures are reproducible against the public chain, not a screenshot of internal state.
Can I stream balance changes in real time?
Yes. Subscribe to BalanceUpdates over WebSocket, Kafka or gRPC to watch balances move the moment they change — built for monitoring, alerting and live reserve dashboards.

Prove your holdings this week.

Free API key, every chain unlocked, no archive node to run. Snapshot a wallet's balance at any block and stream live changes in your first call.

No credit card · 10K free points for your first month · All 40+ chains included