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>
33 lines
2.4 KiB
Markdown
33 lines
2.4 KiB
Markdown
# 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).
|
|
|