Governance
OddsZero has a lightweight DAO governance layer plus an admin fast-path. All global protocol parameters live in the Governance shared object.
Parameters
| Param | Index | Default | Bound |
|---|---|---|---|
protocol_fee_bps | 0 | 75 (0.75%) — fixed | only 75 accepted |
max_creator_fee_bps | 1 | 300 (3.00%) | ≤ 1000 |
dispute_window_ms | 2 | 172,800,000 (48h) | 1h – 30d |
dispute_bond_bps | 3 | 100 (1.00%) | ≤ 1000 |
min_resolution_delay_ms | 4 | 3,600,000 (1h) | any |
referrals_enabled | 5 | true | bool (deprecated / unused) |
referral_fee_bps | 6 | 50 (0.50%) | ≤ 500 (deprecated / unused) |
proposal_quorum_bps | 7 | 1000 (10%) | ≤ 10000 |
proposal_threshold_bps | 8 | 5000 (50%) | ≤ 10000 |
closing_only_window_ms | 9 | 3,600,000 (1h) | ≤ 30d |
maker_rebate_bps | 10 | 2500 (25%) | ≤ 10000 |
price_closing_only_window_ms | 11 | 60,000 (1 min) | ≤ 30d |
max_settlement_delay_ms | 12 | 60,000 (1 min) | ≤ 30d |
Note:
protocol_fee_bpsandcreator_fee_bps(the latter is not a governance param; it is set by the constantFIXED_CREATOR_FEE_BPS = 25) are immutable. The governance setter forprotocol_fee_bpsonly accepts75. Thereferrals_enabled/referral_fee_bpsfields are retained for backward compatibility but are unused — referral fees have been removed.
Admin fast-path (set_param)
The admin (holder of AdminCap and the registered admin address) may change any single parameter immediately via set_param. Possession of AdminCap alone is not sufficient — assert_admin checks the registered admin address. Out-of-range values are rejected.
DAO proposal path
- Admin mints
GovernanceShareobjects to voters viamint_gov_shares(voting power only exists once shares are minted; the DAO path stays inert until then). - A voter with a
GovernanceSharecallspropose(param, value, deadline)to open aProposal. - Voters call
vote(proposal_id, support, share, weight, ...). Voting weight must not exceed the held share'samountand thegov_share_supply— this fixes a prior bug wherevoteaccepted arbitrary weight from anyone. - After the deadline,
execute_proposalapplies the change only if:total_votes · 10000 ≥ proposal_quorum_bps · gov_share_supply(quorum met), andyes_votes · 10000 ≥ proposal_threshold_bps · total_votes(majority met).
Snapshot semantics
Markets snapshot protocol_fee_bps, dispute_window_ms, dispute_bond_bps, and maker_rebate_bps at creation. The protocol fee is fixed at 75 and the creator fee at 25 (both immutable), so those are effectively constant across all markets. Changing an adjustable global parameter therefore only affects markets created afterward — existing markets keep their terms.
Oracle & admin management (admin module)
add_oracle/remove_oracle— only admin.set_admin— transfers admin to a new address (only current admin).is_oracle,is_admin,oracle_count— view helpers.
Events
ParamsUpdated { admin, protocol_fee_bps, dispute_window_ms, dispute_bond_bps }
