# Nouns Streaming Grants

We propose a protocol for streaming funds to Nouns builders. Nouns holders vote to set a stream of funding, and can vote again at any time to change the stream.

## The problem

The experience of building in Nouns is subpar, especially for smaller projects. Large up-front effort is required to make a proposal, and consistent funding is difficult to find. 

For voters, everyone has different initiatives they care most about funding, but For/Against voting requires broad consensus and high effort.

## Streaming grants

An ideal mechanism for capital allocation minimizes effort required from voters and maximizes funding the best outcomes for the DAO. 

The protocol we propose attempts to bring Nouns closer to this ideal experience. We've built an [MVP](https://vrbs.build/vrbs/grants) with [Vrbs](https://vrbs.build/) already. Here's how it works:

![Screenshot 2024-07-11 at 12.07.04 PM](https://hackmd.io/_uploads/HJwtXY6DC.png)

A stream of USDC flows per second to a set of high level funding pools defined by outcomes (eg: Improve Public Spaces, Help those in Need, Open Source Software, Nouns Clients etc.)

![Screenshot 2024-07-11 at 12.35.55 PM](https://hackmd.io/_uploads/H1hxcF6wR.png)

Nouns holders allocate their vote weight to outcomes they care most about. As soon as you vote, the stream is adjusted proportionally to the total token-weighted votes for it. You can reallocate your vote as your preferences change, and the streams update automatically.

![Screenshot 2024-07-11 at 12.42.50 PM](https://hackmd.io/_uploads/Byj5oFpDR.png)

Within each outcome pool, you can also decide how the stream is split. With this fractal setup, you can vote for the highest level outcomes, but don't necessarily have to vote inside each outcome pool unless you want to.

Funding flows through different outcome pools to builders who are making impact, and everyone doesn't have to vote on every decision. Here's a [video](https://x.com/rocketman_w/status/1807905842282254516) to explain more. 

## Outcome in Vrbs so far

We have an MVP contract and UI with $6k a month flowing to builders in Vrbs DAO. You can explore what's getting funded [here](https://vrbs.build/vrbs/grants). 

We've put over 30 artists on salary to create beautiful [artwork](https://warpcast.com/littlebirth/0xd9e91c3e), built up a social media team, and funded regens to go out and improve public spaces and [clean up a national forest](https://www.youtube.com/watch?v=gMTBQDn_tRc) every day. The consistent funding, even for small amounts, goes a very long way.

## The plan

We'd like to build a more thorough version of this streaming grants program for Nouns. We need to upgrade the mechanism to work at scale without trusted management, and get the contracts audited. 

The biggest outstanding questions are how to approve grant applications and how to decide on the outcome pools and tree structure. Outside of that, helping grants builders highlight impact in a way that's easily consumable for voters is a big priority. We're working on Farcaster integrations and [impact profiles](https://vrbs.build/vrbs/users/rocketman21.eth) to facilitate this. 

Our plan is to work closely with the community on Farcaster and over Discord calls to help us decide on mechanisms that answer these questions in a way that's resistant to capture and still maintains accessibility for the long tail of builders. 

## Timeline

We've built out a solid MVP with Vrbs, and are requesting funding for the next 4 months to build out the mechanism for Nouns. Our plan is to spend the first month working with the community to build mechanisms into testnet contracts that:

- Enable DAO members/$nouns holders to decide top level outcome pools and tree structure without over coordination    
- Allow grant applications to be withdrawn or slashed    
- Grant approval process (basic TCR w/bond / existing grantee committee)    
- Figure out the best way to enable voting on Base with mainnet Nouns tokens, or ship with $nouns to start. 

Generally our thinking for both outcome pool structuring and grant approvals is to utilize some combination of optimistic approval and existing grantee / voter invitations. For optimistic approval, grant applicants or Nouners wishing to add another outcome pool would post a bond along with their application that can be challenged by existing grantees or voters. We'd also potentially have existing grantees invite new members on a regular basis as funding scales. We are open to ideas to help solve these problems. 

**August:** Ship testnet contracts and open source UI. 
**September:** Continue iterating with feedback, audit with [0x52](https://x.com/IAm0x52). 
**October:** Launch on Base mainnet with USDC streaming
**November-December:** Continue iterating and building out the program

## Mechanism direction

Our thinking for outcome pool structuring and grant approvals is to utilize a TCR mechanism at every level of the tree. The goal is to align incentives for token holders to curate the list of grant recipients and tree structure in a way that maximizes the value of the $nouns token.

Grant applicants or people wishing to add another outcome pool would post a bond (in $nouns for the top level, or $nouns and a pool token for outcome pools) along with their idea/application that can be challenged by token holders.

As a means of overcoming the min economy size required to bootstrap a successful TCR system, we would allocate a percentage of the stream going to each outcome pool to pay holders of the pool token (curators). If a given pool is thought to be allocating funds incorrectly, voters will change the top level stream, and curators within the pool will lose out on revenue, so it's in their best interest to maintain effective funds allocation within the context of the outcome pool they hold the token for.

Existing stream recipients can be challenged by token holders who want to ensure the stream recipients on the list are making the most impact possible. We will also build offchain feedback mechanisms on stream recipient profiles so they can get ahead of any potential challenges to their salary.

Given that this is new mechanism territory, we are open to ideas and will work with the community as we explore the design space.

## Other details

There are some shortcuts we took with the existing [contract](https://github.com/collectivexyz/revolution-protocol/blob/fix-grants/packages/grants/src/RevolutionGrants.sol) that we will spend time fixing, including ensuring streams update down the tree when votes change at the top level. 

Some other things we will research and iterate on:

- Resnapshotting vote weight without having to ask for people to re-vote    
- How to best highlight impact so voters can make informed decisions 

## The builders

[Rocketman](https://twitter.com/rocketman_w) and [Wojciech](https://warpcast.com/wojciech). We've been building in and around the Nouns space for nearly 2 years. In that time, we have built an alternative [protocol](https://github.com/collectivexyz/revolution-protocol) for launching Nounish DAOs, House of Nouns, and [Vrbs DAO ](https://vrbs.build/)to name a few. 

## The funding request

We are requesting $17.5k USDC a month for 4 months to work on this, split between Wojciech and rocketman ($8.75k a month per person). 

We are also requesting $12k to do an audit with [0x52](https://x.com/IAm0x52). 

Finally, we'd like to seed this grants program with $20k USDC, streamed over 2 months. *(we updated this from $15k over 3 months to $20k over 2 months to accelerate learnings).*

Total ask: $102k USDC. 

## Questions

Have any questions? Want to discuss with us? You can reach me on Warpcast [here](https://warpcast.com/rocketman) or Twitter [here](https://twitter.com/rocketman_w).

Outcome: EXECUTED