How to Verify Your Account Balance on Binance?

2023-02-10 09:00

Binance is committed to ensuring each user has complete transparency on the safety and security of their assets. You can now use zk-SNARKs and Merkle Tree to accurately verify Binance’s Proof of Reserves and your account balance.

How to verify your account balance using zk-SNARKs and Merkle Tree?

1. Visit the official GitHub website and download the verifier tool from the repository.

Verifier Tool VersionPOR Verification Cycle
1.1.0Oct 1, 2024 to Current
1.0.2Nov 1, 2023 to Sep 1, 2024
1.0.1Mar 1, 2023 to Oct 1, 2023
1.0.0Feb 1, 2023 to Feb 1, 2023
Merkle Tree VerificationNov 22, 2022 to Dec 22, 2022

2. Go to Binance.com and log in to your account. Click [Profile] - [Wallet] - [Verification]. Then, click the arrow to expand the verification data.

3. Look for self-verifying Merkle Tree entries and make sure that the [Verification Type] is “Merkle Tree + Zksnarks”. You will see the data for your account. Click [Download Merkle Tree] to save it to your computer.

Please note that the report is a snapshot and not a display of real-time assets. It may not match your current asset count.

4. Go to the verifier tool folder. To verify the root hash, run “./verifier_darwin_amd64” on MacOS, “./verifier_linux_amd64” on Linux, or “./verifier_windows_amd64.exe” on Windows.

Prerequisite:

Set up “config.json”,“proof.csv” and “zkpor864.vk.save” within the zip file and place them in the “PathToVerifierTool/config” folder.

Configuration:

  • Set up the “ProofTable” to refer to the zk-SNARKs proof data file generated by the proofer;
  • Set up the “ZkKeyName” to point to the verifying key downloaded within the package;
  • “CexAssetInfo'' refers to the total customer balance of all the tokens listed within Binance (including all verifiable and non-verifiable assets). It can be verified using the listed zk-SNARKs proof. You may cross-check with the verifiable asset at Binance’s Proof of Reserves. All balances and prices are 10^8 except for BTTC, SHIB, LUNC, XEC, WIN, BIDR, SPELL, HOT, DOGE, PEPE, FLOKI, IDRT, BONK, DOGS, 1000SATS and NEIRO (10^2).

5. To verify your account information, use “./verifier_darwin_amd64 -user” on MacOS or “./verifier_linux_amd64 -user” on Linux, “./verifier_windows_amd64.exe -user” on Windows.

Prerequisite:

Download/Set up “user_config.json”. It is specifically generated based on a user’s account data during the snapshot. You can find it in the zip file you downloaded. Place it in the “PathToVerifierTool/config” folder.

Configuration:

  • “AccountIndex”: Location of the Merkle Leaf within the Merkle Tree;
  • “AccountIdHash” - “Record ID”: Identify each user’s account within Binance. You can find the information for your account on the [Verification] page.
  • “TotalEquity”: The total value of the user’s holding (in USD); Values is in 10^16
  • “TotalDebt”: The total value of the user’s borrowing (in USD); Values is in 10^16
  • “TotalCollateral”: The total value of the user’s holding placed as collateral (in USD); Values is in 10^16
  • “Assets”: The user’s assets in the snapshot. You can refer to the assets equivalent to the indexes within the asset template list download in step 2 (refer to the “Asset_List.csv” to identify the token by the index). Asset balances are 10^8 except for BTTC, SHIB, LUNC, XEC, WIN, BIDR, SPELL, HOT, DOGE, PEPE, FLOKI, IDRT, BONK, DOGS, 1000SATS and NEIRO (10^2).
  • “Root”: Merkle root hash of the verification exercise. It is used to check the user’s information with Merkle path information from the same root hashes.
  • “Proof”: The Merkle path that belongs to the user.

For more information on how zk-SNARKs works, please refer to:

If you have any suggestions, you can submit your feedback here.