Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Glossary

Proof of Solvency

Proof of Solvency is a cryptographic verification, typically facilitated by oracles, that an entity (like an exchange) holds sufficient assets to cover all customer liabilities.
Chainscore © 2026
definition
BLOCKCHAIN AUDIT PROTOCOL

What is Proof of Solvency?

Proof of Solvency (PoS) is a cryptographic protocol that enables a cryptocurrency exchange or custodial service to prove it holds sufficient assets to cover all client liabilities without revealing individual account balances or total holdings.

Proof of Solvency is a cryptographic audit mechanism that combines two core components: a Proof of Liabilities and a Proof of Reserves. The protocol allows a custodian, such as a centralized exchange, to provide verifiable evidence that its total assets equal or exceed its total customer obligations. This is achieved through cryptographic commitments like Merkle trees for liabilities and attestations from trusted third parties or on-chain verification for reserves. The goal is to increase transparency and user trust by demonstrating financial health in a privacy-preserving manner.

The process begins with the exchange generating a Merkle tree where each leaf node is a cryptographic hash of a client's account ID and balance. The root of this tree is published, committing to the total liabilities. For the Proof of Reserves, the exchange cryptographically signs a message with the private keys controlling its on-chain asset wallets, providing a timestamped snapshot of holdings. Advanced implementations may use zero-knowledge proofs (ZKPs) to allow users to verify their inclusion in the liability proof without revealing other users' data, a method known as a zk-SNARK-based proof.

The primary motivation for Proof of Solvency protocols emerged following major exchange collapses, such as Mt. Gox and FTX, where a deficit between held assets and client liabilities led to catastrophic failures. By requiring regular, verifiable audits, PoS acts as an early warning system for insolvency risk. It shifts the trust model from blind faith in a centralized entity to verifiable cryptographic evidence, although it does not guarantee the quality of assets or protect against fraud, mismanagement, or off-chain liabilities.

Key technical challenges include ensuring the attestation of reserves is real-time and non-circular (assets are not double-counted or borrowed for the audit), and that the liability proof includes all accounts. Proof of Solvency is distinct from Proof of Reserves, which only proves asset ownership, and from traditional financial audits, which rely on private third-party inspections. Leading implementations and proposals in the ecosystem include those from Kraken, Binance, and frameworks like zk-proofs developed by entities such as StarkWare.

For users and the broader ecosystem, the adoption of Proof of Solvency represents a critical step toward the self-custody ethos of cryptocurrency by providing custodians with a tool to prove their trustworthiness. While not a panacea, it establishes a minimum standard of financial transparency, allowing market participants to differentiate between solvent and potentially risky institutions. Its evolution is closely tied to advancements in zero-knowledge cryptography and on-chain verification tools.

how-it-works
CRYPTOGRAPHIC AUDIT

How Proof of Solvency Works

Proof of Solvency is a cryptographic protocol that allows a cryptocurrency exchange or custodian to publicly prove it holds sufficient assets to cover all client liabilities without revealing sensitive individual account details.

Proof of Solvency is a multi-step cryptographic audit combining two distinct proofs: a Proof of Reserves and a Proof of Liabilities. The Proof of Reserves demonstrates the total assets the institution controls, typically by cryptographically signing a message with the private keys of its wallets or by publishing a Merkle tree root of its holdings on-chain. The Proof of Liabilities proves the sum of all client account balances, usually by constructing a Merkle tree where each leaf contains a hashed client balance and a non-sensitive identifier. The magic lies in the combination: by showing that the total reserves are greater than or equal to the proven total liabilities, the entity demonstrates solvency.

The core privacy mechanism is the Merkle tree used for liabilities. Each leaf is a cryptographic commitment to a single user's balance and a unique identifier (like a user ID hash). The exchange provides each user with their specific Merkle proof, allowing them to independently verify their balance is included in the total without seeing others' data. This structure ensures cryptographic inclusion—any attempt to falsify the total sum or exclude an account would require breaking the cryptographic hash function, making the proof computationally infeasible to forge. Third-party auditors or the public can verify the Merkle root against the published data.

A complete implementation often involves Proof of Non-Inclusion to prevent the entity from fabricating liabilities. This proves that no valid client balance was omitted from the tree. Furthermore, to prevent double-counting of assets, advanced proofs like zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) can be used. These allow the exchange to prove it holds the secret keys to wallets containing the reserves, and that the sum of those reserves exceeds the proven liabilities, all without revealing the wallet addresses or exact amounts, enhancing both privacy and security.

