Files
teahubxyzandClaude Opus 5.5 2ea7884688 orgchain: the tree (lineage lab keys, act as any node, graduation by claim + countersign)
Start the tree: a fresh 24-word lab root and docs/lineage.md's drawing as keys. Orgs get BIP-85 seeds from their
parent (m/83696968'/39'/0'/24'/i'), wallets are BIP-86 m/86'/1'/account'/0/0, npubs are NIP-06; seats are accounts
1..n of their org's seed; indices are never reused. Act as any node to mine, inscribe or sign with its key.

Graduation retires a leaf org on a derived edge and adopts a fresh root in its place. The handoff is OpenOrdex's
buy-order direction: the recipient builds a 2-in/2-out transaction and signs its fee input first, so its signature
fixes where the inscription goes; the holder then countersigns the inscription input. Both are default signatures,
so chain.js is unchanged. The keyring and open claims save with the lab (optional fields, same storage key).

Tests: BIP-85, BIP-86 and NIP-06 spec vectors plus the handoff and its failure cases (36/36 unit).
tests/tree.spec.js rehearses a full graduation in Chromium at desktop and phone sizes, with layout checks;
tests/flow.spec.js now follows this branch's copy and theme, and waits for a mined block before reloading
(28/28 e2e).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:47:56 -07:00

2.4 KiB

Orgchain (branch orgchain)

Super Testnet restyled for lineage, served at https://lineage.yolopreneur.lol/orgchain/.

  • Same lab and chain as main, plus the tree (below). The rest of the difference is a skin and copy: src/lineage.css (loads after style.css and points its tokens at lineage's), a rehearsal guide and lineage branding in index.html, the lineage favicon, relative paths (vite.config.js base: './', the recursive preview, license links), the theme following the system setting under its own storage key, and Inscriboor downloads linking to supertestnet.lol (the extension only connects there, so the local test wallet is the path here).
  • Build: npm ci && npm run build, then copy dist/ to ventures/lineage/orgchain/ on teahubxyz/time gh-pages. Headers (CSP and the rest, matching supertestnet.lol's) come from ventures/lineage/_headers, scoped to /orgchain/*.
  • Keep in step with main: rebase this branch onto main, rebuild, recopy.

The tree (lineage lab keys)

  • src/adapters/lineage-keys.js: a 24-word lab root; each org's seed is BIP-85 from its parent (m/83696968'/39'/0'/24'/<index>'); each node's wallet is BIP-86 m/86'/1'/<account>'/0/0; its npub is NIP-06 m/44'/1237'/<account>'/0/0. Orgs use account 0; seats are accounts 1..n of their org's seed. Tested against the BIP-85, BIP-86 and NIP-06 spec vectors (tests/lineage.test.js).
  • Lab simplification: like every wallet in this lab, the derived key is used directly as the Taproot output key (no BIP-86 tweak), so addresses differ from a real BIP-86 wallet's.
  • src/adapters/keyring.js: the drawing in teahub docs/lineage.md as nodes. Indices are never reused. Graduation retires a leaf org on a derived edge and adds an adopted node with a fresh root.
  • src/adapters/handoff.js: the bound handoff (OpenOrdex's buy-order direction). The recipient builds a 2-in/2-out transaction and signs its fee input; the holder countersigns the inscription input. Both are default signatures, so chain.js is unchanged. Not yet: closing (burns), paid handoffs (a third output), open sell orders (SIGHASH_SINGLE|ANYONECANPAY would need the chain to accept 65-byte signatures).
  • src/tree.js is the panel. The keyring and open claims are saved with the lab (same storage key, optional fields).
  • Tests: npm test (unit) and npx playwright test (tests/tree.spec.js rehearses a full graduation; tests/flow.spec.js follows this branch's copy and theme).