Self referential prop for distribution of NFTs (and later variable funding)

In the final stages of deploying a couple immutable primitives for the DAO.

First, I’ll be deploying a generalized contract of what I did with the Vision randomized distributor.

  1. Any ERC721 in the treasury can be distributed at random.
  2. Multiple distribution rounds allowed.
  3. Allows distributing a larger number of NFTs. Prior version was more gas-limited.
  4. Is being deployed as a primitive for anybody to leverage via their own distribution proposals.

In addition, includes a nice innovation that could also be applied to regular funding props.

The person who submits the prop for distribution of the NFTs sets a min and max to be distributed. The number that ends up being distributed is a function of the number of for, against, abstain votes that the prop received. So, it’ll be the first self-referential prop as when the prop executes it refers to its own vote count. This is the first example of what I call functional props.

Once the new Batch and VRFDistributor contracts are deployed, I will use them to propose random distribution of a chunk of LilNouns in the Treasury. Anybody will be able to propose any ERC721 distributions in the future using the same contracts.

On a separate but related note…

A similar process also applies to regular funding rounds because a proposer can opt to set a min/max funding amount and funding will be a number within that range depending on the level of support for the prop.

I plan on subsequently deploying a contract that can be used for these self-referential funding proposals as well.

Aside from general feedback, I’m specifically interested in some ideas for how to calculate NFTs or funds to be distributed based on the following inputs: (nounSupply, forVotes, againstVotes, abstainVotes, minWinners, maxWinners)


Interesting tech, but not sure funding/distribution amount as a function of no. of Yes votes is a good path to head down.

Whats your motivations?

Good question.

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.

Vs an attention-deprived off-chain back and forth between proponent and community to arrive at a price point or distribution number.

Take a look at the different distribution functions I’m considering. Would love your opinion on editing or adding any more that make sense.

Down the line this could be expanded to something much more powerful that takes as input “voting reasons”, but due to what storage data is currently accesible at prop execution time it would require changes to the governance contract and some stronger failsafes.