Skip to content

Notecase 0.21.0

Choose a tag to compare

@TheCryptoDonkey TheCryptoDonkey released this 15 Sep 13:46
· 25 commits to main since this release
e1b5e51
  • Move the protocol boundary from the archived unscoped package to
    @lnurlcash/kit 0.14. Notecase-owned recovery, payment-request, fee, key
    derivation and per-wallet transport policy remain local rather than being
    dropped or pushed into the reference wallet package.

  • Accept amount-bearing cs1 certificates throughout device storage and
    encrypted backup validation. Legacy raw mutation signatures remain valid;
    a reference mint running without a signer is retained and reconciled rather
    than losing the newly disclosed output.

  • Recovery uses secret-free hash lookup first. Raw-k1 fallback is a separate
    path used only after the holder explicitly allows secret disclosure.

  • Replace the obsolete proof-free /register compatibility path with the
    reference mint's signed POST/DELETE /p/{username} flow. Software wallets
    prove control with the branch's index-0 key and may publish their npub for
    NIP-05; Heartwood registration is refused until the device can make that
    proof, rather than treating a public cx1 as ownership.

  • Remember the public branch currently registered so a branch migration is
    signed by the old index-0 key, as the reference mint requires, before the
    replacement branch becomes current.

  • A linked heartwood's notes are now written down, note by note, every time
    this wallet lists the locker: the device's id, the amount, the mint host,
    the state, the label, and for a note paid to the device's own keys its
    index on the branch. The inventory rides along in notecase backup and
    comes back on a restore; an older backup that has none restores unchanged.

    The locker is a till, not a vault. A bearer note IS its secret, so the
    device keeps its notes out of every backup on purpose - a restored copy on
    a second board is a double-spend. What that leaves unsaid is that a board
    which dies takes its notes with it, unrecoverably, and until now its owner
    could not even say what was lost. Backing up the inventory rather than the
    secrets carries no new risk and makes the loss legible: nothing here spends
    anything, and nothing here comes back if the board is gone, but it names
    exactly what existed and is what you show a mint. Collect promptly and keep
    little on the device (heartwood-esp32#86).

  • heartwood notes no longer just fails when the device cannot be reached.
    It falls back to the last reading, dated and plainly marked as past, and
    says that these are the device's notes rather than this wallet's. Asking
    what is on a locker is not moving money, and a board that is asleep, off
    its relay or dead is exactly when the question gets asked. A device that
    answers is unchanged, and one that answers with fewer notes than last time
    replaces the reading rather than merging into it.

  • heartwood rename <id> <label> relabels a note the device holds, over the
    relay and on one hold. A label is what heartwood notes shows and the one
    thing that can be wrong without anything being lost, and until now it could
    only be corrected over the cable, which a WiFi-standalone board does not
    have. Needs firmware that serves heartwood_note_rename
    (heartwood-esp32#96); older firmware answers that the method is unknown.


Reproducible build: byte-identical output verified across two independent CI runners.

Artefact integrity

file:      forgesworn-notecase-0.21.0.tgz
size:      185249 bytes
sha256:    e0bb8bd4ab0374f076190f8625517ea0d5c319a9a72b16d81e03c58ff44ecce2
sha512-CPhOx9ZeoH7BW/dFlV6x1/mdi0Cc+2UyO586Z4Geav6PxBhtAz/oR9/KWatnBHtrrrCWoxZjC/y4+UNitwV5fQ==

Verify against the registry tarball:

curl -sLO https://registry.npmjs.org/@forgesworn/notecase/-/notecase-0.21.0.tgz
shasum -a 256 notecase-0.21.0.tgz