Governance
Protocol Governance
Topaz has two governance contracts and a small set of admin roles. This page maps out who can change what, how proposals work, and what the upper bounds of governance authority are.
What governance can and can't do
The protocol itself — the AMM math, the lock mechanics, the emission schedule — is immutable once deployed. Governance does not upgrade core contracts. What governance can change is bounded by what each parameter setter explicitly allows:
- ✓Tail emission rate (±0.01 percentage points per epoch via EpochGovernor, within 0.01%–1% bounds).
- ✓Team rate — TOPAZ allocation to the team address (0%–5% of emissions).
- ✓maxVotingNum — maximum gauges per veNFT vote (default 30).
- ✓Token whitelist — which tokens are eligible as incentive (bribe) rewards.
- ✓Managed NFT whitelist — which addresses can mint managed veNFTs.
- ✓Factory registry approvals — which pool / gauge / rewards factories are valid for new gauge creation.
ProtocolGovernor
Topaz's top-level governance contract is a lightly modified OpenZeppelin Governor. Key properties:
| Parameter | Value | Description |
|---|---|---|
| Voting power | veTOPAZ balance | Per-NFT, timestamp-based snapshots (EIP-6372 timestamp mode). |
| Quorum | Governance-set | Subject to standard Governor quorum logic. |
| Veto | Yes | A vetoer role can cancel proposals as a 51% attack mitigation. Designed for emergency use, not routine. |
| Proposal hash | Includes proposer address | Prevents griefing via frontrun of identical proposals. |
| Relay | Disabled | Governor cannot make arbitrary cross-contract calls outside its specified targets. |
Proposals follow the standard Governor lifecycle: propose → delay → vote → queue → execute. Vote weight is captured at the proposal's snapshot timestamp, so locking after a proposal starts does not retroactively earn votes on that proposal.
EpochGovernor — the tail-rate nudge
A second, simpler Governor exists for one specific purpose: adjusting the tail emission rate by exactly one basis point per epoch. Once tail emissions activate, EpochGovernor lets voters choose each week whether to nudge the rate up, down, or hold.
- ✓One proposal per epoch — the protocol guarantees uniqueness via the epochStart-derived proposal hash.
- ✓Three options (up / down / hold), plurality wins. No quorum, no proposal threshold.
- ✓Effect bounded: NUDGE = 1 basis point per call (i.e. 0.01 percentage points).
- ✓Bounds enforced at the Minter: rate stays in 0.01% – 1% per epoch.
- ✓Proposals created in epoch n are executed in epoch n+1 after the voting period closes.
- ✓The very first nudge proposal must be initiated in the epoch before tail emissions activate.
Admin role map
A handful of permissioned roles exist on top of governance. They're held by multisigs or governance-controlled contracts. The full role list is on-chain and visible on the contracts page.
| Role | Powers |
|---|---|
| Team multisig | Receives the team-rate share of emissions. Holds the protocol's foundation veTOPAZ. Governance can set the team rate to 0. |
| Emergency Council | Can kill / revive gauges, deactivate managed NFTs, and toggle the split function. Cannot mint, change emission rate, or move user funds. |
| Fee Manager | Sets per-pool swap fees (within hard caps), enables dynamic fees, configures unstaked-position fees, and manages aggregator discounts. |
| Pauser | Can pause individual pools (block swaps) for incident response. Cannot drain or modify balances. |
| Vetoer | Can cancel a ProtocolGovernor proposal as a 51%-attack guardrail. |
Proposal lifecycle in practice
- ✓Drafting: discussed openly in Telegram / GitHub before going on-chain. Aim for community consensus before submitting.
- ✓On-chain proposal: anyone meeting the proposal threshold can submit via ProtocolGovernor.propose().
- ✓Voting period: starts after the proposal delay, runs for a fixed window. Vote by NFT, not by address — large veTOPAZ NFTs cast a single vote with their entire weight.
- ✓Queue & execute: if passing, proposal queues into the timelock (if present) and becomes executable.
- ✓Veto: if the proposal is found to be malicious or buggy during the window, the vetoer can cancel.