The primary use case is for centralized exchanges (CEXs) and custodians to provide transparency and rebuild trust with users following high-profile insolvencies. It is a direct response to the fractional reserve risk, where an institution might lend out or misuse client deposits. While Proof of Solvency provides a strong, verifiable snapshot, it is not a real-time guarantee and does not replace ongoing regulatory oversight or audits of internal controls. It is a tool for verifiable accounting rather than a comprehensive risk assessment.

Key technical components include the cryptographic hash function (like SHA-256), digital signatures for attesting to wallet ownership, and Merkle tree data structures. The process is typically executed periodically (e.g., monthly or quarterly). Prominent examples of its implementation include exchanges like Kraken and Binance, which publish regular Proof of Reserves reports. The evolution of this concept is closely tied to developments in zero-knowledge cryptography, which promises more efficient and privacy-preserving proofs for complex financial statements.

key-features
MECHANISMS & COMPONENTS

Key Features of Proof of Solvency

Proof of Solvency is a cryptographic protocol that enables a financial institution to prove it holds sufficient assets to cover all customer liabilities, without revealing individual account balances. It combines a Proof of Liabilities with a Proof of Reserves to create a verifiable attestation of financial health.

01

Proof of Reserves

A cryptographic proof that demonstrates the total assets held by an institution. It typically involves the exchange or custodian publishing a Merkle root of its wallet addresses and balances, which can be independently verified against on-chain data. This proves the existence and control of assets but does not, on its own, prove they exceed liabilities.

02

Proof of Liabilities

A proof that cryptographically commits to the sum of all customer account balances (liabilities). Using a Merkle tree, each user's balance and account ID are hashed into a leaf. The exchange publishes the Merkle root, allowing any user to verify their inclusion. This proves the total amount the exchange owes without revealing individual data.

03

Non-Inclusion Proofs

A critical feature that allows any user to cryptographically verify that their specific account balance is correctly included in the total liabilities. By providing a Merkle proof (a path of hashes from their leaf to the published root), users can independently confirm their balance was part of the calculation, preventing the exchange from omitting large liabilities.

04

Zero-Knowledge Proofs (zk-SNARKs)

Advanced cryptographic techniques used to enhance privacy and verification. zk-SNARKs can prove that the sum of all liabilities in the Merkle tree is less than or equal to the proven reserves, without revealing any individual balances or the total liability amount. This provides a stronger, more private attestation of solvency.

05

Frequent Attestations

Proof of Solvency is most effective when performed regularly (e.g., daily or weekly). Frequent attestations create a near real-time audit trail, making it significantly harder for an institution to become insolvent and hide it. This moves auditing from a periodic event to a continuous process.

06

Independent Verifiability

The core principle that proofs must be verifiable by any third party—users, auditors, or the public—using only public data (the published proofs and blockchain state). This removes the need to trust the institution's word and shifts the model to trust-minimized verification, a cornerstone of decentralized finance.

oracle-role
PROOF OF SOLVENCY

The Role of Oracles

Proof of Solvency is an audit mechanism that cryptographically verifies a custodian's ability to honor all user withdrawals. Oracles play a critical role in sourcing, verifying, and delivering the external data required to construct and validate these proofs.

01

Sourcing Reserve Attestations

Oracles fetch and verify off-chain reserve attestations from trusted third parties. This includes:

  • Bank statements and custodial reports proving fiat holdings.
  • On-chain wallet balances for cryptocurrency reserves.
  • Auditor signatures and timestamped proofs to ensure data freshness and authenticity.
02

Aggregating Liability Data

Oracles aggregate the total user liabilities from the platform's internal database. This involves:

  • Calculating the sum of all user account balances.
  • Generating a cryptographic commitment (like a Merkle root) to this data.
  • Providing this commitment as a verifiable input to the Proof of Solvency circuit, ensuring liabilities are accurately represented without exposing individual user data.
03

Enabling Zero-Knowledge Proofs (ZKPs)

For advanced privacy-preserving proofs, oracles supply the verified data as private inputs to a zero-knowledge circuit. This allows the prover (the custodian) to demonstrate that reserves >= liabilities without revealing the exact amounts of either. The oracle's role is to attest that the private inputs fed into the ZK system are correct and current.

