Skip to content

Governance

OddsZero has a lightweight DAO governance layer plus an admin fast-path. All global protocol parameters live in the Governance shared object.

Parameters

ParamIndexDefaultBound
protocol_fee_bps075 (0.75%) — fixedonly 75 accepted
max_creator_fee_bps1300 (3.00%)≤ 1000
dispute_window_ms2172,800,000 (48h)1h – 30d
dispute_bond_bps3100 (1.00%)≤ 1000
min_resolution_delay_ms43,600,000 (1h)any
referrals_enabled5truebool (deprecated / unused)
referral_fee_bps650 (0.50%)≤ 500 (deprecated / unused)
proposal_quorum_bps71000 (10%)≤ 10000
proposal_threshold_bps85000 (50%)≤ 10000
closing_only_window_ms93,600,000 (1h)≤ 30d
maker_rebate_bps102500 (25%)≤ 10000
price_closing_only_window_ms1160,000 (1 min)≤ 30d
max_settlement_delay_ms1260,000 (1 min)≤ 30d

Note: protocol_fee_bps and creator_fee_bps (the latter is not a governance param; it is set by the constant FIXED_CREATOR_FEE_BPS = 25) are immutable. The governance setter for protocol_fee_bps only accepts 75. The referrals_enabled / referral_fee_bps fields 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

  1. Admin mints GovernanceShare objects to voters via mint_gov_shares (voting power only exists once shares are minted; the DAO path stays inert until then).
  2. A voter with a GovernanceShare calls propose(param, value, deadline) to open a Proposal.
  3. Voters call vote(proposal_id, support, share, weight, ...). Voting weight must not exceed the held share's amount and the gov_share_supply — this fixes a prior bug where vote accepted arbitrary weight from anyone.
  4. After the deadline, execute_proposal applies the change only if:
    • total_votes · 10000 ≥ proposal_quorum_bps · gov_share_supply (quorum met), and
    • yes_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 }

Last updated:

OddsZero — Fully on-chain prediction markets on Sui.