In order to pay builders directly with USDC, we have deployed a contract (TokenBuyer
) which swaps ETH for USDC on behalf of the DAO.
We propose to fund TokenBuyer
with 625 ETH in order to acquire a USDC buffer of $500K (there's a baked in volatility buffer; any extra ETH will be used for later proposals or can come back to the treasury).
Future proposals created from nouns.wtf will automatically "top off" TokenBuyer with additional ETH, minimizing the need for additional funding proposals.
Many proposals have costs in USD (or other fiat currencies) and would prefer to request USDC for the DAO instead of ETH.
It is not trivial to swap ETH to USDC at proposal execution time without being subjected to sandwich attacks and getting bad swap rates.
The tech pod developed TokenBuyer - a suite of smart contracts that allow permissionless swapping of tokens.
TokenBuyer will allow proposals to request payment amount in USDC.
The swapping of ETH to USDC happens asynchronously, meaning: If the DAO doesn't have enough USDC on hand, it will register a debt for the remaining amount. As soon as the rest of the USDC is available, it is sent to the recipient's wallet, no user intervention needed. We expect this to take a few days at most, depending on the total amount.
TokenBuyer allows anyone to swap USDC for the ETH it holds. It uses Chainlink's ETH/USD price feed to set the price.
Whenever a proposal requests USDC from the DAO, it will also include a transaction to top up TokenBuyer with additional ETH, proportional to the USDC amount requested.
(This "automatic top-off" is part of nouns.wtf; other governance clients can choose whether they implement this behavior)
This is a preview of a new proposal creation flow for nouns.wtf developed by Brian. It will go live once it's possible to request USDC.
baselinePaymentTokenAmount
: amount of USDC to hold "on hand". Currently set to $500,000.botDiscountBPs
: a price discount to incentivize anyone (probably bots) to swap USDC for ETH. Currently set to 10 bps (0.1%).baselinePaymentTokenAmount
, allowed range is: 0 - $1MbotDiscountBPs
, allowed range is: 0-150 (0-1.5%)baselinePaymentTokenAmount
and botDiscountBPs
botDiscountBPs
parameters to increase the incentive (e.g. if gas prices become high).baselinePaymentTokenAmount
is set to $500K, we would want to fund TokenBuyer with enough ETH to swap for $500K. We suggested adding an extra 50% to account for price changes. At current ETH prices this 750,000 / 1200 = 625 ETHIncluded Transactions:
0x79095391743e0f017A16c388De6a6a3f175a5cD5
(Tech Pod Multisig)Nouncil's Vote Results: 62 YES, 3 NO, 3 ABSTAIN
Discussions from Nouncil Discord:
Al409 "this is fantastic"
Joel Cares "This will be a useful tool for many builders. Noice."
andreitr "agree, solid utility"
motiondesign.eth "What’s the issue with distributing in eth?"
Brook "Very important utility. An useful way to support builders outside of crypto.
But as a crypto-native protocol, shouldn’t nouns leverage ETH more than USDC? Being ETH-exclusive is more than just the currency, it opens up doors to onboard others into crypto.
To balance both helping builders and being crypto-native, I think a threshold (if more than x Ξ is requested, convert to USD) could be in place"
Join the Nouncil Discord for some of the best Proposal discussion happening in the ecosystem: https://discord.gg/nouncil
I think this is a great step in reducing the conversion friction related to proposals needing fiat or stables to cover costs.
In order to pay builders directly with USDC, we have deployed a contract (TokenBuyer
) which swaps ETH for USDC on behalf of the DAO.
We propose to fund TokenBuyer
with 625 ETH in order to acquire a USDC buffer of $500K (there's a baked in volatility buffer; any extra ETH will be used for later proposals or can come back to the treasury).
Future proposals created from nouns.wtf will automatically "top off" TokenBuyer with additional ETH, minimizing the need for additional funding proposals.
Many proposals have costs in USD (or other fiat currencies) and would prefer to request USDC for the DAO instead of ETH.
It is not trivial to swap ETH to USDC at proposal execution time without being subjected to sandwich attacks and getting bad swap rates.
The tech pod developed TokenBuyer - a suite of smart contracts that allow permissionless swapping of tokens.
TokenBuyer will allow proposals to request payment amount in USDC.
The swapping of ETH to USDC happens asynchronously, meaning: If the DAO doesn't have enough USDC on hand, it will register a debt for the remaining amount. As soon as the rest of the USDC is available, it is sent to the recipient's wallet, no user intervention needed. We expect this to take a few days at most, depending on the total amount.
TokenBuyer allows anyone to swap USDC for the ETH it holds. It uses Chainlink's ETH/USD price feed to set the price.
Whenever a proposal requests USDC from the DAO, it will also include a transaction to top up TokenBuyer with additional ETH, proportional to the USDC amount requested.
(This "automatic top-off" is part of nouns.wtf; other governance clients can choose whether they implement this behavior)
This is a preview of a new proposal creation flow for nouns.wtf developed by Brian. It will go live once it's possible to request USDC.
baselinePaymentTokenAmount
: amount of USDC to hold "on hand". Currently set to $500,000.botDiscountBPs
: a price discount to incentivize anyone (probably bots) to swap USDC for ETH. Currently set to 10 bps (0.1%).baselinePaymentTokenAmount
, allowed range is: 0 - $1MbotDiscountBPs
, allowed range is: 0-150 (0-1.5%)baselinePaymentTokenAmount
and botDiscountBPs
botDiscountBPs
parameters to increase the incentive (e.g. if gas prices become high).baselinePaymentTokenAmount
is set to $500K, we would want to fund TokenBuyer with enough ETH to swap for $500K. We suggested adding an extra 50% to account for price changes. At current ETH prices this 750,000 / 1200 = 625 ETHIncluded Transactions:
0x79095391743e0f017A16c388De6a6a3f175a5cD5
(Tech Pod Multisig)