04

Providing Price Feeds for Cross-Asset Proofs

When reserves and liabilities are in different assets (e.g., BTC reserves backing USD liabilities), oracles provide real-time price feeds. This enables the proof to demonstrate solvency by valuing all assets and liabilities in a common unit (like USD). The proof's validity depends entirely on the accuracy and manipulation-resistance of these oracle-provided prices.

05

Triggering Automatic Proof Generation

Decentralized oracle networks can act as automation triggers. Based on predefined conditions—such as time intervals, significant market movements, or changes in reserve composition—an oracle can send a transaction to initiate a new Proof of Solvency generation. This creates a trustless, verifiable audit schedule.

06

Verifying Proofs On-Chain

Once generated, the cryptographic proof and its supporting data (like the Merkle root of liabilities) are published on-chain. Oracles can be used to verify the proof's inputs against their own independently sourced data. This creates a system of cross-verification, where the on-chain proof is checked against the oracle's attested state of the world.

COMPARISON

Proof of Solvency vs. Traditional Audit

A technical comparison of cryptographic proof-of-solvency mechanisms and traditional financial statement audits.

FeatureProof of SolvencyTraditional Financial Audit

Core Methodology

Cryptographic proof (Merkle trees, zero-knowledge proofs)

Sampling, inquiry, observation, confirmation

Primary Objective

Prove custody of client assets at a specific point in time

Provide opinion on financial statement fairness over a period

Frequency

Real-time or near real-time (e.g., daily)

Periodic (e.g., quarterly, annually)

Transparency

Publicly verifiable by anyone

Private report for stakeholders

Audit Scope

Focused on asset holdings and liabilities

Broad (assets, liabilities, income, expenses, controls)

Trust Assumption

Trustless verification via cryptography

Trusted third-party auditor

Data Granularity

Individual user account balances (pseudonymous)

Aggregate account balances

Execution Speed

Automated, completes in minutes to hours

Manual, requires weeks to months

examples
PROOF OF SOLVENCY

Examples & Implementations

Proof of Solvency is implemented through cryptographic techniques that allow an entity to prove it holds sufficient assets to cover its liabilities without revealing sensitive information. These are the primary methods and real-world applications.

01

Merkle Tree-Based Proofs

The most common implementation, used by exchanges like Kraken and Binance. It involves:

  • Creating a Merkle tree where each leaf contains a hashed user balance and ID.
  • Publishing the Merkle root (a cryptographic commitment) and total liabilities.
  • Providing individual users with a Merkle proof to verify their inclusion.
  • Separately proving total assets via a cryptographic attestation (e.g., digital signature) from custodians or on-chain reserves.
02

Zero-Knowledge Proofs (zk-SNARKs)

An advanced cryptographic method for privacy-preserving solvency proofs. zk-SNARKs allow an exchange to prove:

  • That the sum of all user balances (liabilities) is less than or equal to total assets.
  • That all user balances are non-negative.
  • Without revealing any individual user's balance or the exchange's total asset holdings. This provides stronger privacy than Merkle tree proofs.
03

Proof of Reserves

The asset-side component of Proof of Solvency. It cryptographically verifies an entity's holdings. Common implementations include:

  • On-Chain Attestation: Publishing a signed message from a known custodial address.
  • Balance Attestations: Using Merkle Mountain Ranges (MMR) or similar structures to prove aggregate holdings across multiple addresses or chains.
  • Third-Party Audits: Combining cryptographic proofs with traditional audits of off-chain assets (e.g., bank accounts).
04

Proof of Liabilities

The liability-side component, proving what is owed to users. Key techniques are:

  • Inclusion Proofs: Using a Merkle tree to prove a user's balance is included in the total.
  • Non-Inclusion Proofs: Proving a specific liability (e.g., a fake debt) is not in the tree.
  • Range Proofs: Using cryptographic protocols to prove all balances are positive, preventing the creation of "negative" liabilities to artificially inflate totals.
05

Industry Implementers

Notable platforms that have implemented public Proof of Solvency:

  • Kraken: One of the first major exchanges to publish regular Merkle tree-based proofs.
  • Binance: Publishes a Merkle Tree Proof of Reserves system, allowing user verification.
  • Coinbase: Provides cryptographic attestations of custodial holdings.
  • Nexo: Implemented a zk-SNARK-based proof in collaboration with Zero Knowledge Labs.
