If you keep searching for your account on the exchange's proof of reserves page and it always shows "No data" or "Balance not found", don't rush to blame the platform. Based on real-world experience, 80% of these cases happen because the snapshot time doesn't match or your Merkle leaf data got swallowed by browser cache. The steps below let you bypass the in-app black box and verify your balance directly through the Merkle path.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
Step 1: Pin down the snapshot time — don't rely on memory
Proof of reserves does not scan your account in real time. It takes a balance snapshot at a specific block height. If you can't find your record, the first thing to do is get the exact snapshot timestamp.
- What to do: Find the block height and its UTC time for this audit.
- How to do it: Open the Exchange Reserves proof page (on OKX, look under "Audit Report"). Focus on the line that says "Snapshot at block height". Convert the UTC time in brackets to your local time, then compare it with the deposit/trade time in your wallet.
Case A: Your coins arrived after the snapshot time → Just wait for the next monthly audit cycle.
Case B: Coins were there before the snapshot but still not found → Go to Step 2.
- Completion standard: You can confirm "My balance should theoretically be in this proof period", not just guessing.
⚠️ Risk note: Some platforms filter out short-term funds that are deposited and withdrawn immediately. If you deposited and moved funds within 5 minutes before the snapshot, the mechanism might exclude you. Your funds are safe, but you lose the Merkle leaf for that period. Let your coins sit in the account at snapshot time to be included.
Step 2: Dig out the hidden leaf information
Exchange UIs often swallow Merkle data, especially when you use an ad blocker, a Web3 wallet's built-in browser, or are in a restricted network environment.
- What to do: Get the Merkle leaf JSON for your account. It contains AccountHash, Balance, and the MerklePath array.
- How to do it:
- Case A: Page loads but shows no result
After entering your UID on OKX's "View my audit" page, if it keeps spinning, turn off Brave Shields, uBlock Origin, or switch to a Chrome incognito window and try again. A common failure is the browser blocking API responses from related domains.
- Case B: Page directly returns "No record"
Check whether you logged in with a read-only email or a sub-account. These identities often won't generate a leaf. You must use your main account UID and complete two-factor verification (email/authenticator).
- Case C: Manually grab the public file
If the webpage is completely unusable, go to the exchange's official GitHub repository and download the full Merkle tree data file for that date (usually .csv or .json). Match your deposit address or account hash against the entries.
- Completion standard: You have a piece of text that looks like "MerklePath":["0x3a...","0x9f..."] and the leaf hash and balance are clearly readable.
Step 3: Run the Merkle path verification locally
Once you have the leaf data, don't just rely on the "page says safe" feeling. Hash it yourself locally. You only need a terminal — no private keys required.
- What to do: Use the exchange's or an open-source tool to hash your leaf and the Merkle path layer by layer, compute the tree root, then compare it with the official Merkle Root.
- How to do it:
- Write down the official Merkle Root (e.g., 0xabc...).
(Source: OKX proof of reserves announcement, batch 2025-02-28)
- Visit OKX's merkle-verifier open-source tool (GitHub repo). Install dependencies following the README, then run the verification command.
- Check if the terminal prints true.
- Common failure reasons: When copying the path array, you lost brackets or commas. Or you tried to verify a BTC leaf against an ETH Merkle Root (different assets have separate tree roots — must match exactly). Always use the Merkle Root that the announcement lists for that specific asset.
- Completion standard: The terminal prints a successful verification. Your balance is proven to be included in the total reserves.
⚠️ Never enter your exchange password, private key, or seed phrase into any Merkle verification tool, even if it looks official. The whole verification only needs your UID or deposit address. Anyone asking for your "password to check Merkle" is 100% phishing.
Step 4: Troubleshoot invisible wallet attribution issues
Sometimes the PoR system does have your balance, but it's tied to a dimension you didn't expect.
- What to do: Check if your assets were merged into a combined leaf, or if cross-chain deposits/withdrawals messed up your identity.
- How to do it:
- If you hold assets on a non-native chain (e.g., BTC on BSC), switch the asset network on the proof of reserves page and check the audit tree for that chain.
- If your account is a custodial wallet or part of a unified hot wallet, some platforms won't split leaves for internal logic. In that case, contact customer support to request the leaf proof for that wallet. If they cannot provide it, keep screenshots of your assets at snapshot time and the on-chain transaction hash as alternative evidence.
- Completion standard: You've exhausted all possible public key identifiers (UID, bound email wallet, deposit addresses on every chain). Only when you still can't find your record is it a real omission.

A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!
What to do after verification
Once you've run local verification and the tree root matches, save the terminal screenshot and the JSON response captured from the browser console into an encrypted folder. Keep them until the next audit update.
If verification fails or your record is still missing, open a ticket directly through the official app's "Help Center". Include your UID, the batch number of the snapshot in question, and the on-chain deposit txid. Under current handling times, these tickets usually get a clear response within 72 hours. If no reply after that, you can politely follow up under the official social account's pinned post. Do not trust anyone who sends you a private message asking you to "verify your wallet" first.
FAQ
Q: Some hashes in the Merkle path are 64 characters, others 128. Is that normal?
Yes. Different assets and snapshot batches may use different encoding. For example, a USDT-ERC20 leaf might use one Poseidon hash, resulting in 64 characters, while a BTC leaf using double SHA-256 can be longer. As long as the final tree root matches the announcement, it's fine.
Q: Can I run Merkle verification on a phone?
Yes, but avoid browser-based online tools. On Android, install Termux and use pkg install nodejs to run the GitHub verifier. On iOS, you'll need a terminal emulator like a-Shell, though the experience is less smooth.
Q: My computed Merkle root and the exchange's root always differ in the last two characters?
Check whether the official root has a 0x prefix while your copied path or leaf doesn't, causing a shift during concatenation. Remove the 0x prefix from both and try again.


