2026-10-04 23:03:47 +00:00
|
|
|
# AGENTS.md
|
|
|
|
|
|
2026-10-14 17:28:33 -07:00
|
|
|
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.
|
2026-10-14 18:22:22 -07:00
|
|
|
- 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.
|
2026-10-14 19:49:05 -07:00
|
|
|
- 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 (salt `lineage/v0`) and must stay byte for byte with lineage's key tree page;
|
|
|
|
|
`tests/keys.test.js` holds values read off that page.
|
2026-10-14 17:28:33 -07:00
|
|
|
- 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`.
|