Understanding Presigned Bitcoin Transactions

What is a Presigned Bitcoin Transaction?

A presigned Bitcoin transaction is a fully formed transaction that has been signed by the sender but has not yet been broadcast to the Bitcoin network. Think of it like a signed check that you keep in your drawer instead of immediately giving it to someone. The funds are committed, and the transaction is valid, but it only takes effect once it's released into the network.

How Does It Look?

A raw, signed Bitcoin transaction is a long string of hexadecimal characters. This string contains all the information needed to execute the transaction: the sender's address (inputs), the recipient's address (outputs), the amount, and the digital signature that proves ownership of the funds. Here’s a simplified example of what it might look like:

02000000000101b110155b1b9f13f887127a7c8b2f9a784ca0181efd70f73e5de2b2e45d49807f0100000017160014e6fa27edac0471f43f408377b3a5bd0bd5c0fb8efdffffff03102700000000000017a91412b59e2a7a5c5a17c1cade66d299668f3c43e08387e02e0000000000001976a914ef596990496fef9a45ce0af7514ea599169dcd6788aca67b8c060000000017a914da6f35de0ae98385fb999b7268550e02963fa946870247304402205af9c4954c5dfb5a44aab9842d99948010b37bb004acbda31fbd8c9bf8bd61fd0220446b1842a984f73ebec7042cdaa115b7bb54b4b12e24ed7252707305c99f3525012103a51e150c20885d476d4d95b9adee7d08a0ec65520314d8e95474582a3ec6fc5a00000000

The Concept: Sign Now, Broadcast Later

The key idea is the separation between signing and broadcasting. By signing a transaction, you authorize the movement of your bitcoin. However, you can hold onto this signed transaction and decide when (or if) to broadcast it. This is the core of what services like GARD.PW can utilize. It allows for creating conditional or time-delayed payments, acting as a form of a digital dead man's switch or a programmable trust mechanism.

How to create a presigned transaction offline

In practice you will use two environments: an offline signer that holds your private keys, and an online, watching-only wallet. You build an unsigned transaction (or a PSBT) on the online machine, move it to the offline machine to sign, then bring the signed result back online to broadcast. The signed file or raw hex you keep is your presigned transaction.

Electrum (desktop)

  1. On an offline computer, install Electrum and create a new wallet. Keep this machine offline permanently and back up the seed.
  2. Export a watching-only wallet to your online computer (Wallet → Information → copy the Master Public Key, or File → Save Copy → “Watching-only”).
  3. On the online computer, open the watching-only wallet, build the payment (Send tab → Preview), then Save/Export the unsigned transaction/PSBT to a file.
  4. Move the file to the offline computer. In Electrum: Tools → Load transaction → From file → Sign → save the signed transaction (you can also copy the raw hex).
  5. Bring the signed transaction back to your Gard Server.

Docs: Electrum: Cold Storage · Electrum: Command line flow

Sparrow Wallet

  1. Create an offline wallet on an air‑gapped machine and a matching watching‑only wallet on an online machine (import xpubs/descriptors).
  2. On the online wallet, build the payment and click Create/Save PSBT.
  3. Transfer the .psbt file to the offline machine; open it in Sparrow and Sign.
  4. Export the finalized transaction (or signed PSBT), transfer back a copy of the transaction, and back to your Gard Server.

Docs: Sparrow: Quick Start · Air‑gapped signing via PSBT

Bitcoin Core (PSBT)

  1. Online: create a PSBT using walletcreatefundedpsbt.
  2. Offline: sign the PSBT with walletprocesspsbt (set sign=true).
  3. Return online and finalizepsbt to extract the transaction hex, then insert into to your Gard Server along with the addersses it watches for

Docs: walletcreatefundedpsbt · walletprocesspsbt · finalizepsbt

Safety tips