[EP3.3] [Executable] Sell ETH into USDC

Trading a widely popular and fairly decentralized currency of value for something that can be arbitrarily locked/potentially exploited doesn’t have risk. Agreed there.

1 Like

Seems like this large amount is what OTC is for. Adds a trusted counterparty to the mix tho

1 Like


DCA > Gnosis Auction

Probably makes sense to get input from Karpatkey - will this Stablecoin amount be handed over to KK team as part of the Endaoment, or just sit idle in the treasury?


The choice to use USDC is dictated by the proposal we passed last year to fund ENS Labs (TNL at the time).
Alisha mentioned that proposal above. It passed last year, [EP2.1] [Executable] Funding True Names Ltd, it outlines that $11,500 worth of USDC is streamed daily to the ENS Labs team to fund the operation.

The DAO wallet literally has to have USDC in it so that the stream contract can deliver it.

I believe James is planning to re-write this and break it up into several smaller Gnosis auctions as a way to DCA the swap.

Yes, it would be good to hear more from Kartpatkey. They did participate a bit in the Twitter space earlier. Their proposal includes a similar swap to USDC, but it also contains several other components that have been contentious and might need more discussion. The thought here is we can decouple this move to get it done soon, so that we can meet budgets now and ensure that the endowment discussion won’t be pressured by the dwindling USDC reserves.


Why do they need money when they already have a bunch of tokens they could sell? There isn’t any active development taking place either. Some open source commits on the libraries, but that should only have bounty costs. GitHub - ensdomains/ens: Implementations for ENS core functionality: The registry, registrars, and public resolvers.

It’s a bunch of standing around and making proposals counter to the ethos of decentralization, liberty, and censorship resistance. I’m bitterly disappointed with people here I respected for long time. Everyone I work with is as well. We are stunned.


Hi All, great discussions here and on the Twitter spaces. As @AvsA and others have mentioned, DCA is the optimal strategy to execute this trade on-chain vs Gnosis auction.

We’ve built a tool to allow DAOs, protocols, and whales to efficiently DCA on-chain in a gas-optimal manner: TWAMM. From the reception on the call by @James and others, it seemed like the best fit for a trade of this size.

I did not want to de-rail the conversation here and therefore made a long-form post here for more details on our tool, background, advantages, risks, etc: TWAMM: on-chain non-custodial DeFi protocol for large asset swaps.

As I mentioned in the Twitter space, our tool is going into audit on January 23, 2023, by SpearbitDAO, and pending a successful audit will be ready by Eth Denver (March 01, 2023). The first pool we plan to deploy will be ETH/USDC.

I understand that there’s hesitation to execute a large trade of this size on a tool that hasn’t been battle-tested, but I’ve addressed the different risks and mitigation strategies in the forum post linked above.

Happy to answer any further questions!

Wasn’t aware of the USDC requirement - if there’s no way to change that another option could be to deposit this amount of stables in 3Pool on Curve and withdraw USDC as need for operations (perhaps something for Endaoment team to handle). This achieves two things:

  • less amount of funds at risk of being blacklisted by Circle (likely a very low risk, but in DAI or 3Pool it’s eliminated)
  • some arguably very safe yield i.e. 1.5% with $500M+ TVL

3Crv option ofc does bring exposure to USDT, just something to be aware of and consider.

less amount of funds at risk of being blacklisted by Circle

This was discussed in the US Financial Services Committee ad infinitum last year in the outgoing house. There are a strong number of representatives who want to get rid of all stablecoins. They know they can demand blacklisting, which is honestly impressive given that in 2021 almost nobody read contracts or understood blacklists take place.

The most common use of the blacklist now has been hacked funds, and also funds sent to wrong addresses. USDT is pretty efficient even and returns stuck funds sent to contracts for a 10% fee, and wrong addresses too if you know the right people.

While you may discount a direct blacklisting of the ENS, it is definitely possible to get wrapped in sanctions or sweeping legislation of DAOs with governance token. The main threat though is simply a KYC mandate for all stablecoin transactions, and making them illegal with a future rollout of a CBDC down the road. They did exactly this almost overnight with the UIGEA, and they are very likely to pull a similar stunt when it comes to stablecoins.

You may counter with the fact the ENS is ‘transparent’ with known directors, but that’s not how this works. In 2006 there were very transparent and fair gambling sites for poker, while in 2023 there is a mess of gambling legislation at the state level in the US, and nothing is good for anyone. It took way longer than anyone expected for even the most basic things to take place, and the fad of poker long moved on.

Putting money, even in DAI is high risk for anything but a short term movement of small funds. There are practical reasons to do this.

  • some arguably very safe yield i.e. 1.5% with $500M+ TVL

The yield of Ethereum will vastly destroy any stablecoin yield by growing as a network. If the ENS makes it, Ethereum does. There are scenarios where the ENS fails, and Ethereum does well, but it doesn’t seem very likely. This is why what is going on here is so shocking. Any basic understanding of risk and economics means you would never suggest this, unless of course you knew it was going to fail, or you had dark motives.

I’d be supportive of DCAing, and your project seems like a great tool for that - but we can’t be its first user with such a large amount of money at stake, particularly prior to an audit.

A Gnosis auction is a straightforward way to do this that will get us a good price - albeit, the equivalent to the spot price on the day. An alternative would be to send the funds to be exchanged to a Gnosis Safe using the Roles Modifier that allows, eg, the metagov stewards to exchange funds and send them back to the DAO; they could then make the trades but would have no access to the funds.

In the interest of not getting tied up in bikeshedding I’d propose we go ahead with the Gnosis auction for now, and find long-term sustainable approaches down the road.


