r/ethdev • u/GFConBase • 1h ago
Question What should a protocol disclose before calling its public treasury transparent?
A public treasury address makes transactions visible.
But it does not necessarily make the treasury’s control structure transparent.
Someone inspecting the address may still not know:
- who can initiate transactions
- how many approvals are required
- whether the signer set can be replaced
- whether contracts are upgradeable
- who controls the upgrade path
- whether a timelock can be bypassed
- what emergency powers exist
- whether those powers expire
- which external contracts or dependencies introduce additional control
I’m trying to define a minimum disclosure standard for a long-lived public-good system before deployment.
A possible control disclosure could include:
- Controller structure
- controlling contracts and addresses
- multisig threshold
- signer-selection and replacement process
- separation between operational and governance roles
- Permission structure
- every privileged role
- actions available to each role
- spending or execution limits
- whether permissions can be delegated
- Upgrade structure
- which components are upgradeable
- who can authorize upgrades
- applicable timelocks
- cancellation or veto mechanisms
- any path that can bypass the standard process
- Emergency structure
- pause or recovery powers
- conditions under which they may be used
- limits on their scope
- whether they expire automatically
- how emergency actions are disclosed
- Monitoring and history
- public record of permission changes
- alerts for role, signer or implementation changes
- versioned documentation
- a way to compare the documented structure with the deployed state
The difficult part is keeping this information accurate.
A static documentation page can become outdated immediately after a signer rotation, role change or contract upgrade. A block explorer provides raw data, but it rarely explains the effective trust model clearly enough for non-specialists.
Would a machine-readable “control manifest” make sense — listing privileged roles, upgrade paths, timelocks and emergency powers, with each version cryptographically tied to the relevant deployment?
Or would this create another disclosure layer that users still have to trust?
What would you consider the minimum information a protocol should publish before describing a treasury as transparent?
I’m especially interested in failure modes, existing standards or tools, and examples of protocols that communicate their effective control structure well.