{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "bitcoin-offline-signing",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/bitcoin-offline-signing/",
  "collection": "bitcoin",
  "title": "Offline Bitcoin signing: build, inspect, sign and broadcast",
  "description": "Follow an offline Bitcoin signing workflow and understand the limits of unsigned files, transfer media and broadcast confirmation.",
  "aliases": [
    "sign bitcoin offline",
    "sign bitcoin offline explained"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T19:29:20.637Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "Offline signing separates transaction preparation and broadcast from private-key authorization. An online wallet prepares an unsigned proposal, an offline signer checks and signs it, and an online node relays the signed result. PSBT is one standardized way to carry the required information. Offline status protects only part of the process: the proposed destination, fee and spending policy still need validation.",
    "claimId": "bitcoin-offline-signing-quick-answer",
    "sourceIds": [
      "x425-btc-electrum-cold",
      "x425-btc-bip174"
    ]
  },
  "keyFacts": [
    {
      "label": "Unsigned file",
      "value": "Can carry a proposal without spending authority",
      "sourceIds": [
        "x425-btc-bip174"
      ],
      "id": "unsigned-file",
      "claimId": "bitcoin-offline-signing-fact-unsigned-file"
    },
    {
      "label": "Signing",
      "value": "Requires the relevant keys and policy checks",
      "sourceIds": [
        "x425-btc-bip174"
      ],
      "id": "signing",
      "claimId": "bitcoin-offline-signing-fact-signing"
    },
    {
      "label": "Broadcast",
      "value": "Needs a network-connected relay after signing",
      "sourceIds": [
        "x425-btc-electrum-cold"
      ],
      "id": "broadcast",
      "claimId": "bitcoin-offline-signing-fact-broadcast"
    }
  ],
  "prerequisites": [
    "partially-signed-bitcoin-transactions",
    "watch-only-wallets"
  ],
  "sections": [
    {
      "id": "prepare",
      "heading": "Build a proposal using public wallet information",
      "sourceIds": [
        "x425-btc-electrum-cold",
        "x425-btc-bip174"
      ],
      "paragraphs": [
        "A watch-only wallet can identify candidate outputs and create a transaction to a recipient. It does not need private keys for that preparation. A PSBT can include previous-output and derivation information that an offline signer needs to interpret the spend.",
        "Keep the intended recipient information available through a trusted channel. The signer should not accept a host-provided destination because the rest of the file parses successfully."
      ]
    },
    {
      "id": "inspect",
      "heading": "Use a value check alongside destination review",
      "sourceIds": [
        "x425-btc-bip174",
        "x425-btc-dev-transactions"
      ],
      "paragraphs": [
        "Suppose the inputs total 120,000 satoshis, the recipient gets 70,000 and recognized change is 48,500. The remaining 1,500 is the fee. The signer must also establish that the apparent change belongs to the intended wallet; arithmetic alone cannot authenticate that output.",
        "BIP-174 defines signer checks for previous-output data and signing conditions. An offline device without trustworthy transaction context can still authorize an unintended payment."
      ]
    },
    {
      "id": "return",
      "heading": "Treat transfer and broadcast as separate steps",
      "sourceIds": [
        "x425-btc-electrum-cold",
        "x425-btc-bip174"
      ],
      "paragraphs": [
        "After signing, return the supported transaction file to the online side, finalize or extract it where required, then broadcast. USB, camera or removable-card transfer changes how data moves; it does not remove the need for authentic software and careful parsing.",
        "A signed file is not evidence of confirmation. Track the transaction after relay, preserving the recipient output and observed chain context."
      ]
    }
  ],
  "faq": [
    {
      "question": "Does an unsigned PSBT let someone steal the funds?",
      "answer": "An unsigned proposal is not itself a signature. It can still reveal wallet information or mislead an incautious signer, and some PSBTs already contain signatures or sensitive derivation data. Inspect what the particular file includes.",
      "sourceIds": [
        "x425-btc-bip174"
      ]
    },
    {
      "question": "Does offline signing mean I never need an internet connection?",
      "answer": "The signing device can remain offline, but a network participant must eventually relay the signed transaction and observe the chain. A separate online device commonly performs those jobs.",
      "sourceIds": [
        "x425-btc-electrum-cold"
      ]
    }
  ],
  "claims": [
    {
      "id": "bitcoin-offline-signing-quick-answer",
      "articleSlug": "bitcoin-offline-signing",
      "statement": "Offline signing separates transaction preparation and broadcast from private-key authorization. An online wallet prepares an unsigned proposal, an offline signer checks and signs it, and an online node relays the signed result. PSBT is one standardized way to carry the required information. Offline status protects only part of the process: the proposed destination, fee and spending policy still need validation.",
      "sourceIds": [
        "source-cf3812de54f14280",
        "source-5790dff0294c8035"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-cf3812de54f14280",
          "locator": "Create an offline wallet; Create a watching-only version of your wallet; Create an unsigned transaction; Get your transaction signed; Broadcast your transaction"
        },
        {
          "sourceId": "source-5790dff0294c8035",
          "locator": "Roles; Creator; Signer; Transaction Extractor"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "Educational explanation. Product-specific behavior is scoped to the cited documentation, checked 2026-10-02.",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked PSBT signer checks and extraction plus Electrum signing/broadcast transfer. Recomputed the1,500sat fee; the article correctly distinguishes unsigned/partially signed records from payment authority and does not treat QR or removable media as intrinsically safe."
        ]
      }
    },
    {
      "id": "bitcoin-offline-signing-fact-unsigned-file",
      "articleSlug": "bitcoin-offline-signing",
      "statement": "Unsigned file: Can carry a proposal without spending authority",
      "sourceIds": [
        "source-5790dff0294c8035"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-5790dff0294c8035",
          "locator": "Roles; Creator; Signer; Transaction Extractor"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked PSBT signer checks and extraction plus Electrum signing/broadcast transfer. Recomputed the1,500sat fee; the article correctly distinguishes unsigned/partially signed records from payment authority and does not treat QR or removable media as intrinsically safe."
        ]
      }
    },
    {
      "id": "bitcoin-offline-signing-fact-signing",
      "articleSlug": "bitcoin-offline-signing",
      "statement": "Signing: Requires the relevant keys and policy checks",
      "sourceIds": [
        "source-5790dff0294c8035"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-5790dff0294c8035",
          "locator": "Roles; Creator; Signer; Transaction Extractor"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked PSBT signer checks and extraction plus Electrum signing/broadcast transfer. Recomputed the1,500sat fee; the article correctly distinguishes unsigned/partially signed records from payment authority and does not treat QR or removable media as intrinsically safe."
        ]
      }
    },
    {
      "id": "bitcoin-offline-signing-fact-broadcast",
      "articleSlug": "bitcoin-offline-signing",
      "statement": "Broadcast: Needs a network-connected relay after signing",
      "sourceIds": [
        "source-cf3812de54f14280"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-cf3812de54f14280",
          "locator": "Create an offline wallet; Create a watching-only version of your wallet; Create an unsigned transaction; Get your transaction signed; Broadcast your transaction"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T19:29:20.637Z",
        "reviewer": "Independent automated verification — Codex /root/verify_ethereum_100, separate from the Bitcoin drafting agent",
        "notes": [
          "Checked PSBT signer checks and extraction plus Electrum signing/broadcast transfer. Recomputed the1,500sat fee; the article correctly distinguishes unsigned/partially signed records from payment authority and does not treat QR or removable media as intrinsically safe."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "x425-btc-electrum-cold",
      "label": "Cold Storage",
      "publisher": "Electrum",
      "url": "https://electrum.readthedocs.io/en/latest/coldstorage.html",
      "locator": "Create an offline wallet; Create a watching-only version of your wallet; Create an unsigned transaction; Get your transaction signed; Broadcast your transaction",
      "note": "Electrum offline signing workflow and separation of watch-only and signing devices.",
      "checkedAt": "2026-10-02T18:53:56.455Z",
      "contentSha256": "f2cbfc12c3786bf15734a1822ac509c5c3e3ae1763a84aac7a851e3892a65ff1",
      "recordId": "source-cf3812de54f14280",
      "version": null
    },
    {
      "id": "x425-btc-bip174",
      "label": "Partially Signed Bitcoin Transaction Format",
      "publisher": "Bitcoin Improvement Proposals",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0174.mediawiki",
      "locator": "Roles; Creator; Signer; Transaction Extractor",
      "note": "Offline signing workflow, UTXO information and separate signing/finalization/broadcast steps.",
      "version": "Pinned BIPs revision",
      "checkedAt": "2026-10-02T18:53:54.151Z",
      "contentSha256": "f2a8e1a9c9e31cc7f607b3c7e2419c63eeccc4bd5b725968cde54ab8cfa1d410",
      "recordId": "source-5790dff0294c8035"
    },
    {
      "id": "x425-btc-dev-transactions",
      "label": "Transactions",
      "publisher": "Bitcoin developer documentation",
      "url": "https://developer.bitcoin.org/devguide/transactions.html",
      "locator": "Introduction; Spending An Output; P2PKH Script Validation; Multisig; Transaction Fees And Change; Avoiding Key Reuse",
      "note": "Inputs, outputs, authorization, change, coinbase exceptions and fee accounting.",
      "version": "Developer guide; historical implementation details require qualification",
      "checkedAt": "2026-10-02T18:53:53.759Z",
      "contentSha256": "2f3fc474d51880e6c7fd4c25f747f8d8d8da49a493ab82af8ff4916fa490d6b8",
      "recordId": "source-b282fdecc069b74d"
    }
  ],
  "related": {
    "articles": [
      "partially-signed-bitcoin-transactions",
      "watch-only-wallets",
      "bitcoin-output-descriptors",
      "bitcoin-hot-wallet-vs-cold-wallet",
      "bitcoin-import-vs-sweep"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "First publication after primary-source research and separate automated verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Offline Bitcoin signing: build, inspect, sign and broadcast.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/bitcoin-offline-signing/"
}
