Scoped Proposal Types are a powerful tool to add limits on specific actions a proposal in a DAO can take, while forcing specific contract calls to flow through specific proposal types. Instead of allowing a contract call with any value parameter, you can define specific, safe actions that certain proposal types are allowed to perform. Additionally, once a scope is defined, other proposal types are blocked from making any similar call.
Let’s say your DAO has a proposal type called “Treasury Settings”. You want it to update the budget, but not give it infinite budget.
Create a Proposal Type:
Name: Treasury Settings
Quorum: 10%
Approval Threshold: 60%
Assign a Scope:
Contract: Treasury contract
Function: updateBudget(uint256)
Rule: newBudget < 1,000,000 tokens
Any proposal of this type, would then be limited in it’s ability to invoke that contract’s function, below 1,000,000 token.If not, it’s invalid.Additionally, no other proposal type, could call updateBudget on that contract (unless an additional scope rule was made permitting it).