Sunbeam is on testnet. See Status and security.
What a charm is
A charm is a programmable asset attached to a Bitcoin UTXO. Structurally it is an entry in anapp → data mapping on that UTXO. Several charms can sit on one UTXO, and each has an app contract that defines how it is minted, burned and transferred.
Every Charms transaction carries a spell: metadata in an OP_RETURN output, encoded as a (NormalizedSpell, Proof) pair. The proof is a Groth16 zk-SNARK that the app contract was satisfied. Anyone can verify it.
How beaming works
A beam is a pair of spells: a send on the source chain and a receive on the destination chain.1
Prepare a destination
You create a small placeholder output on the destination chain. This is the exact output the beamed asset will land in.
2
Send on Bitcoin
You broadcast a Bitcoin transaction that destroys the charm and commits to the placeholder:The commitment doesn’t name an address. It names one output you control on the other chain, plus a nonce you keep. The cross-chain intent is recorded in a confirmed Bitcoin transaction.
3
Prove finality
Once the Bitcoin transaction has enough confirmations, a finality proof is assembled: a Merkle proof that the transaction is in a block, plus the block headers that follow it.
4
Receive on the destination
The Charms prover takes the finality proof and produces the receive transaction, which spends the placeholder and re-creates the asset there. The prover refuses unless the placeholder and nonce hash to the commitment and the source transaction is proven final.
Two verification paths
The receive transaction is authorized on the settlement L1 in one of two ways. A beacon token in the transaction’s reference inputs selects which.- V1: Scrolls (signed)
- V2: Groth16 (proof-verified)
A threshold-signing canister on the Internet Computer re-verifies the proof from the raw transaction and signs it. The L1 validator checks that signature.Trust: the signing canister. This is the path that runs on testnet today.
The L1 validators
Four Plutus V3 scripts handle the destination side on Cardano. The code is incharms-cardano.
These validators have been independently reviewed, and all findings are resolved. See Status and security.
The first Sunbeam app
The first Sunbeam tBTC app is service-mediated: the app contract controls who can change supply, and the bridging service checks the BTC backing before minting. Proof-verified backing is planned.Where it leads
- BTC beamed by Sunbeam lands on the Sundial L2.
- Alchemy is built on Sunbeam and Charms.