My Authors
Read all threads
Having a Pre-Signed Sweep Transaction has greatly increased my peace of mind hodling bitcoin.

Explanation 👇🏽
Lots of people who hold their own bitcoin keys use one or more hardware wallets, myself included - I have a multisig setup

This is a great start, but there’s always that lingering paranoia that some crazy natural disaster might wipe out a majority of my keys.
Geographically distributed multisig protects against this - but there’s still that possibility of getting extremely unlucky (natural disasters in multiple locations), or even being personally targeted if your locations get leaked.
Here’s where the Pre-Signed Sweep Transaction comes into play...

The idea is you create a transaction that spends all your funds to a separate address. For example it could be to your account on some custodial exchange with 2FA. Or it could be a family member’s cold storage.
But.. instead of broadcasting the signed transaction, you just save it somewhere. For example in your email or cloud storage (use 2FA!). You could also encrypt the transaction - depending on the security profile of your destination address (more on that later)
This recovery transaction is fairly safe to store. If an attacker obtained it, they can’t change the destination address - they can only broadcast it to the network- which sends the funds to the address you specified!
Now if some disaster destroys your cold keys, or if you’re attacked, you can quickly broadcast the recovery transaction to move all your funds!

Pretty neat.

But there are certainly some caveats - which I’m hoping people can comment on here...
First, you open up yourself to a new attack vector - if the attacker compromises your destination account, AND gets access to your sweep transaction, they could broadcast it (move funds to the exchange), then withdraw from the exchange to their own address
A way to protect against this is to see what settings your destinantion account has - ideally you’d want an account where withdrawals are frozen and require some type of time delay or identity conf

The security of this account will affect how carefully you store the recovery tx
For me the ideal destination account is a family member’s cold storage. Personally, I can trust that family member.

For some, that might not be an option, so a custodial exchange might be the way to go...
There are additional complexities you can add to the destination spending conditions - locktimes, multiple keys, etc, but I won’t go into further detail - (perhaps someone wants to elaborate in the comments)
Another caveat is this sweep transaction hurts your privacy if you’re forced to use it. You’d be consolidating all your funds to one address, possibly a KYC’d exchange...

But this only happens IF you use it, and the tradeoff of losing privacy likely outweighs losing funds
Another caveat is that the sweep transaction needs to be updated any time you spend from your cold wallet. If you spend any of the UTXOs in the sweep tx, it becomes invalid

It also should be updated when you receive. You want those new UTXOs to be included in the recovery...
... so any time you get a new deposit of significant amount, you’ll want to update your recovery transaction.

But these updates are less urgent, because deposits don’t invalidate the sweep transaction.
Another question is, what fee rate to give the recovery transaction? You don’t know what the network conditions will be if you’re forced to use it.

One solution is to create multiple transactions of various fee rates (maybe even RBF-signaled, so you can replace low fee ones!).
Anyway, that’s about it for now! I’ll add more if I think of the other caveats or scenarios.

What do you think? Is a Pre-Signed Sweep Transaction worth the tradeoffs?
Also for bitcoin newbies: this probably sounds really complex and difficult.

But in the future, I’m sure these types of protections will be built into wallets pretty seemlessly!

@moneyball and others at @sqcrypto have been brainstorming how to accomplish this effectively
And thanks to @moneyball and @TheBlueMatt for introducing me to the concept
Missing some Tweet in this thread? You can try to force a refresh.

Keep Current with Danny Diekroeger

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!