FeedProjects
Developers
Settings
🎉 A new chapter begins: Boardroom has joined Agora
Learn more
protocol logo
Explore / Projects
Nouns DAO

Proposals

Members

Information

Create Proposal

Nouns DAO

ProposalsMembersInformation
ProposalExecutable Code
Back to Proposals
closedEnded a year ago ·  Onchain

Nouns Auction House V3 Upgrade: Escrowed Streams

By 0xffAF...908d99

Summary

This proposal upgrades the Auction House contract to V3 and introduces stream-based minority protection. Upon auction settlement, 20% of proceeds go directly to the DAO treasury, while 80% are placed in a non-custodial escrow contract that streams funds to the DAO over 973 days (approximately 2.7 years). Noun owners can cancel their stream at any time by returning their Noun to the DAO and receiving their unstreamed funds back.

Context

As part of Nouns DAO’s incorporation as a Wyoming Decentralized Autonomous Unincorporated Non-profit Association (DUNA), we are replacing the fork-based minority protection with cancellable streams to comply with DUNA requirements regarding member distributions. This redesign allows Noun holders to exit by returning their Noun to the DAO and receiving their unstreamed funds back.

For more information regarding the DUNA incorporation, please read the Noun Foundation’s blog post and the recent proposal that funded the transition.

Audit

  • Number of high severity issues found: 0
  • Number of medium severity issues found: 0
  • See the preliminary report here

Changes in Detail

Example Flow

  • Alice wins a Noun auction for 10 ETH
  • Upon settlement:
    • 2 ETH (20%) goes directly to the DAO treasury
    • 8 ETH goes to the StreamEscrow contract
    • A new stream is created that sends ~0.0082 ETH per day to the DAO over 973 days
  • If Alice cancels after 243 days (~25% of stream duration):
    • Her Noun returns to the DAO treasury
    • She receives her remaining ~6 ETH back
    • The DAO keeps the ~2 ETH already streamed

Auction House Changes

  • Splits auction proceeds between immediate treasury payment and StreamEscrow
  • Creates a new stream for each auctioned Noun
  • Advances all streams’ clocks upon each auction settlement

StreamEscrow Contract

  • Non-custodial, non-upgradeable contract
  • Manages all streams in a single contract for gas efficiency
  • Streams advance with each auction settlement (minimum 24 hours between advances)
  • Stream owners can:
    • Cancel their stream and receive unstreamed funds
    • Fast-forward their stream to send funds to the DAO faster
  • Stream rights transfer with Noun ownership

Past Nouns and Nounder Nouns

  • Nouns auctioned before this upgrade will not have streams
  • Nounder Nouns will not have streams as they were not purchased

Voting rights

This stream design does not change how voting rights work. A Noun continues to represent one vote.

Rationale for stream length and initial payment values

Initial payment

  • Reasons for setting a higher value
    • The initial payment helps us deter abusive bidding behavior. If there was no initial payment bidders could win an auction and immediately cancel their stream and get a full refund, and would therefore stunt the growth of our community
    • It should be high enough to deter abuse of client incentives; specifically the reward on auctions is 5% of the winning bid. If this initial payment parameter is set lower than 5%, clients have an incentive to buy Nouns and cancel to gain the difference
    • Client incentives total rewards are at 10% of auctions; setting the initial payment above the total rewards rate seems like a good anchor, to avoid paying for incentives more than the DAO keeps in the case of cancelled streams
  • Reasons to lower the value
    • More funds still in escrow increase minority protection (a hostile majority can’t use those funds)

Stream length

  • Reasons for setting a higher value
    • Funds vest to the DAO at a slower rate, so the DAO’s treasury accumulates less excess funds, therefore the “honeypot” for potential attackers is minimized
  • Reasons to lower the value
    • The DAO might want more funds available sooner to fund certain proposals

We recommend targeting a Noun’s exit value at roughly 50% of its auction price after one year. There is no specific logic to this part, it’s mostly an idea to get started with. This anchor helps us think about these two parameters together. Here’s a chart of how these parameters interact to achieve our target exit value:

The two options we highlighted are:

  • Option 1:
    • Initial payment: 10%
    • Stream length: 821 days (2.2 years)
  • Option 2:
    • Initial payment: 20%
    • Stream length: 973 days (2.7 years)

We are recommending option 2, because we think it’s valuable to have a meaningful margin between the initial payment value and the client incentives rate (currently at 10%).

Configuration Parameters

Auction House (Upgradeable)

  • StreamEscrow address (modifiable via proposal)
  • Initial treasury payment: 20% (modifiable via proposal)
  • Stream length: 973 ticks ≈ 2.7 years (modifiable via proposal, only affects new streams)

StreamEscrow (Not Upgradeable)

  • Minimum tick duration: 24 hours (immutable)
  • DAO executor address, the address that can modify all other parameters (modifiable by the executor address via proposal)
  • ETH recipient address (modifiable via proposal)
  • Nouns recipient address (modifiable via proposal)
  • Allowed stream creators list (modifiable via proposal)

Post-Upgrade Changes

Noun owners will have access to new functionality through Nouns client applications that choose to support these features:

  • View their active streams and remaining funds
  • Cancel streams to exit and receive remaining funds
  • Fast-forward streams to fund the DAO faster

This change is fully backwards-compatible. Auction clients do not need to change anything.

Transactions

  1. auctionHouseProxyAdmin.upgrade(auctionHouseProxyAddress, newAuctionHouseLogicAddress)
  2. auctionHouseProxy.setStreamEscrowParams(immediateTreasuryBPs, streamLengthInTicks, streamEscrowContractAddress)
    • immediateTreasuryBPs = 2000 (20% of each auction’s winning bid goes straight to the treasury)
    • streamLengthInTicks = 973 (roughly 2.7 years)
Continue Reading
Connect Wallet to Add Note
0
Votes 39
VoterCast PowerVote & Rationale
0x39a7...F3aBc0
41

AGAINST

0xcC26...0f6Ed5
38

AGAINST

0xaE65...8146c0
22

FOR

0x73E0...1677Ec
15

AGAINST

0x11Ad...0662EE
13

AGAINST

SHOW MORE
VOTE POWER
0
Connect Wallet
Proposal Status
  • Thu December 12 2024, 04:51 pmPublished Onchain 0xffAF...908d99
  • Sun December 15 2024, 05:13 pmVoting Period Starts
  • Thu December 19 2024, 05:43 pmEnd Voting Period
  • Queue Proposal
  • Execute Proposal
Current Results

1-AGAINST

147

73.13%

2-FOR

40

19.9%

3-ABSTAIN

14

6.97%
Quorum 201/80
DocumentationBrandingContact Us
Home
This Project is Currently Disabled

If you would like to enable it, please checkout below.

Boardroom Subscription

Sign up for an individual subscription (access all projects on the platform)

Subscribe
Enable Project

Enable the entire project for every user

Enable Project
Contact Us