Orgchain v1.1: lineage's keys, from the tree branch

Folds in the tree branch's key layer (2ea7884): lineage-keys.js and
handoff.js come over as written, with their spec vectors; the off-chain
keyring and the old UI stay behind, because v1's tree comes from the chain.

- Each holding gets its own 24-word lab root. Every node has lineage's
  keys at its place in the tree: BIP-85 org seeds, agents as accounts
  1..n of their org's seed, BIP-86 wallets and NIP-06 npubs.
- Every act is signed by whichever key holds the authorizing inscription;
  a birth hands the child its own; the lab wallet is the faucet.
- Graduation is a claim by the org's fresh root, countersigned by its
  derived key, and the derived subtree re-keys under the new root, so the
  parent's line can no longer sign for it. Adopted descendants keep theirs.
- Inspect shows each node's key path, npub, address and current holder,
  and which key signed each event; the act panel names the signing key.
- Labs saved before keys still load; their holdings sign with the lab
  wallet.
- 49 unit tests (6 new), Playwright 6/6 with key checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
This commit is contained in:
teahubxyzandClaude Opus 5.5 committed 2026-10-14 18:22:22 -07:00
1 parent 6acc319ee7
commit 744c5946aa
14 files changed
+467 -19

No files matched your search

+4 -1
View File
@@ -14,7 +14,10 @@
"dependencies": {
"@cmdcode/tapscript": "1.5.3",
"@noble/curves": "1.9.7",
"@noble/hashes": "1.8.0"
"@noble/hashes": "1.8.0",
"@scure/base": "1.2.6",
"@scure/bip32": "1.7.0",
"@scure/bip39": "1.6.0"
},
"devDependencies": {
"@playwright/test": "1.56.1",