Skip to main content
Sunbeam is Sundial’s beaming product. It moves a Bitcoin-native asset off Bitcoin and onto a destination chain, with a proof carrying the authorization in place of a custodian. It is built on Charms, and it is the only route in the Sundial stack that takes assets off Bitcoin.
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 an app → 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.
Finality proofs are specific to the source chain. From Bitcoin it is a proof-of-work proof. From Cardano it is a signed attestation.

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.
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 in charms-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.