06

Technical Limitations & Challenges

Current implementations have known constraints:

  • Snapshot-in-Time: Proofs are valid only for a specific moment, not continuous.
  • Off-Chain Data Reliance: Often depends on attested data not fully anchored on-chain.
  • Privacy vs. Verification: Merkle trees leak information about the total number of users and approximate distribution.
  • Scope: Typically covers spot holdings, not derivatives or off-exchange liabilities.
security-considerations
PROOF OF SOLVENCY

Security Considerations & Limitations

Proof of Solvency is an audit technique for crypto custodians to prove they hold sufficient assets to cover client liabilities, but it has inherent limitations that do not guarantee absolute security.

01

Point-in-Time Snapshot

A standard Proof of Solvency provides a cryptographic snapshot of assets and liabilities at a specific moment. This means it does not prove continuous solvency between audits. A custodian could be insolvent for days or weeks before the next proof is published, a critical limitation known as temporal risk.

02

Off-Chain Data Integrity

The proof's validity depends on the integrity of the off-chain data used to compile the liability list (customer balances). If this internal database is falsified, the cryptographic proof will still be valid but will represent a fraudulent state. This creates a trusted setup for the liability side of the proof.

03

Asset Obfuscation & Privacy

To protect user privacy, proofs often use cryptographic commitments like Merkle Trees and zero-knowledge proofs. While this hides individual balances, it also introduces complexity and can make it difficult for third parties to fully verify the proof's correctness without relying on the auditor's or custodian's software.

04

Scope of Assets

A proof typically covers on-chain assets (e.g., Bitcoin, Ethereum). It may not account for off-chain liabilities like fiat loans, derivatives exposure, or unreported losses. It also cannot prove the custodian controls the private keys for the proven assets, only that the assets exist at the listed addresses.

05

Verification Complexity

Fully verifying a sophisticated proof (e.g., one using zk-SNARKs) requires technical expertise and computational resources. This creates a verification gap where most users must trust that a few experts or auditors have correctly verified the proof, reducing its utility as a transparent, user-verifiable tool.

06

Not a Substitute for Reserves

Proof of Solvency verifies asset backing but does not assess liquidity risk. A custodian could be solvent but illiquid (e.g., assets locked in long-term staking or illiquid tokens), unable to meet sudden withdrawal demands. It is a necessary but insufficient condition for proving overall financial health.

PROOF OF SOLVENCY

Common Misconceptions

Proof of Solvency is a critical but often misunderstood concept for exchanges and custodians. This section clarifies key technical and operational distinctions to separate fact from fiction.

No, Proof of Solvency and Proof of Reserves are distinct but related concepts. Proof of Reserves is a cryptographic method for proving an entity holds a specific quantity of assets, typically by publishing a Merkle tree of user balances and a commitment to the total assets held. Proof of Solvency is a broader attestation that an entity's total assets exceed its total liabilities. It combines a Proof of Reserves with a Proof of Liabilities, demonstrating the exchange is not insolvent. A true Proof of Solvency requires proving the sum of all user balances (liabilities) is less than or equal to the total assets under custody, without revealing individual user data.

PROOF OF SOLVENCY

Frequently Asked Questions (FAQ)

Proof of Solvency is a cryptographic method for verifying a custodian's financial health. This section answers common technical and practical questions about how it works and its implications.

Proof of Solvency (PoS) is a cryptographic protocol that allows a financial custodian, like a cryptocurrency exchange, to prove it holds sufficient assets to cover all client liabilities without revealing sensitive individual account details. It works by combining two proofs: a Proof of Liabilities, where the exchange commits to the total amount it owes users using a Merkle sum tree, and a Proof of Reserves, where it cryptographically attests to its total asset holdings, typically via digital signatures from its wallets. By demonstrating that reserves ≥ liabilities, the exchange proves its solvency. This process enhances transparency and trust while preserving user privacy.

ENQUIRY

Get In Touch
today.

Our experts will offer a free quote and a 30min call to discuss your project.

NDA Protected
24h Response
Directly to Engineering Team
10+
Protocols Shipped
$20M+
TVL Overall
NDA Protected Directly to Engineering Team