How Liquid Works
This page covers the technical fundamentals you need to understand before writing integration code. If you already know how Bitcoin's UTXO model works, most of this will feel familiar. Liquid adds confidentiality, faster blocks, and native multi-asset support on top.
Federated sidechain
Liquid is a federated sidechain of Bitcoin. A fixed set of functionaries (currently 15 members, with an 11 of 15 quorum) produce blocks and manage the Bitcoin peg. These functionary operators are well-known entities of the Liquid Federation, like exchanges and infrastructure providers.
Blocks are produced on a fixed ~1 minute schedule. There's no mining, no difficulty adjustment, and no block reward. The federation signs each block using a threshold signature scheme.
Node implementation
Liquid's reference node implementation is Elements Core. It is a codebase derived from Bitcoin Core rather: it extends Bitcoin with Confidential Transactions, Issued Assets, the federated two-way peg, additional opcodes, Simplicity smart contracts, and federated block signing.
In practice you'll see three binaries shipped with Elements Core:
| Binary | Role |
|---|---|
elementsd | The Liquid/Elements full node daemon. This is what connects to peers, validates blocks, and serves RPC requests. |
elements-cli | The command line client used to send JSON-RPC commands to a running elementsd. |
elements-qt | The graphical wallet/node application, useful for desktop users. |
For most integrations you don't need to run a node, it's easy to get started using Liquid Wallet Kit (LWK) with public Esplora and Waterfalls data sources. If you do, see Running Your Elements Node for installation, configuration, and how to point LWK at your own node.
The two-way peg
Peg in (Bitcoin to Liquid):
- You send BTC to your peg-in federation address on Bitcoin mainnet.
- After 102 Bitcoin block confirmations (~17 hours), an equivalent amount of LBTC can be claimed on Liquid.
Peg out (Liquid to Bitcoin):
- You create a peg-out transaction on Liquid specifying a Bitcoin destination address.
- The federation processes the peg-out and sends BTC to your address on Bitcoin mainnet.
For exchange operations, you'll mostly work with LBTC that's already on Liquid. Peg-in/peg-out is relevant for treasury operations, not day to day user deposits. See Peg-in and Peg-out for the full workflow.
UTXO model
Liquid uses an unspent transaction output (UTXO) model, just like Bitcoin. There are no accounts or balances at the protocol level. A "balance" is the sum of all unspent outputs your wallet controls.
When you send assets, you consume one or more existing UTXOs as inputs and create new UTXOs as outputs. Any leftover goes to a change output back to your own wallet.
This matters for your integration because:
- You need to scan the chain to discover UTXOs belonging to your wallet.
- Transaction construction involves selecting UTXOs (coin selection).
- Every transaction needs at least a small amount of LBTC for fees, even when sending other assets.
Confidential Transactions
All Liquid transactions are confidential by default. The amounts and asset types in every output are cryptographically blinded using Pedersen commitments and range proofs (Bulletproofs).
What's hidden:
- The exact amount in each output
- Which asset type each output carries
What's still visible:
- The transaction graph (sending and receiving addresses)
- The number of inputs and outputs
- The fee amount
Note that fee outputs are always unblinded. Currently only LBTC is accepted for fees, but Liquid will eventually support other fee assets like USDt.
Your wallet uses blinding keys to unblind transactions that belong to you. A third party looking at the blockchain cannot unblind transactions without the blinding keys; they can't tell if a transaction moved 1 satoshi or 1 million LBTC, or whether it carried LBTC or USDt. See Confidential Transactions for the deep dive.
Issued assets
Any participant can issue a new asset type on Liquid. Each asset gets a unique asset ID, a 64 character hex string derived from the issuance transaction.
Key properties of issued assets:
- Precision: how many decimal places the asset uses. Precision
8means 1 display unit = 100,000,000 satoshis (like Bitcoin). Precision2means 1 display unit = 100 satoshis (like cents to dollars). - Reissuance token: the holder of the reissuance token lets can mint more supply of the same asset later.
- Contract metadata:
name,ticker,domain,precisionembedded in the issuance transaction.
Assets can be registered in the Liquid Asset Registry so wallets and explorers can display human readable names and icons.
PSET format
Liquid uses PSET (Partially Signed Elements Transaction) as the standard format for transactions that aren't fully signed yet. If you've worked with Bitcoin's PSBT, PSET is the Elements/Liquid equivalent.
A PSET flows through these stages:
- Created: inputs and outputs defined, not signed
- Signed: one or more signers add their signatures
- Finalized: all required signatures present, ready to broadcast
- Broadcast: sent to the network
For a standard single-sig exchange wallet, you create the PSET, sign it with your key, finalize, and broadcast. For AMP2 managed assets, there's an additional co-signing step (covered in the AMP2 section).
Network environments
| Network | LBTC source | Base URL (Esplora) | Use case |
|---|---|---|---|
| Liquid mainnet | Real BTC peg | https://blockstream.info/liquid/api/ | Production |
| Liquid testnet | Free faucet LBTC | https://blockstream.info/liquidtestnet/api/ | Development and testing |
Always build and test on testnet first. You can get free testnet LBTC from the Liquid testnet faucet.
Next steps
- Bitcoin vs Liquid: side by side comparison
- Confidential Transactions: how Liquid's privacy works
- Liquid Assets: the asset model
- LWK Overview: start building