This guide explains how to validate OKX's ownership and balance of wallet addresses using their published reserve snapshot files and open-source reserve verification tools.
Prerequisites for Verification
Download Tools
- Obtain the Reserve Verification Tool and extract the ZIP file.
 Contains two utilities:
Verify Address: Validates address ownership.Check Balance: Verifies address balances (requiresrpc.jsonconfiguration for node RPC or OKLink API).
Download Proof of Reserves File
- Get the latest Proof of Reserves snapshot.
 
Organize Files
- Store both the snapshot file and verification tools in the same folder.
 
Verifying OKX's Ownership of Reserve Addresses
OKX’s snapshot includes addresses, the message "I am an OKX address", signatures, and BTC multisig scripts. Follow these steps to confirm ownership:
1. BTC Wallets (Single/Multi-Signature)
- Multi-Signature Addresses: Use 2/3 signatures. Verify both signatures to confirm OKX controls at least two private keys.
 - Single-Signature Addresses: Validate via message and signature.
 
2. ETH and USDT Wallets
- Ownership is proven through message-signature pairs.
 
👉 Explore OKX's verification tools
Step-by-Step Verification Using Reserve Tools
1. Terminal Setup
- Mac: Use Terminal.
 - Windows: Use CMD.
 
2. Run Verification Commands
Navigate to the tool’s directory (e.g., cd ~/Downloads/proof-of-reserves) and execute:  
For Mac:
./VerifyAddress --por_csv_filename=okx_por_20221122.csvFor Windows:
VerifyAddress.exe --por_csv_filename=okx_por_20221122.csvNote: Mac users may need to grant permissions via System Preferences > Security & Privacy.
3. Expected Output
A success message:
Verify address signature end, all address passed.Third-Party Tool Verification
Use these tools for specific address types:
- BTC Single-Signature: Confirm via message/signature.
 - EVM Chains (ETH, USDT): Validate with Etherscan.
 - TRX Addresses: Use Tronscan.
 
Example for BTC:
- Copy an address, message, and signature from the snapshot.
 - Paste into a BTC signature verification site.
 - Match results with OKX’s data.
 
Validating ETH Staking Assets
Use blockchain explorers (e.g., Etherscan) to:
- Copy a public key from OKX’s snapshot.
 - Check 
From/Recipientaddresses against ETH staking files. 
Verifying Reserve Address Balances
BTC Balance Check
- Sync Bitcoin Core to the snapshot height (rollback if needed).
 - Configure 
rpc.jsonwith node RPC details. Run:
./CheckBalance --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csv
ETH/USDT Balance Check
- Use default RPC or configure 
rpc.jsonwith OKLink API. Validate via:
./CheckBalance --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csv
FAQ
Q: What if the tool shows an error?
A: Ensure files are correctly placed and RPC/configurations are valid.
Q: Can I use Infura instead of OKLink?
A: Yes! Update rpc.json with Infura/Alchemy endpoints.
Q: How often are snapshots updated?
A: OKX releases periodic snapshots; check their official page.
👉 Learn more about OKX's reserves
Appendix: Advanced Configurations
Using Third-Party RPCs (Infura/Alchemy)
Edit rpc.json with EVM chain RPC URLs (e.g., Ethereum Archive Nodes).
OKLink API Setup
- Generate an API key via OKLink.
 - Configure 
rpc.jsonwith your API credentials. 
Verified accuracy and transparency are core to OKX’s Proof of Reserves. Follow these steps to independently confirm their holdings.