Media is paying attention.

1 Like

Yup totally reasonable given your timelines. Look forward to ENS DAO using TWAMMs down the line post-launch!

I’d be an advocate of doing this over a longer period of time. 10000 ETH is quite a bit. I’d also like to know the current performance of the budget spends from various working groups to understand if the currently-utilized budgets are getting the expected results.

Also curious to know the answers to @Ronald’s point - why does ENS Labs need $11,500 per day? (4 million per year)


In short, because we employ 17 talented individuals full-time, in a highly competitive field. We also have not insignificant infrastructure expenses on ENS’s behalf, such as the site and the metadata service, as well as travel to conferences, marketing & PR spend, etc.


Thank you! Also thank you @Coltron.eth for sharing this - [EP14][Executable] Funding True Names Ltd

That topic aside, I would be more for this sale of ETH if there were a few options presented like 1 month, 3 months, 6 months, etc.

Hey everyone, I’m Nicole Maffeo the cofounder of SIZE Markets. Read through the proposal & thread. It sounds like there are three main pain points:

  • Needs to be on-chain.
  • DCA with scheduled recurring auctions.
  • No front-running.

Treasuries use SIZE to easily create custom on-chain, sealed bid auctions. ENS DAO could schedule a recurring ETH auction, set auction duration and reserve price. You could also add vesting parameters if of interest.


Hey ENS community and delegates!
(finally managed to get permission to post comments in the forum)

I’m leading BD for CoW Swap, we’d like to propose an alternative solution to Gnosis Auction.
Our team has built Gnosis Auction, with the main use case of selling newly issued tokens where the price is still not established with a liquid on-chain market. In those cases Gnosis Auction shines, serving as a price finding mechanism.

Gnosis Auction is still a decent choice for large trades of liquid tokens - but for this purpose we’ve built CoW Protocol!
CoW Protocol employs a similar batch auction to the one used in Gnosis Auction, but auctions are much faster and the solvers competing to provide best-execution prices for users, can also tap into any available on chain liquidity (something that is missing in Gnosis Auction for this use case)

The price impact of a single trade selling 10k ETH is less than 1% - so from this perspective, TWAP won’t help a lot, unless the purpose is to DCA. If splitting the order into multiple smaller orders that will execute over time is a hard requirement, this is also something that CoW Protocol can handle, let us know and we can explain how it could be done - requiring only a single transaction from ENS DAO.

Finally I want to provide a few real world examples of similar trades being executed using CoW Protocol, demonstrating its execution efficiency and ability to execute order of this size consistently.

Example 1:

  • 15k ETH sold for USDC
  • 0.5% slippage tolerance fully protected
  • Additional price improvement of 0.08%
  • Indicated as 0.58% of surplus

Example 2:

  • 10.5k ETH sold for USDT
  • 0.5% slippage tolerance fully protected
  • Additional price improvement of 0.03%
  • Indicated as 0.53% of surplus

Example 3:

  • 15.6k ETH sold for USDC
  • 0.5% slippage tolerance fully protected
  • Additional price improvement of 0.08%
  • Indicated as 0.58% of surplus

We would love to answer any further questions and to provide any support needed for crafting the required transaction to create the sell order using CoW Protocol :cow:


Can we use cow protocol to set up, on a single call, a batch of auctions set in the future?

  • create 100 orders of selling 100 eth each
  • each order is an auction at market price that lasts 24h and is each starts at a future date over 100 days in the future
  • we set a minimum floor for eth price

I’m a user of Cow Swap and like it personally but I am trying to see if it can be useful for the DAO


Can you explain how we could do this, given the one week delay between proposing a vote and its execution?

1 Like

There are multiple options with varying considerations and assumptions, I’ll go from the simplest to the more complex:

  1. Simple sell order - Create a simple sell order using setPreSignature, selling 10k ETH for USDC. In the very simple case, you just estimate the ETH price at that time (7 days out) and take some spare - lets say 10% below current market price, to reduce the likelihood of your order becoming stale. This means your limit price is guaranteed on the smart contract level, and the slippage is protected by CoW Protocol’s solver competition. You should expect just getting the fair market price at the time of execution.
    You’d need to take very similar assumptions when setting up a Gnosis Auction - when setting the reserve price (minimum price you’re willing to accept)

The next two options are relying on a dedicated smart contract with extra logic that allows the trader to define additional rules for their order execution. The project is called milkman, it was fully audited and is production ready. Milkman allows to defer the choice of the limit price from order initiation (pre DAO vote) to order execution time (solver settling the trade). It does so by using ERC1271 signatures and considers a proposed execution price valid if it’s within a predefined range from an external oracle (e.g. Uniswap TWAP).

Having said that, it still didn’t accumulate a lot of trading volume going through it - so less battle tested. Regardless, the outcome is an order on CoW Swap that is surplus capturing and protected by the batch auction competition.

  1. Use Milkman to set up a single 10k ETH sell order, and attach a price checker. This allows an onchain check of a price oracle e.g. Uniswap TWAP, at execution time, to make sure execution is not below the oracle price. Essentially you get to reduce your trust of CoW Protocol best execution by adding an additional check (advantage over option 1).
  2. Use multicall to set up multiple orders using Milkman - each with a different validity time (validFrom, validTo). This means each of them will execute at a time you define in advance.
    To @AvsA question, this is the proposed solution for a DCA, but the auction will be a normal CoW protocol auction and not a 24h auction.

Interesting. The milkman option seems viable to me. It’s your proposal @James, what do you think?