🤝
Dual Governance
However, this functionality is nothing to be excited about without a mechanism to enforce this logic on protocol and contract upgrades.
- 1.Governance Proposals
- 2.Senate Approvals
This setup creates another safeguard for the users of The Staking Library.
A proposal is Geode Governance offering a change within the protocol to the Senate.
Every proposals isolates an ID for DataStore.
After the Controller is chosen, no one else can touch to the given storage ID.

GeodeUtilsLib.sol
struct Proposal {
address CONTROLLER;
uint256 TYPE;
bytes NAME;
uint256 deadline;
}
A Proposal has 4 parameters:
- TYPE: separates the proposals and related functionality between different ID types.
- NAME:important for ID generation through
DataStore.generateId()
- CONTROLLER: the address that refers to the change that is proposed by given proposal ID.
- This slot can refer to the controller of an id, a new implementation contract, a new Senate etc.
- deadline: refers to last timestamp until a proposal expires.
ID_TYPE | CONTROLLER |
---|---|
0 | NONE -unused |
1 | new senate address |
2 | new implementation contract for Portal |
3 | GAP - unused |
4 | Controller of a Operator |
5 | Controller of a Pool |
21 | Module: Withdrawal Contracts |
31 | Module: gETH interfaces |
41 | Module: Liquidity Pool |
42 | Module: Liquidity Pool Token |
Currently, Governance is an internal ERC-20 token that is only owned by Geode Finance Developers and Treasury.
This internal ownership is a needed step to eliminate the risk of some attacks like Governance tak-over.
In the future, the Governance of Geode is supposed to be decentralized with the distribution of these tokens.
Currently, Senate is a Multisig of Geode developers.
But GeodeUtils Library includes a logic for changing the Senate, as well as an Election for it.
TYPE 1 proposals stand for Senate Elections.
However, the future of Senate will not be decided by elections, but with an other approach:
TYPE 2 proposals ensure Limited Upgradability on both Portal and Withdrawal Contracts.
TYPE 4 proposals stands for onboarding a new Node Operator to the Marketplace:
page link
Other TYPEs like 21, 31 etc. stands for other important parameters of Portal like default Liquidity Pool or withdrawal Contract implementation.
Last modified 6mo ago