← All apps
Bitcoin · On-chain notes

Chain Notes

Notes written to bitcoin

Personal notes written into real bitcoin transactions, composed and signed on a device with no network. A companion page broadcasts and rescans the chain.

View the code

Last updated Jul 2026

Submitted by Salvador Guerrero · GitHub · @SalvaG

Third-party submission. Not audited or verified by Foundation.

Passport Prime

Notebook, balance, sync

Overview

Chain Notes turns your bitcoin address history into a notebook. You write a note on the device, which stays offline on purpose, and the app builds and signs a bitcoin transaction that carries it. Private notes are sealed with authenticated encryption before they leave the device; public notes go on-chain as plain text. Notes can be directed to any taproot address, and a directed note can carry a chosen amount of sats to the recipient. Because everything lives on-chain, you can wipe the device, restore your seed, rescan, and every note comes back, private ones decrypted, with nothing stored anywhere else.

The device never touches the network. Sync bundles arrive by animated QR into the device camera, and signed transactions leave as a QR that the companion scans with a webcam, with files and the Airlock volume covering larger transfers. A hosted companion page is the only online half: it builds bundles from public chain data and broadcasts what the device signed, and it never sees a key. Everything written to the blockchain is public and permanent.

What it does

  • Notebooks, each a distinct address derived from one device seed, with its own notes, balance, and name.
  • Public or private notes: private ones sealed with authenticated encryption on-device, public ones plain text on-chain.
  • Directed notes reach any taproot address, readable only by the two devices involved and recoverable from bare chain data.
  • Directed notes can carry a chosen amount of sats, from dust upward.
  • Live per-keystroke cost with economy, normal, fast, or custom fee tiers, byte-exact against the signed transaction.
  • Wallet-wide Coins screen with one-tap consolidate and a guided full-wallet sweep, each a single on-device signed transaction.
  • Mainnet, testnet4, signet, and regtest as one wallet-wide setting, each notebook keeping a separate ledger per chain.

Technical breakdown

How the proof-of-concept is built, for developers evaluating the platform.

01

Air-gapped transport

The device stays offline by design. Sync bundles come in as animated QR read by the device camera, and signed transactions go out as a QR the companion scans with a webcam. Files and the Airlock volume handle the larger transfers, so the device and the companion exchange only files and QR codes, never keys.

02

Recovery from chain

Notebooks derive from a 24-word recovery phrase the device shows on demand, as words or a SeedQR. The phrase restores funds in any bitcoin wallet and notes in this app, with no Passport required. Separate accounts keep separate lives, and a fresh phrase can replace one that is ever exposed.

03

Keys and encryption

Private notes are sealed with modern authenticated encryption before leaving the device. A Settings Dangerous area groups exports by risk: public (account xpub and a tr() descriptor, watch-only) and private (recovery words and a notebook key), each scannable as a QR. The device never shows a whole-account private key, since the 24 words already restore everything.

Dig into the source

README, architecture notes, and the wire protocol live in the repo.

ObjSal/prime-chain-notes

Browse by category