As a cryptocurrency exchange, OKX understands that the safety and security of customer assets are top priorities. We ensure our balance sheet always holds enough assets with a 1:1 reserve ratio, giving us a longstanding reputation for best-in-class security and liquidity.
Our on-chain wallet holdings are also public, allowing you to easily confirm that customer deposits are backed 1:1 by real digital assets.
Our commitment to a 1:1 reserve ratio and monthly Proof of Reserves reports sets a high standard for the crypto industry, demonstrating our dedication to preventing the insolvency of our platform and the accuracy of our customer funds and net balances. This is critical for building trust with regulators and fostering a healthy and sustainable crypto ecosystem.
Proof of Reserves (PoR) ensures that custodians hold sufficient funds to cover all users' assets on their platform and deposit liabilities while remaining solvent.
This cryptographic attestation demonstrates that a crypto exchange holds a specific amount of assets on its blockchain at a particular time, providing transparency of aggregate user balances or the total sum of deposits on the exchange. This is achieved without revealing any sensitive information about individual account balances. PoR is a critical component of the crypto ecosystem.
Assets considered reserves are cryptocurrencies offering strong liquidity and market acceptance. OKX offers reserve reports for 22 coins, including Bitcoin (BTC), , and stablecoins, such as Tether (USDT), USD Coin (USDC).
We use a transparent Zero-knowledge proof algorithm, zk-STARK, to prove and verify all user assets held on our exchange.
We verify our ownership of OKX on-chain wallet addresses and the total OKX wallet holdings.
Finally, we verify our reserve ratio by comparing total user asset holdings with total exchange assets from our on-chain wallet addresses.
zk-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge) is a secure method. It relies on Zero Knowledge principles and utilizes the FRI protocol to verify data and prove the authenticity of our reports. In addition, zk-STARK ensures user privacy by not disclosing specific amounts, values, or addresses.
We take a snapshot of each user's asset balance and input this data into a trace table and an encrypted Merkle tree system. This creates a tamper-proof record, which can be used to verify the accuracy of the balances.
We set three rules or "constraints" that our user asset balances must satisfy. If each constraint is tested and proven true, it confirms the truth of the claims OKX is making.
Rule 1: Total Balance Constraint
The total user asset holdings that OKX claims to hold is the sum of every user's total asset balance.
Rule 2: Non-negative Constraint
Every user's total balance is more than zero, and their assets are accounted for, covering their liabilities and ensuring that each user has positive net equity. This is crucial in maintaining the solvency of a crypto exchange.
Rule 3: Inclusion Constraint
Every user's total balance is included in the calculation and verification process.
Our Proof of Reserves system is open-source and available for review and use on github.
We published a list of wallet addresses where users can check the OKX assets stored on-chain. These addresses contain a signed message stating, "I am an OKX address," which confirms our ownership.
To verify our ownership, you can utilize either third-party or open-source “VerifyAddress” tools provided by OKX.
To verify OKX's reserve ratio, compare the total assets held in OKX's on-chain wallets to the total user assets from the Merkle root.
If our total on-chain asset balance equals or exceeds the total user asset balance, the reserve ratio will confirm that OKX has Proof of Reserves.
Note: The report is a snapshot of our user asset balances at the time of the data capture. Any tokens outside of the scope or subsequent transactions made after the snapshot are not included.
Report period: April, 2023 onwards
To verify if your asset balance has been included as a Merkle leaf, navigate to “PoR reports” and click Details to access your report data.
Get the data you need for verification by clicking Copy data and pasting the string as a file in a new folder. The file must end with the name “_inclusion_proof.json.”
Download zk-STARK Validator, the OKX open-source verification tool, and save it to the same folder containing the JSON file.
Open zk-STARK Validator to auto-run the JSON file you saved.
If the verification is successful, the following message is shown:
"Inclusion constraint validation passed"
If the verification fails, the following message is shown:
"Inclusion constraint validation failed"
Access our Merkle tree verification method from 11/22/2022-02/17/2023
Access our Merkle tree v2 verification method from 03/16/2023
To verify whether the assets OKX claims to hold are true and that no user has negative assets, follow these steps:
Under “Proof of Reserves files” download the zk-STARK file from the “Liability report” tab.
Unzip the file to reveal a "sum proof data" folder with branch and trunk folders containing "sum_proof.json" and "sum_value.json" files.
Download zk-STARK Validator, the OKX open-source verification tool, and place it in the same root folder as the "sum proof data" folder.
Open zk-STARK Validator to auto-run the unzipped zk-STARK file.
If the verification is successful, the following message is shown:
“Total sum and non-negative constraint validation passed”
If the verification fails, the following message is shown:
“Total sum and non-negative constraint validation failed”
If you want to verify the ownership of your OKX wallet address and check its balance, compare it against our publicized list of crypto wallet addresses.
OKX will share the crypto type, amount, and signature. In addition, a signed "I am an OKX address" message with the corresponding private key will also be shared.
Using Bitcoin (BTC) as an example, the following steps are how users can verify ownership of their BTC wallet address and balance:
Download the publicly available wallet address information under "Proof of Reserves files."
Next, download OKX's open-source verification tools from github to start the verification process.
Open the downloaded wallet address information file and copy the highlighted information as shown in the image below. The BTC address, signatures, and message must be copied separately.
Paste the information into a third-party signature verification tool or OKX's VerifyAddress tool to verify the address and signature.
If the verification passes, it confirms that OKX owns the address.
Using the CheckBalance tool, verify the balance of the OKX wallet address by comparing it against the corresponding block height snapshot.