Interactive explainer

You got paid in Bitcoin. The Bitcoin never moved.

On Spark, the coins sit in the exact same on-chain address before your payment and after it. What changed hands was something else entirely — and whether that still counts as "your bitcoin" is the real question underneath this page.

↓ Scroll. Everything below is interactive.
01 — THE IDEA

What actually moves when you send bitcoin?

Two people just completed a Bitcoin payment. Zero new lines appeared on the blockchain. How?

A normal on-chain payment spends a UTXO — an unspent transaction output — and creates a new one at a new address. That public rewrite is what "moving" bitcoin means: a permanent ledger entry, mined into a block.

Spark, built by Lightspark, does something stranger. The UTXO stays parked at the same address, locked in a shared arrangement between you and a set of Spark Operators. What moves is signing rights — who is allowed to help authorize spending it next. Try it below.

A DEPOSITED UTXO (illustrative, not a real transaction)
Current signing right
You
On-chain transactions so far
0
Off-chain transfers so far
0

The bitcoin never noticed it changed hands. Only the signing right did — instantly, with no fee, and no new block required. That single design choice is the seed for everything else on this page, including why some people don't think it should count as fully "yours."

02 — THE LOCK

If someone else co-holds the key, what stops them taking it?

You need a Spark Operator's signature to spend. What stops the operator from just refusing to give it back?

Your deposit sits in a shared lock: your key plus the operators' key, both required to spend. Before you ever hand over a single satoshi, you receive a pre-signed, timelocked exit transaction — a transaction only you can broadcast, that lets you reclaim the coins straight to Bitcoin L1 once a set number of blocks has passed, with nobody's permission.

Here's the clever part. Every time the coins change off-chain hands, the new owner's exit transaction is given a shorter timelock than the one before it. That strict ordering — newest owner, shortest fuse — is what stops an earlier owner from racing back in after they've already been paid.

EXIT-TRANSACTION LADDER — shortest fuse wins
Simulated blocks since deposit
0
Exits currently broadcastable
0 / 1

Each new owner's timelock is the previous owner's minus a fixed step. Advance the simulated block height and watch: the most recent owner's exit clears first, every time — an old owner's competing broadcast can never get there before them.

03 — THE OPERATORS

"The operator" isn't one company holding one key

If a single operator held the co-signing key outright, they could freeze you out on a whim. So who actually holds it?

Nobody, entirely. The operator side is a Spark Entity made of multiple independent Signing Operators, who jointly hold their share of the key using FROST threshold signatures — no single operator ever possesses the complete key. Today there are two named operators, Lightspark and Flashnet, with more planned across different jurisdictions.

The intuition behind "threshold" is worth building for real. Below is a simplified secret-sharing demo — not the actual FROST math Spark runs, but the same underlying idea: split a secret across several shares so that fewer than a threshold number reveal nothing usable, while the threshold reconstructs it exactly.

Total shareholders (n)4
Threshold to reconstruct (t)3
SHARES REVEALED — click to toggle
Shares revealed
0
Reconstruction

That's the shape of it: cross the threshold and the secret falls out exactly. Stay under it and the math produces nothing meaningful — any secret at all remains equally consistent with what you can see. Spark's real construction (FROST over Schnorr signatures on secp256k1) is more involved, but the trust property is the same one this demo is built to make intuitive.

04 — THE PAYOFF

Nothing touches the chain. So how fast is a payment?

A single deposited UTXO — can it actually be split into rent money, coffee money, and everything else, without ten separate on-chain transactions?

Yes. Spark deposits form a leaf — a tree of value that can be split, merged, and sent off-chain in arbitrary amounts, unlike the original statechain design, which was stuck moving one fixed-size chunk at a time. Send a piece below and watch it settle.

YOUR SPARK BALANCE, AS LEAVES
Total balance
On-chain transactions used
0
Off-chain sends so far
0

Compare that against the alternatives. An on-chain confirmation takes roughly ten minutes for one block, sometimes longer under load. A routed Lightning payment is fast, but needs a live, liquid path across however many hops sit between you and the recipient. A Spark transfer needs neither: it's a signing round-trip with the operator set, and the timer above is measuring that round-trip on your own device.

05 — SCALE

