How SQRL works

Bitcoin settles, the SQRL network executes and verifies, and SQRL's products give institutions a governed way to operate on top. This page explains what each layer is responsible for, and what SQRL does and does not hold.

Updated 08 Nov 20264 min read

#The three layers

LayerWhat it doesWhat it holds
BitcoinOrders every contract deployment and call, and makes it final at confirmation depth. Enforces the M-of-N spending rules on every vault.Commitments: a hash of each contract's bytecode and a protocol stamp for each call. Vault coins under their multi-signature script.
SQRL networkNodes watch Bitcoin for protocol stamps, replay each call deterministically against the anchored bytecode, and publish a state root at every block. Accredited validator seats co-sign roots on the canonical ledger; banks run closed subnets on the same codebase (see Network architecture).Contract state: balances, whitelists, roles, freezes. Every value is provable against Bitcoin.
SQRL productsSQRL Enterprise, SQRL Markets and SQRL Pay build the transactions, collect signatures, apply policy and compliance checks, and broadcast.Public keys, workflow state and the audit log. Never private keys.

Each layer can be checked independently of the one above it. A token balance shown in SQRL Enterprise is a read from SCL state, and SCL state is a deterministic function of what is on Bitcoin.

#Keys stay with the client

SQRL is non-custodial at every layer.

  • Vaults are Bitcoin scripts. A vault is a P2WSH address generated from its signers' public keys and its threshold, written as a descriptor such as wsh(multi(2,xpub…,xpub…,xpub…)). The threshold is part of the script, so Bitcoin itself rejects a spend with too few valid signatures.
  • Transactions move as standard PSBTs. Every movement, token action and deployment is a BIP-174 partially signed Bitcoin transaction carrying the derivation metadata a signer needs.
  • Signing happens on the signer's device. Signers use a software signing profile held encrypted in their own browser, a Trezor hardware wallet that shows what it is approving on its own screen, or an HSM for issuer admin keys.
  • SQRL holds public material only. Public keys, xpubs and master fingerprints. There is no private key or seed in SQRL's servers or databases. Keys held on a Trezor or in an HSM never leave the device. A software signing profile is held encrypted in the signer's browser and used by the SQRL web app there, so protect the devices your signers use as you would any signing workstation.

#Who controls an asset

Every SQRL asset is an SCL contract that implements the SQRL token standard. The contract's admin is a vault, not a person. Administrative functions check the address of the coin the calling transaction spends, and only the vault's M-of-N signers can spend the vault's coins. That makes quorum control of an asset a property of Bitcoin, not of SQRL's servers.

On top of the quorum, the standard separates duties into asset roles: minter, burner, pauser and compliance officer. Each action is proposed by one operator and approved by a different one.

#The life of an asset action

The same lifecycle applies to a deployment, a mint, a transfer, a freeze, a clawback or a pause.

1

Propose

An operator with the right asset role starts the action in SQRL Enterprise. Policy checks, whitelist checks and sanctions screening run first. A movement that fails any of them never becomes a transaction.

2

Build

SQRL builds the call envelope (contract, function, arguments, call ID) and a PSBT that spends a vault coin and carries the envelope's protocol stamp in an OP_RETURN output. The envelope names the exact outpoint the transaction spends, which binds the call to that transaction.

3

Sign

Each signer reviews the action and signs on their own device. When the vault's threshold is met, the transaction is finalised.

4

Settle

The transaction is broadcast to Bitcoin. SCL nodes validate the anchor binding, replay the call once it confirms, and fold the result into the block's state root.

See Settlement and validation for the node side in full.

#Verifying it yourself

You never have to take SQRL's word for a balance or a supply figure.

  • SQRL Explorer (opens in a new tab) shows contracts, calls and state on the network.
  • An SCL node you run yourself replays every call and exposes the same state over its REST API. Matching state roots at the same block height prove matching state.
  • A banking subnet keeps its balances private to its members, but anchors every call to Bitcoin the same way. A supervisor or auditor given the subnet's data replays it against those anchors and reaches the same state roots. See Subnets and routing.
  • Reserve attestation in SQRL Enterprise recomputes each stablecoin's circulating supply from Bitcoin at every block and compares it with the attested reserves. See Stablecoins and deposit tokens.

#Fees

Every on-chain action pays a Bitcoin miner fee from the vault that signs it, at the priority the operator chooses. Token transfers and mints also create a small 550-satoshi output that carries the token balance to its recipient. Simple token operations run inside the free T0 execution envelope; execution above it, subnet checkpoints and batch settlement are charged in XRB. See XRB and network economics.

Key takeaway

Bitcoin settles, SCL verifies, and SQRL coordinates. No layer has to be trusted for what the layer below it can prove.

Was this page helpful?