
Soroban Governor introduces an open source DAO smart contract framework, based on the OpenZeppelin Governor contract. This enables organizations to easily spin up DAOs that support:
Stellar Asset Token Voting: Voting supports both custom Soroban tokens and Stellar classic tokens, while still preventing flash loan or other balance transfer voting exploits. This is achieved via checkpoints that have been optimized for Soroban.
Vote Delegation: Token holders of DAOs can delegate their votes to other parties, this feature is crucial to increasing voter participation through representative democracy.
Proposal Thresholds: DAOs can require proposal creators to have a certain amount of voting power in order to create a proposal - this is crucial to prevent proposal spam, which can result in malicious proposals slipping through the cracks.
Quorums: Quorums can be implemented to require a minimum percent of possible voters vote on a proposal in order for it to be implemented. This ensures that bad proposals do not succeed due to a lack of voter participation.
Minimum voting periods: Minimum voting periods are supported to ensure that every voter has a chance to vote on proposals.
Execution timelock: DAOs can support execution timelocks to ensure that users can respond to DAO proposals by removing money from protocols. This is vital for safe DAO managed DeFi protocols that allow users to effectively self custody.
Permissionless, arbitrary proposal execution: DAOs encode calldata execution instructions into the proposal, enabling DAOs to interact with the greater Soroban ecosystem. This means that once the proposal has passed a vote and the timelock has expired, any party may execute the proposed action (e.g. "call swap on a USDC:XLM AMM contract") using the DAO smart contract. This feature is mandatory for having decentralized DAOs as otherwise there is no guarantee that passed proposals will be executed.
Proposal security council (optional): DAOs can optionally specify a proposal security council address. If specified, the security council must approve any proposal created before it can be put up for voting. The council will not have the ability to cancel or stop the execution of a proposal after voting has begun.
There are minimal requirements to utilize a Soroban Governor DAO. A project needs to determine their parameter values, deploy the contracts, and initialize the governor with the parameters. From there, proposals can be submitted, voted on, and executed.
Soroban Governor UI
Soroban Governor will offer an open source UI to facilitate participation in Soroban Governor based DAOs. The open source UI will support features like:
DAO List: Script3 will be organizing a community run DAO list, where trusted contracts that implement the Governor and Voter trait can be used within the UI. If you would like to be involved in this - please reach out to any of the contacts on this proposal.
DAO Transparency: Inspect DAOs to view their configuration, including things like proposal lifecycles and security council details.
Proposal Creation: Allow users to create and submit proposals for the DAO.
Proposal Transparency: Allow users to view current and historical proposals, including their vote history, contents, and proposer description.
Voting: Allow users to vote on active proposals, view their voting balance, and interact with the Votes token.
Proposal Execution: Allow successful proposals to be executed by anybody after the proposal timelock has passed.
Open Source: Can be forked by any DAO for a more seamless, branded experience.
Soroban Governor SDK
A fully featured, open source Javascript SDK will be developed alongside the UI to enable any developers in the ecosystem to have more flexibility in interacting with Soroban Governor based DAOs. The SDK will facilitate data fetching of historical and current data for a Soroban Governor DAO like proposals and voting history. This will be achieved by creating a useful, indexed database off-chain to persist aggregate data via the ZephyrVM and Mercury. The off-chain database is a requirement for rich data as the Soroban Governor contracts store proposal data in temporary storage as a means to reduce fees, given proposals have a fixed lifecycle. Thus, old proposals need to be stored elsewhere to ensure they can be referenced by downstream applications in the future. The indexer will also be open source to ensure projects have visibility into the databases and/or can easily extend the code for their own uses. The SDK will support features like:
Fetch data for a Governor based DAO
Fetching past proposals and voting history
Fetching current proposals and voting status
Creating transactions for performing actions against a Governor contract
Creating transactions for performing actions against a Votes contract
Ecosystem
This project was inspired by the needs from the YieldBlox DAO - to have a Soroban based DAO contract that allowed voting with a Stellar Asset and enabled them to execute against Soroban contracts in a decentralized, safe manner. The current Soroban space, based on our research, did not meet these requirements.
Contract Feature Comparison:
Features Soroban Governor Elio DAO Nebula Lumos DAO
Secure Token Voting Yes Yes Yes - however, voting is not based on balance No - can be exploited via flash loans
Delegation Yes No No No
Proposal Thresholds Yes No No Yes
Execution Timelocks Yes Yes - it would need to be added via a hookpoint No No
Minimum Voting Periods Yes Yes Yes Yes
Permissionless Arbitrary Proposal Execution Yes Maybe? - It could be done through a multiclique safe but it's unclear if it will be permissionless No No
UI Feature Comparison:
Features Soroban Governor Elio DAO Nebula Lumos DAO
DAO Transparency Yes Yes No UI N/A
Proposal Creation Yes No No UI Yes
Proposal Transparency Yes N/A - Proposals have no payload No UI N/A - Proposals have no payload
Voting Yes Yes No UI Yes
Proposal Execution Yes N/A - No permissionless execution No UI N/A - No proposal execution
$80.0K