If transfers are free, where does anyone pay anything?

Zero-fee sounds like a headline that can't be true forever. Where's the catch?

At the edges. Moving bitcoin into or out of Spark touches the real blockchain, so it pays a real miner fee. Bridging between a Spark balance and the Lightning Network routes through a Spark Service Provider, which charges a service fee on top, because it's doing real work stitching two systems together.

ROUTE
Estimated fee
Effective rate
You'd have after

Internal transfers are always free. On-chain legs (deposit, exit) cost a flat fee driven by transaction size, not amount — that's why the effective rate collapses as the amount grows. Lightning-bridge percentages are illustrative and change; confirm current rates before relying on them.

06 — WHAT PEOPLE ARGUED ABOUT

Is it still "self-custodial" if a company has to co-sign?

A popular no-ID wallet had left the U.S. specifically over custody rules. Then it announced a return, built on Spark. What happened next?

Wallet of Satoshi's announced U.S. return, rebuilt on Spark, set off a genuine public argument about what "self-custodial" should mean. Because every Spark transfer needs operator co-signing, critics pushed back on calling it fully noncustodial — Bitcoin Magazine framed it as landing in a middle category some started calling "trustodial," neither fully custodial nor fully trustless, and argued that category deserves its own scrutiny rather than borrowing the reassurance of either label.

A later independent review raised sharper specifics: that forward security depends on operators actually deleting old key material, a deletion nobody outside the operator can verify happened, and that the documented steps for an independent exit are more involved than a single-click broadcast. None of this means Spark is unsafe — it means the trust boundary is real and worth naming precisely, which is exactly what Spark's own team has said too.

SetupWho must cooperate to move your coinsTrust posture
Plain on-chain UTXOOnly youTrustless
Open Lightning channelOnly you (channel is on-chain enforced)Trustless
Spark balanceYou + a threshold of Spark Operators, per transferTime-bound trust
Custodial exchange balanceThe exchange, entirely, at any timeFull trust

Lightspark itself has been explicit on this point: the protocol is not fully trustless "on day one." The interesting question isn't whether that's true — it plainly is — but how the risk is bounded, which is what the next section works through.

07 — THE HONEST RISK

What's the actual worst case?

If the operators misbehave, do you lose the money — or something less bad?

Reviewers on both sides of this debate converge on the same worst-realistic-case: not theft, but unavailability. If every operator vanished tonight, you couldn't make new Spark transfers — but you'd still hold pre-signed exit transactions, broadcastable to Bitcoin L1 without anyone's permission. Self-custody here is the escape hatch, not the default operating mode.

Theft is the harder condition: it needs operators to still be holding old key shares — breaking the deletion promise — and to actively cooperate on signing a conflicting spend before you exit. Lightspark quantifies exactly how much cooperation that takes with a formula worth trying yourself.

Total operators (n)2
Signing threshold (t)2
Min. honest operators needed
As a share of all operators

That minimum-honest fraction is (n − t) + 1, and it's always a minority of the total set — the whole point of threshold signing is that you never need everyone honest, just enough of them. Today, with n = 2, that minority is thin by construction. Two more things worth knowing before you treat any Spark balance as "just like holding your own keys": Flashnet's own terms reserve the right to freeze funds for compliance reasons, which is a policy risk distinct from a cryptographic one, and Lightspark has stated more operators across more jurisdictions are planned, not yet live.

08 — CHECK YOURSELF

Five things people get wrong

SCORE
0 / 5
Answer all five to see how you did.
09 — WHAT TO DO

Don't trust. Verify.

The coins don't move; the signing rights do. That's the entire mechanism. It's also why "self-custodial" needs a footnote here that it doesn't need for a plain on-chain UTXO.

Your exit is pre-signed before you ever deposit. Know how to use it. It's your only recourse if the operator set disappears or turns hostile, and it's slower and more manual than the FAQ summary suggests.

"Self-custodial" is doing real work in the marketing. Time-bound trust in a small, named operator set is a legitimate tradeoff for speed and cost — just not the same guarantee as a key only you have ever touched.

Read the fee schedule before you bridge. Internal transfers are genuinely free. Crossing the edge — on-chain, or through Lightning — is where real costs live, and those rates move. Confirm current numbers directly.