Earlier today, dannybuntu published a post about the how Radar's implementation of Spark didn't allow users to exit to the chain - #1521368.
This has led to quite a bit of conversation here and on X about whether Spark allows unilateral exit.
Now Openoms (who I believe works at @blinkbtc) published a step by step guide demonstrating unilateral exit.
This is a write-up of an actual unilateral exit performed with this repo on 2026-07-08, recovering a real mainnet Spark wallet without relying on Spark operators for the exit itself. Everything below — transaction IDs, amounts, failures — happened on Bitcoin mainnet and is publicly verifiable on chain. It doubles as an honest account of what unilateral exit costs today, because the numbers surprised us.
It seems that there is some dispute about whether you can exit to the chain without the cooperation of the Spark operator:
Seed-only recovery is not possible once Spark operators are offline: current leaves cannot be discovered from the seed alone. The exit needs a recovery bundle — a JSON snapshot of the wallet's leaves and their ancestor transactions — refreshed while operators are still online
Needing the Spark operator to provide you with the recovery bundle does seem like a pretty bad single point of failure, however, it seems that as long as users are fairly vigilant about keeping their recovery bundle up to date, they can still achieve a unilateral exit. However, if this recovery bundle is not complete, you are entirely dependent on the operator.
Wallet software ought to be able to request updates to this recovery bundle with some frequency so that the user isn't ever reliant on the Spark operator for very long, but it certainly seems to confirm that the trade offs here are not the same as self-custody and lightning.
Honestly, it feels to me a little like rather than solving the most annoying liveness requirements of lightning, Spark is designed in such a way as to paper them over with some statechain gift wrap -- even though they still exist.
Here's Openoms' take aways from this exercise:
- A unilateral exit is a fire escape, not a door. 253 packages, one block per package per chain, two weeks of timelock, and fees that would have consumed 79% of the balance if applied indiscriminately — for a 100k-sat wallet. With economic triage, ~90% of the balance reached the destination. Self-custody on Spark is real, but the exit path is expensive and slow by construction; size expectations accordingly.
- Dust leaves are a liability. 18 of 22 leaves were not worth exiting at even 1 sat/vB. Wallets should consolidate leaves while operators are cooperative, and exit tooling must triage by economics rather than exit everything blindly.
- Bundle freshness and completeness are the whole game. Without a complete, recent recovery bundle there is nothing to exit. Refresh it on every balance change and verify its chains are closed.
- Respect TRUC. One unconfirmed parent+child pair per chain. Exit tooling must confirm-and-continue, tolerate
TRUC-violationandmissing-inputsas normal sequencing signals, and never treat a package batch as fire-and-forget.- Everything derives from the seed. Bundle refresh, fee funding, CPFP signing, and the final sweep all used the wallet's existing seed — no separate keys to back up, and the funding address is watch-only monitorable from an xpub.
Spark is NOT Bitcoin ! Is just a sidechain (managed by Marcus family mafia).
People should stop saying that with Spark they are using Bitcoin.
100%
Been waiting for someone to try this for ages. Kudos to OpenNoms. Confirms what I instinctively felt — more transparency needed on the points of failure, and more honesty ont be trade-offs.
Either: Lightspark actively funds and fosters a much healthier and well-distributed, neutral Spark operator base (lol yeah right)
Or: only ever keep a few sats in Spark wallets, like paper cash in a real wallet — you might lose it for real real.
Not exactly world-class scalable.
versus
So does everything derive from the seed, or doesn't it?
I wondered about that line. I understood him to be saying you need the seed to get the operator to give you your recovery bundle, but I think I may have misinterpreted it.
That's how I would translate it too, which means not everything derives from the seed, but that the seed is a single point of failure, and so is apparently the state chain operator.
But the fact that products were launched on this platform without the product owner knowing what's what shows how little due diligence goes into the development of many of these "Bitcoin" products. So it's not really surprising that these kinds of reports are inconsistent, low quality, and only serve a narrative rather than actually delivering the world class excellence that Bitcoiners deserve.
Post sounds like AI slop to me.
there is a fine line in the metaphorical sand, and @Scoresby definitely treads both sides.
why do you care though, @anon ?
Big fan of Openoms!!