Romulus

What can Romulus do?

Romulus enables protocols to perform on-chain governance. Proposals consist of a list of on-chain actions. One example of a proposal might be:
  1. 1.
    Transfer ownership of ContractX to Alice
  2. 2.
    Transfer 100 CELO to Bob
If this example proposal passes, it can be queued into the governance system's Timelock. Once the Timelock's delay period has passed, the proposal can be executed through the Timelock. In this scenario, it would transfer ownership of ContractX from the Timelock to Alice. Then, it would transfer 100 CELO from the Timelock to Bob.

How does it work?

At its core, Romulus consists of 3 smart contracts:
  1. 1.
    ​RomulusDelegator​
  2. 2.
    ​RomulusDelegate​
  3. 3.
    ​Timelock​
RomulusDelegator is a proxy contract that is implemented through RomulusDelegate. Proposal creation, proposal execution, and voting all occur through RomulusDelegator, while the implementation of those functions are defined by RomulusDelegate. This allows RomulusDelegate to be upgradeable. When proposals pass, they are passed to a Timelock owned by RomulusDelegator which execute after the Timelock's time delay has passed. This gives users time to act between a proposal passing and a proposal executing.