Governance
Offshore Cash is governed by OFF token holders through an on-chain governance system. All protocol upgrades and parameter changes go through a transparent proposal process.
Proposal Lifecycle
Create → Voting (3 days) → Timelock (2 days) → Execute- Create — Any address with ≥ 50,000 OFF voting power can submit a proposal
- Voting — Stakers vote For, Against, or Abstain over a ~3-day voting period (21,600 blocks)
- Timelock — Passed proposals enter a 2-day timelock before execution
- Execute — After the timelock, anyone can trigger execution
Quorum
A proposal requires 5% quorum (5M OFF of the 100M total supply) in participating votes to be valid.
Guardian
A protocol Guardian has the ability to cancel any proposal at any stage. This is a safety mechanism to protect against malicious governance attacks. The Guardian role itself is subject to governance and can be reassigned via proposal.
What Governance Controls
| Area | Examples |
|---|---|
| Proxy Upgrades | Upgrade MainPool, Relayer Registry, and other core contracts |
| Fee Configuration | Adjust protocol fee rate (0.3%, up to 5% max) |
| Relayer Registry | Adjust minimum stake requirements, fee parameters |
| PriceOracle | Switch oracle version, adjust manual rate, toggle Uniswap pricing |
| Protocol Parameters | Supported tokens, sanctions oracle |
Delegation
OFF holders can delegate their voting power to any address — including themselves. Delegation allows active community members to vote on behalf of passive holders.
- Delegation is per-address (you delegate all your voting power)
- You can re-delegate or reclaim your voting power at any time
- Delegating does not transfer tokens — only voting power
- Voting power is snapshotted at proposal creation to prevent flash-loan attacks
Timelock & Admin
All governance-controlled changes — including PriceOracle updates — must pass through the Timelock contract with a 2-day execution delay. Currently the Timelock admin is the deployer address; admin rights will be transferred to the Governance contract to complete full decentralization.
Voting Power
Voting power is derived from staking:
votingPower = stakedAmount × lockMultiplierLock multiplier ranges from 1.0× (7-day lock) to 2.5× (4-year lock). You must stake OFF tokens in the Staking contract to gain voting power.