Chainvara
Proof of reserves

Prove you hold what you owe

Publish a proof that every customer balance is backed on chain, without revealing who your customers are. Liabilities go into a Merkle sum tree, reserves are read from your own wallets at the same moment, and each customer checks their own inclusion in the browser.

Proof of reserves · 48,210 accounts

BTC104.2 % covered
ETH101.7 % covered
USDC100.4 % covered

root 9f2c…e41a · verified in your browser

Controls you can prove

Merkle sum tree

Every customer balance is committed with a hashed id and a random nonce; each node carries the sums below it, so no balance can be dropped or offset by a negative one.

Reserves from your wallets

Balances are read from your vault wallets wallet by wallet, with addresses anyone can check on an explorer.

Coverage per asset

Owed against held, asset by asset, on a public page you publish when you choose.

Checked by your customers

Each customer gets an inclusion proof from your API and verifies it in their own browser: nothing is sent anywhere.

How it works

  1. 1

    Upload liabilities

    A CSV or one API call: user id and balance per asset.

  2. 2

    Review and publish

    Check the coverage, then publish the root, totals and wallets.

  3. 3

    Give out proofs

    GET /reserves/snapshots/{id}/proof?user_id=… for each customer who asks.

Works best with

Ready to see Chainvara in action?

Start free on test networks. Move to production when your controls are in place.