Phase 2 of the estate's one-tree roadmap found that a single ledger entry
now has two independent proof mechanisms over the same row: this spec's
canonical() (consumed by ClaimYour.Gold's day-commitment) and
flashynetwork.com's settlement/1 leaf. Checked whether to unify them onto
one hash and decided not to: the two pre-images already diverge (encoding
and timestamp precision), and flashynetwork's committed transparency log
holds 12,000+ leaves sealed under its own pre-image that changing this spec
to match would retroactively break. The two also answer different
questions (a day-batched set vs. a running per-entry log) for the same
reason Flashy Rails' own settlement log does not reuse this sorted-set
construction. No code changes here — this records that the alternative was
examined, not skipped, and names the cross-reference the two consuming
repositories ship instead.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cmdsrm66fKc3D9dNwqPL64
What this is
Phase 2 of the estate's one-tree-explorer roadmap found that a single Flashy Gold ledger entry has two independent proof mechanisms over the same row: this spec's
canonical()(consumed by ClaimYour.Gold's day-commitment) and flashynetwork.com'ssettlement/1leaf (a different, JSON-encoded, millisecond-precision pre-image over the same six fields).No code changes here. This PR documents, in
CLAUDE.md, the decision examined and rejected: unifying the two hash functions. Two independent divergences (pipe-joined vs. JSON, seconds vs. milliseconds precision) mean doing so would be a breaking migration — flashynetwork's transparency log already holds 12,000+ sealed leaves reproducible only from its current pre-image — applied one hop downstream of this spec's own append-once-sealing discipline. The two mechanisms also answer different questions by design (a day-batched sorted-set vs. a running per-entry log), the same reasoning Flashy Rails' own settlement log already applied to not reusing this sorted-set construction.The two consuming repositories (ClaimYour.Gold, flashy-network) ship a one-hop URL cross-reference instead, keyed by the id both already share — see their companion PRs.
Verification
Baseline and after (no code change):
npm run typecheckclean,npm run test— 28 test files / 295 tests passing, unchanged.Generated by Claude Code