How do I verify OKX's ownership and balance of the wallet address?
This article will guide you through the process of how to verify OKX's ownership and balance of the wallet address via OKX's reserve snapshot file and open source reserve verification tool.
What should I prepare before verification?
1. Open the verification tool, select the zip file to download You can see the following two tools in the folder:
VerifyAddress: verify ownership of reserve address.
CheckBalance: verify reserves address balance (Note: rpc.json needs to be configured, in order to configure node RPC or OKLink open API and other related information.)
You can see VerifyAddress and CheckBalance in the folder
2. Open the audit files and download the Proof of Reserves
3. Store the downloaded Proof of Reserves and verification tool in the same folder
How do I verify OKX's ownership of wallet reserves address?
OKX snapshot data contains addresses, "I am an OKX address" messages and signatures, as well as BTC multi-signature redemption scripts. You can operate using the below steps to confirm that OKX owns these addresses.
The BTC wallet adopts two signature methods: single signature and multi-signature
Multi-signature adopts 2/3 signature, and each piece of data contains two signatures, which are signed by two private keys among the three private keys held by OKX. By verifying the two signatures, it can be ensured that OKX has at least two of the private keys, thus proving that OKX has ownership of the multi-signature address.
The BTC single-signature address passed message and signature results can prove OKX's ownership of the address.
ETH and USDT wallet
Passed message and signature results can prove OKX's ownership of the address.
You can confirm the ownership of the reserves address published by OKX with the open source or third-party tools provided.
How do I verify OKX's ownership of wallet reserves address via verification tools?
Open the terminal program
Mac system: Terminal
Windows system: Command Prompt
Run the command and locate the directory of the downloaded folder. In our case, enter the command cd ~/Downloads/proof-of-reserves
Enter the following command in terminal (The file name can be replaced with another file that needs validation)
Mac: ./VerifyAddress --por_csv_filename=okx_por_20221122.csv
Windows: VerifyAddress.exe --por_csv_filename=okx_por_20221122.csv Note: if you are using Mac and encounter "cannot open the tools because the developer can't be verified", please go to System preferences > Security&Privacy > General > Click the lock to make changes > Allow apps downloaded from App Store and identified developers
If the verification is passed, the terminal will return "Verify address signature end, all address passed"
How do I verify OKX's ownership of wallet reserves address via third-party tool?
To verify the ownership of the following types of addresses, third-party tools can be used to prove that the address belongs to OKX:
BTC single-signature address - BTC signature verification tool
EVM address - ETH signature verification tool
TRX chain address - TRX chain signature verification tool
We'll take the BTC single-signature address as an example here:
Download and open Audit files
Copy a record from the file, including address, message, and signature
Copy a record from the file
3. Go to BTC signature verification tool, paste the address, message, and signature
4. If the verification is passed, the result will be shown as below:
How do I verify OKX's ETH staking assets ownership?
For ETH staking assets, use the third party explorer(beaconcha.in) to verify OKX's ownership of these publickeys.
Download and open ETH staking file.
Copy any validator publickey
Copy the validator publickey
3. Go to beaconcha.in, paste the validator publickey
4. Check if the "From address" and "Recipient address" match the addresses in the ETH staking file. The "From address" and "Recipient address" are signed by OKX confirming ownership, and can be verified using the instructions from above
How do I verify the balance of OKX wallet reserves address?
Compare the address balance of a specific crypto chain at the snapshot height time with the address balance in the snapshot file published by OKX to verify whether they are consistent.
Compare the sum of address balances of a specific crypto chain at the snapshot height time with the sum of address balances in the snapshot file published by OKX to verify whether they are consistent.
To query the address balance at the snapshot height, you can either configure node rpc or use OKLink's open API.
How do I verify BTC specified address balance and total balance?
1. Install the Bitcoin Core client, synchronize to the latest height, and then roll back the block to the height of the OKX snapshot
Download Bitcoin Core here with version 0.21 or above
Edit the configuration file of Bitcoin Core to enable access to the RPC node. Create ~/.bitcoin/bitcoin.conf file and open it with an editor or run the command of vi ~/.bitcoin/bitcoin.conf ,edit server=1 rpcuser=OKX rpcpassword=OKXWallet
Enter the bin directory,run ./bitcoind command,and start the node
Wait for the node to synchronize to the latest height. It takes about 12 hours
To query the balance from the OKX snapshot height, you need to roll back the node to that height after synchronizing to the latest height.
Go to the BTC browser and search for the block hash of the next height after the snapshot height. Copy the block hash and enter it in the hash value part of the following command
Run ./bitcoin-cli invalidateblock00000000000000000005829017993a7a21e4b7c731c95b9cb979c01294a7bd27 command
Note: '00000000000000000005829017993a7a21e4b7c731c95b9cb979c01294a7bd27' - this is an example, please update this parameter as the hash value of the next block at the height of the BTC block in the proof of reserves file that you downloaded.Wait for the node to roll back to the snapshot height. You can run./bitcoin-cli getblockcount command to check whether the rollback is completed, or you can view the node output log judgment
2. Configure the parameters
Open rpc.json file
Configure btc-related RPC parameters in the rpc.json file and save the file
3. Verify whether the balance of an on-chain address is consistent with the balance shown in the snapshot file by using the CheckBalance tool.
Open the terminal program
Mac system: Terminal
Windows system: Command Prompt
Run the command and locate the directory of the downloaded folder. In our case, enter the command cd ~/Downloads/proof-of-reserves
Verify the balance of a single address
Enter the following command in terminal (The file name can be replaced with another file that needs validation)
Mac: ./CheckBalance --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csv
Windows: CheckBalance.exe --mode="single_address" --coin_name="btc" --address="3A1JRKqfGGxoq2qSHLv85u4zn935VR9ToL" --por_csv_filename=okx_por_20221122.csv
Note: If you are using Mac and encounter "cannot open the tools because the developer can't be verified", please go to System preferences > Security&Privacy > General > Click the lock to make changes > Allow apps downloaded from App Store and identified developers
The balance of a single address is displayed based on the returned result
The balance of a single address is displayed based on the returned result
3. Compare the OKX balance published in the file and returned result to see if it's consistent
Verify the balance of all addresses
Enter the following command in terminal (The file name can be replaced with another file that needs validation)
Mac: ./CheckBalance --mode="single_coin_total_balance" --coin_name="btc" --por_csv_filename=okx_por_20221122.csv
Windows: CheckBalance.exe --mode="single_coin_total_balance" --coin_name="btc" --por_csv_filename=okx_por_20221122.csv
Note: If you are using Mac and encounter "cannot open the tools because the developer can't be verified", please go to System preferences > Security&Privacy > General > Click the lock to make changes > Allow apps downloaded from App Store and identified developers
The balance of all addresses is displayed based on the returned result
The balance of all addresses is displayed based on the returned result
3. Compare the OKX balance published in the file and returned result to see if it's consistent
How do I verify ETH/USDT specified address balance and total balance?
OKX has released wallet addresses on Ethereum, Optimism, Arbitrum, Polygon, Avalanche, and other blockchains, as well as the corresponding balances of ETH or USDT. Using open source tools, you can check the balance of these addresses. For verification, you can opt to use the default RPC, a third-party RPC, or the OKLink API.
Use the default rpc without modifying rpc.json, you can directly go to the verification step
Use third-party node rpc (such as: Infura, Alchemy) - you can view in the appendix
Use OKLink's API for verification - you can view in the appendix
Use the tool CheckBalance to verify whether the balance on the on-chain address is consistent with the balance shown in the snapshot file
Open the terminal program
Mac system: Terminal
Windows system: Command Prompt
Run the command and locate the directory of the downloaded folder. In our case, enter the command cd ~/Downloads/proof-of-reserves
Verify the balance of a single address
1. For example, if you'd like to verify whether the balance of the ETH address 0xc5451b523d5fffe1351337a221688a62806ad91a at the specified height is consistent with the balance displayed in the snapshot file (E.g. okx_por_20221122.csv), you need to execute the following command on the terminal:
Mac: ./CheckBalance --mode="single_address" --coin_name="eth" --address="0xc5451b523d5fffe1351337a221688a62806ad91a" --por_csv_filename=okx_por_20221122.csv
Windows: CheckBalance.exe --mode="single_address" --coin_name="eth" --address="0xc5451b523d5fffe1351337a221688a62806ad91a" --por_csv_filename=okx_por_20221122.csv
Note:
If you need to query other currencies, replace the "coin_name" and "address" with the appropriate values
If you are using Mac and encounter "cannot open the tools because the developer can't be verified", please go to System preferences > Security&Privacy > General > Click the lock to make changes > Allow apps downloaded from App Store and identified developers
2. The balance of the query address of ETH at the specified height is displayed based on the returned result
The balance of the query address of ETH at the specified height
3. Compare the proof of reserves published by OKX and the output results, the balance of the address and the balance in the proof of reserves, you can see that they are consistent, proving the balance of this address that OKX had at the time of the snapshot.
Verify the sum of all address balances of certain crypto
1. For example, if you want to verify whether the balance of all ETH addresses at the specified height is consistent with the balance shown in the snapshot file (E.g. okx_por_20221122.csv), you need to execute the following command on the terminal:
Mac: ./CheckBalance --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csv
Windows: CheckBalance.exe --mode="single_coin_total_balance" --coin_name="eth" --por_csv_filename=okx_por_20221122.csv
Note:
If you need to query other currencies, replace the "coin_name" with supported values such as BTC, ETH, ETH-ARBITRUM, ETH-OPTIMISM, USDT-ERC20, USDT-TRC20, USDT-POLY, USDT-AVAXC, USDT-ARBITRUM, USDT-OPTIMISM
If you are using Mac and encounter "cannot open the tools because the developer can't be verified", please go to System preferences > Security&Privacy > General > Click the lock to make changes > Allow apps downloaded from App Store and identified developers
2. The balance of all addresses of ETH at the specified height is displayed based on the returned result
The balance of all addresses of ETH at the specified height
3. Compare the proof of reserves published by OKX and the output results, the balance of all addresses and the balance in the proof of reserves are consistent, which can prove the sum of balances that OKX has at the time of the snapshot.
Appendix
Use third-party node RPC (eg: Infura, Alchemy)
Configure the RPC parameters of each chain archive node in the rpc.json file, as shown in the following figure: Get the evm archive node
Install the archive node manually. It may take some time to synchronize. Please refer to here
Example: Alchemy provides ethereum archive node service
OKLink API balance verification
Login to OKLink
Go to profile > API
Select Create API under On-chain Data to create apiKey
OKLink is a blockchain big data company that provides an open interface to query the address balance of a specified height in the blockchain. You can also obtain the public API from OKLink to verify the address balance published by OKX.