Files
orgchain/AGENTS.md
T
teahubxyzandClaude Opus 5.5 00a35613c5 Orgchain v1.2: tapkeys and lineage's leaves
A node's chain key is now its tapkey: its NIP-06 npub with the BIP-86
tweak, so one secret signs its nostr events and its chain spends, and
its address follows from its npub. Its leaves hang off the same tree,
byte for byte as on lineage's key tree page: an agent's ssh, git, dkim
and wg keys from its nostr secret, an org's ssh-ca, mtls and noise keys
from its seed. Inspect shows the tapkey, npub, derivation and leaves,
with the public lines to paste. Labs keyed by v1.1 keep their separate
m/86' chain keys until they are reset.

PROVENANCE.md and public/licenses now carry @scure/base, bip32 and
bip39, which came in with v1.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4upF5LVwmPDDqrhdUfnXh
2026-10-14 19:11:08 -07:00

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 tapkey: its npub with the BIP-86 tweak. 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.
  • 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.