Zero-knowledge proof that assets exceed liabilities—on-chain solvency for Ethereum.
SolvencyProof is a privacy-first proof system that lets exchanges, stablecoin issuers, and financial protocols cryptographically prove they are solvent—meaning total reserves exceed total liabilities—without revealing sensitive financial data. The project publishes a liabilities Merkle root (private customer balances) and computes reserves from public onchain reserve wallets. A zero-knowledge proof is generated to prove Σ(reserves) ≥ Σ(liabilities) for a given epoch, and a Solidity verifier contract validates the proof on Ethereum (Base Sepolia) and emits an onchain attestation. Users can privately verify that their balance is included in the liabilities set via a Merkle inclusion proof, without exposing other users or balances. The public can independently verify solvency onchain without trusting the operator or viewing wallet balances.
SolvencyProof was built from scratch during HackMoney using an Ethereum-first, privacy-by-design architecture. Liabilities are ingested offchain from a CSV dataset and committed into a Merkle tree, producing a liabilities root and private per-user inclusion proofs. Reserves are computed from publicly verifiable onchain wallet balances on Base Sepolia. A zero-knowledge circuit (Circom + snarkjs, Groth16) proves that total reserves are greater than or equal to total liabilities for a specific epoch without revealing balances or users. The proof is verified by a Solidity verifier contract deployed on Base Sepolia, which emits an onchain solvency attestation. The frontend is built with Next.js and wagmi/viem, providing an admin flow to publish proofs, a private user flow to verify inclusion locally, and a public dashboard for independent onchain verification. A notable “hacky” aspect is combining private liabilities, public reserves, and ZK verification into a single solvency statement that preserves financial privacy on a transparent blockchain.

