Proof of Reserves
Botanix implements a transparent and verifiable proof of reserves system that allows anyone to independently verify the total amount of Bitcoin locked in the protocol.
How It Works
Deposit Address Storage: Each EVM wallet address on Botanix has a corresponding Bitcoin deposit address (gateway address). We store these deposit addresses by listening to mint events emitted when users make pegin claims, and then storing the associated deposit address in our database.
Address Reuse: Users can reuse the same deposit address for multiple pegins with the same wallet, but the address is only registered once during the initial pegin operation.
Address Discovery: Users can obtain the complete list of active deposit addresses (those with balance > 0) in two ways:
API Method: Query our API endpoint for immediate access to active addresses
Trustless Method: Independently derive the address list by listening to mint events from the pegin contract
Balance Verification: Using the address list, anyone can verify total locked Bitcoin by running Bitcoin Core's
scantxoutsetRPC command, which returns the sum of all UTXOs held by these addresses.
Benefits
Real-time Verification: Check reserves at any time without waiting for periodic audits
Trustless Auditing: Completely independent verification possible using only on-chain data
Transparency: All deposit addresses and their balances are publicly verifiable on the Bitcoin blockchain
No Special Tools Required: Verification only requires a Bitcoin Core node and basic RPC knowledge
Verification Steps
Extract all deposit addresses from pegin contract mint events (or use our API)
Run
bitcoin-cli scantxoutset start '["addr(ADDRESS1)", "addr(ADDRESS2)", ...]'Sum the returned UTXO values to get total locked Bitcoin
Compare against circulating supply on Botanix L2
This approach ensures that Botanix operates with full reserves while providing the cryptographic guarantees users expect from blockchain-based systems.
Last updated
Was this helpful?