01
Trust boundary
Trust boundary: treasury balances and flows are not gameplay balances. They require public events, multisig controls, and delayed routing where possible.
- Gameplay mutation remains in USK/Postgres unless explicitly settled.
- On-chain state is used for ownership, receipts, governance execution, or proof.
- Public copy must describe the boundary honestly, including what is not decentralized yet.
02
Contract surfaces
Contract surfaces: `TreasuryRouter`, `WardenseedTreasuryGovernor`, `WardenseedTimelock`, marketplace royalty/fee routing.
- Every surface should emit enough events for analytics and incident reconstruction.
- Privileged functions should be role-gated, timelocked, or emergency-scoped depending on blast radius.
- Batch, nonce, and root identifiers must remain replay-resistant across upgrades.
03
Operational assumptions
Operational assumption: no huge opaque dev wallet. Allocation, vesting, and routing policy should be documented before mainnet-scale launch.
- Failure modes must degrade visibly rather than pretending the world is healthy.
- Security posture takes priority over feature velocity when settlement or treasury risk is involved.
- Docs, tests, and live proof widgets should evolve together with contract changes.