This guide explains how to independently verify OKX wallet address ownership and balance using OKX's official Proof of Reserves (PoR) snapshots and their open-source verification tools. This process ensures transparency and builds trust by confirming that OKX holds the assets it claims.
Prerequisites for Verification
Before you begin the verification process, you need to gather the necessary files and tools.
Download the Verification Tools: Visit the official OKX website to download the open-source verification toolkit. The downloaded ZIP file contains two key utilities:
- VerifyAddress: This tool confirms the ownership of the reserve addresses.
- CheckBalance: This tool checks the balance of the reserve addresses at the time of the snapshot. Note: You must configure the
rpc.jsonfile to define your RPC node or use the OKLink API.
- Download the Proof of Reserves Snapshot: Obtain the latest PoR snapshot file (usually a CSV) from the OKX website.
- Organize Your Files: Place the downloaded PoR snapshot file and the extracted verification tools in the same directory on your computer for easy access during the process.
How to Verify OKX's Ownership of Reserve Addresses
OKX's snapshot data contains addresses, signed messages, and signatures, all designed to cryptographically prove ownership. You can confirm that OKX controls these addresses by following the methods below.
The verification logic differs based on wallet type:
Bitcoin (BTC) Wallets: OKX uses two methods.
- Multi-Signature (Multi-Sig): Employs a 2-of-3 signature scheme. The snapshot data contains two signatures, signed by two of the three private keys OKX holds. Verifying these two signatures proves OKX controls the address.
- Single-Signature (Single-Sig): The signed message and its result demonstrate that the address is owned by OKX.
- EVM & TRON (TRX) Wallets (ETH, USDT, etc.): For these chains, a successfully verified signed message proves OKX's ownership of the address.
You can perform this ownership verification using either OKX's provided tools or trusted third-party websites.
Verifying Ownership Using OKX's Verification Tool
This method uses the VerifyAddress tool from the downloaded kit.
Open a Terminal Window:
- macOS: Open the "Terminal" application.
- Windows: Open the "Command Prompt".
Navigate to the Download Directory: Use the
cdcommand to change to the directory where you saved the tools and snapshot. For example:cd ~/Downloads/ProofOfReservesRun the Verification Command: Execute the appropriate command for your operating system. Replace
okx_por_20221122.csvwith your actual snapshot filename.macOS:
./VerifyAddress --por_csv_filename okx_por_20221122.csvWindows:
VerifyAddress.exe --por_csv_filename okx_por_20221122.csv- macOS Security Note: If you encounter a security error, go to System Preferences > Security & Privacy > General and click "Allow Anyway" for the tool.
- Review the Output: A successful verification will display a message like "Verifying address signature finishes. All addresses passed."
Verifying Ownership Using Third-Party Tools
For a manual check, you can use third-party websites to verify the signed messages.
- BTC Single-Signature Addresses
- EVM Addresses (ETH, etc.)
- TRON Chain Addresses
Here is an example using a BTC address:
- Open the PoR snapshot CSV file.
- Copy one entry, including the address, message, and signature fields.
- Go to a reputable Bitcoin message verification website.
- Paste the address, message, and signature into the respective fields.
- If verification is successful, the site will confirm the signature is valid.
Verifying Ownership of OKX's ETH Staking Assets
For ETH staking assets (validators), you can verify ownership using a beacon chain explorer like beaconcha.in.
- Open the ETH staking snapshot file.
- Copy a validator's public key from the file.
- Go to the
beaconcha.inwebsite and paste the public key into the search bar. - Check the "Withdrawal Credentials" field. Verify that the withdrawal address matches the address listed in OKX's staking snapshot file, confirming OKX's ownership.
How to Verify the Balance of OKX Reserve Wallet Addresses
This process involves checking that the balances on the blockchain at the exact snapshot block height match the balances published by OKX. You can verify either a single address or the total sum of all addresses for a specific cryptocurrency.
To query historical balances, you need access to blockchain data via an RPC node or a service like the OKLink API. The CheckBalance tool automates this process once configured.
Verifying BTC Address and Total Balance
You can use a self-hosted node or a third-party RPC.
Method 1: Using Bitcoin Core (Self-Hosted Node)
- Install and Sync Bitcoin Core: Download version 0.21 or higher. Edit the
bitcoin.conffile to enable RPC (server=1,rpcuser=user,rpcpassword=password). - Start the Node: Run
bitcoindand wait for full synchronization (this can take many hours). Revert to Snapshot Height: After syncing to the tip, you must invalidate the block after the snapshot height to get the historical state. Find the next block's hash from a block explorer and run:
./bitcoin-cli invalidateblock <block_hash>- Configure RPC: Ensure the
rpc.jsonfile contains the connection details for your local node (127.0.0.1:8332, yourrpcuser, andrpcpassword).
Method 2: Using a Third-Party RPC or API
Configure the rpc.json file with the endpoint details from your chosen service provider.
Running the Balance Check
- Open a Terminal and navigate to your tools directory.
Verify a Single Address Balance:
macOS:
./CheckBalance --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csvWindows:
CheckBalance.exe --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csvCompare the returned balance with the value in the snapshot file.
Verify Total Balance for BTC:
macOS:
./CheckBalance --mode="single_coin_total_balance" --coin_name="btc" --por_csv_filename=okx_por_20221122.csvWindows:
CheckBalance.exe --mode="single_coin_total_balance" --coin_name="btc" --por_csv_filename=okx_por_20221122.csvCompare the returned total balance with the sum published in the snapshot.
Verifying ETH/USDT Address and Total Balance
The process for Ethereum and EVM-compatible chains (like Arbitrum, Optimism) and their assets (ETH, USDT) is similar. Ensure your rpc.json file is configured for the appropriate chain RPC endpoints.
- Open a Terminal and navigate to your tools directory.
Verify a Single Address Balance (e.g., ETH):
# macOS Example ./CheckBalance --mode="single_address" --coin_name="eth" --address="0xc5451b523d5fffe1351337a221688a62806ad91a" --por_csv_filename=okx_por_20221122.csv # Windows Example CheckBalance.exe --mode="single_address" --coin_name="eth" --address="0xc5451b523d5fffe1351337a221688a62806ad91a" --por_csv_filename=okx_por_20221122.csvReplace
coin_nameandaddressas needed (e.g.,usdt-arbitrum).Verify Total Balance for a Coin (e.g., ETH):
# macOS Example ./CheckBalance --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csv # Windows Example CheckBalance.exe --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csvSupported
coin_namevalues includeeth,eth-arbitrum,usdt-erc20,usdt-optimism, etc.
For both steps, compare the tool's output with the OKX snapshot data to confirm they match.
👉 Explore more strategies for securing your crypto assets
Frequently Asked Questions (FAQ)
What is Proof of Reserves (PoR)?
Proof of Reserves is an auditing method used by cryptocurrency exchanges to prove they hold enough assets to cover all customer balances. It uses cryptographic techniques to provide verifiable evidence of ownership and solvency without compromising user privacy.
Why should I verify OKX's Proof of Reserves?
Verifying the PoR yourself adds a layer of trust and transparency. It allows you to independently confirm that OKX holds the assets it claims, ensuring the security of your funds on the platform and promoting overall accountability in the crypto ecosystem.
I'm getting a security error on macOS. What should I do?
This is a common macOS Gatekeeper warning for apps from unidentified developers. To proceed, go to System Preferences > Security & Privacy > General. You will see a message about the blocked tool. Click the lock icon to make changes, then click "Allow Anyway" to run the verification software.
Can I use a free third-party RPC node for balance checks?
Yes, you can use services like Infura or Alchemy for EVM chains. However, free tiers may have rate limits that could slow down the process for checking many addresses. For large-scale verification, a dedicated node or paid API plan is more reliable. Always configure these endpoints in the rpc.json file.
What if the balance I verify doesn't match the snapshot?
First, double-check that you have configured the correct RPC node and are querying the exact block height specified in the snapshot. If the discrepancy persists, it could indicate a configuration error or a sync issue with your node. Ensure your node is fully synced to the correct historical block.
Does this process verify all user funds held by OKX?
This process verifies the ownership and balance of OKX's reserve addresses as published. A complete audit would also involve verifying that the total liabilities (user balances) are less than or equal to these verified reserves, which is typically done by a professional auditing firm.