Every account now lists standard Bitcoin addresses, so no one has to derive them: Taproot (BIP-86, m/86'/1'/account'/0/0), which holds the node's inscription, signs its acts and receives inscriptions, and SegWit (BIP-84, m/84'/1'/account'/0/0) for payments, beside its npub (NIP-06). An org is account 0 of its seed and its agents are accounts 1..n, so a wallet that opens an account finds the same addresses. The lineage key tree page derives the same branches on mainnet paths and lists the addresses in each agent's keyring. The v1.2 tapkey (the npub's key, tweaked) is replaced by the standard BIP-86 key; labs keyed by v1.1 or v1.2 keep their chain keys until they are reset. Tests pin BIP-86 and BIP-84's own vectors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
1.3 KiB
1.3 KiB
AGENTS.md
Orgchain is lineage's app for creating and operating lineage holdings on Super Testnet's toy chain.
- Test-only, always: no mainnet funds, no hidden signing, no custody, and nothing presented as a real key.
- Lineage semantics live in one place,
src/orgchain/lineage.js. The UI never interprets events itself, and every act is vetted by that reducer before it is signed. A new op means a reducer change, its tests and the README's table. - The engine (
src/adapters,src/upstream,src/storage.js,src/miner.js) is Super Testnet's. Compose with it rather than rewriting it, and keep its tests passing. Preserve upstream licenses and provenance. - Keys follow the tree (
src/orgchain/keys.js): store roots only (one per holding, one per graduated org) and derive every other key from its position. Every act is signed by whichever key holds the authorizing inscription. - A node's chain key is its account's BIP-86 Taproot key (
m/86'/1'/account'/0/0); SegWit is BIP-84 at the same account. Leaves are HKDF-SHA256 (saltlineage/v0) and must stay byte for byte with lineage's key tree page;tests/keys.test.jsholds values read off that page. - The page makes no network requests; keep it that way (the deployed CSP sets
connect-src 'none'). - Before shipping:
npm test,npm run build,npm run test:e2e.