Cool tech, cool experiment. But how is it useful?
For both NFT distribution and funding it’s a more efficient way of achieving “middle ground”; a form of consensus.
Think about it as a way of taking an on-chain average of all opinions.
The current alternative is an attention-deprived off-chain back and forth between proponent and community to arrive at a proposal price point or distribution number.
This back and forth I had with Gami goes deeper. An extract:
If you set the lower threshold to ideal amount you increase the risk of the prop not passing vs a vanilla prop ceteris paribus.
Voters will know the range of funding. When voting, you know that if there is intense support, the prop will hit the upper part of the range. If it barely passes, it will hit the lower part.
You base your vote on that.
If you feel comfortable with the funding range, you vote FOR. The more people feel comfortable with the range, the higher the funding.
It gives quadratic funding vibes.
Right. Well put. Like smoothing out the noise in a signal with a moving average filter.
Before functional funding comes functional NFT distribution.
I am the dev and proposer behind Prop 199 which passed 226 : 9. Prop 199 was a successful experiment to distribute 50 Nouns Vision Glasses from our Treasury to Nouners at random.
I have developed (inspect code here) a generalized version of the Nouns Vision Glasses distributor that allows for any proposer to propose random distribution of any ERC-721 in our Treasury to Nouners. This included development of a generalized version of the BatchTransfer contract 9999.⌐◨-◨ deployed for Prop 185.
As this deployment is not a one-off and meant to be a primitive the DAO can leverage at any time, plus the code is more complex, it requires more extensive testing. In addition, it requires a more complex custom front-end for the distribution claims.
The generalized NFT distributor has a new distribution mechanism baked in that allows the proposer to set the maximum number of NFTs to distribute. Then, if the prop passes, at execution time, the distribution contract calculates the number of NFTs to randomly distribute as a function of the vote (for, against, abstain) counts.
The proposer also selects the distribution amount calculation mechanism. This code extract shows the possible distribution rules the proposer can select from:
Proposer can select among the following distribution rules: Total turnout per Noun, Total Turnout minus abstain per Noun, For Votes, For Votes per Noun, For minus Against Votes, For minus Against Votes per Noun.
For example, the proposer might want to propose a distribution of some LilNouns in the treasury. The proposer is unsure of how many LilNouns the DAO is willing to distribute so he/she selects VotesFor as the distribution mechanism. Thus, the higher “For Vote” turnout (the more popular the prop was), the more LilNouns will be distributed.
Here’s how proposing and execution works:
I call “functional props” proposals that are self-referential at prop execution time. Initially I’m interested in exploring props that use vote counts (i.e., how many for/against/abstain) as inputs and take actions as a function of those inputs. We could imagine going beyond that to enable props that pull from a larger voter input-space such as vote reasons*.
Functional funding is a subset of functional props that enables an efficient way for the DAO to price proposals. The mechanism works as follows:
For Proposers:
For Voters:
For Nouns DAO:
35 ETH sent to me, DigitalOil.
If only I could propose a functional funding range 🤷♂️.
*Note that using vote reasons as inputs to functional props would require a change to the governance contract as vote reasons are currently not introspectable at execution time.
Cool tech, cool experiment. But how is it useful?
For both NFT distribution and funding it’s a more efficient way of achieving “middle ground”; a form of consensus.
Think about it as a way of taking an on-chain average of all opinions.
The current alternative is an attention-deprived off-chain back and forth between proponent and community to arrive at a proposal price point or distribution number.
This back and forth I had with Gami goes deeper. An extract:
If you set the lower threshold to ideal amount you increase the risk of the prop not passing vs a vanilla prop ceteris paribus.
Voters will know the range of funding. When voting, you know that if there is intense support, the prop will hit the upper part of the range. If it barely passes, it will hit the lower part.
You base your vote on that.
If you feel comfortable with the funding range, you vote FOR. The more people feel comfortable with the range, the higher the funding.
It gives quadratic funding vibes.
Right. Well put. Like smoothing out the noise in a signal with a moving average filter.
Before functional funding comes functional NFT distribution.
I am the dev and proposer behind Prop 199 which passed 226 : 9. Prop 199 was a successful experiment to distribute 50 Nouns Vision Glasses from our Treasury to Nouners at random.
I have developed (inspect code here) a generalized version of the Nouns Vision Glasses distributor that allows for any proposer to propose random distribution of any ERC-721 in our Treasury to Nouners. This included development of a generalized version of the BatchTransfer contract 9999.⌐◨-◨ deployed for Prop 185.
As this deployment is not a one-off and meant to be a primitive the DAO can leverage at any time, plus the code is more complex, it requires more extensive testing. In addition, it requires a more complex custom front-end for the distribution claims.
The generalized NFT distributor has a new distribution mechanism baked in that allows the proposer to set the maximum number of NFTs to distribute. Then, if the prop passes, at execution time, the distribution contract calculates the number of NFTs to randomly distribute as a function of the vote (for, against, abstain) counts.
The proposer also selects the distribution amount calculation mechanism. This code extract shows the possible distribution rules the proposer can select from:
Proposer can select among the following distribution rules: Total turnout per Noun, Total Turnout minus abstain per Noun, For Votes, For Votes per Noun, For minus Against Votes, For minus Against Votes per Noun.
For example, the proposer might want to propose a distribution of some LilNouns in the treasury. The proposer is unsure of how many LilNouns the DAO is willing to distribute so he/she selects VotesFor as the distribution mechanism. Thus, the higher “For Vote” turnout (the more popular the prop was), the more LilNouns will be distributed.
Here’s how proposing and execution works:
I call “functional props” proposals that are self-referential at prop execution time. Initially I’m interested in exploring props that use vote counts (i.e., how many for/against/abstain) as inputs and take actions as a function of those inputs. We could imagine going beyond that to enable props that pull from a larger voter input-space such as vote reasons*.
Functional funding is a subset of functional props that enables an efficient way for the DAO to price proposals. The mechanism works as follows:
For Proposers:
For Voters:
For Nouns DAO:
35 ETH sent to me, DigitalOil.
If only I could propose a functional funding range 🤷♂️.
*Note that using vote reasons as inputs to functional props would require a change to the governance contract as vote reasons are currently not introspectable at execution time.