(bonus points for anyone that gets the dad joke in there)
Last week MakerDAO underwent a long planned upgrade, moving from its original prototype to a more expansive 2.0 version of itself. Never missing an opportunity, I decided to jump into the potentially historic moment by setting up my own account to manage Ethereum collateral in a Collateralised Debt Position (CDP) and create DAI (Token backed stablecoin) and follow the upgrade. Despite a few hiccups along the way, and potential headaches down the line, the process could have been a lot worse and went relatively smoothly.
TRIGGER WARNING: This post is fairly snarky (that’s my bag). My position is this, DeFi is incredibly interesting, and may throw off some great ideas, however today it is still an experiment.
We’ll dive right into my snarky walkthrough of the upgrade, but first some very quick background info on this upgrade. MakerDAO was originally launched in December 2017 at the height of the crypto boom, but the journey towards Maker goes back to 2014. The original contract served as an MVP that allowed users to lock Ether (ETH) in a smart contract, and then issue upto 66.67% of the USD value of that ETH in a Dollar-linked stablecoin called DAI. DAI was structured as a basic ERC20-type token on the Ethereum network. Holders of DAI did not earn any interest from the token itself, but some third-party providers offered services that allowed for lending and borrowing. The Maker system enjoyed fairly broad success, with DAI issuance surpassing $100m just before the upgrade. Immediately after the MVP of single collateral DAI (SCD) in December 2017, plans were already in the works for the move towards MCD. The upgrade incorporates a number of technical learnings from the first two years of Maker, as well as two major features: The ability to include other collateral types to underpin the issuance of DAI, and interest payments made to DAI holders from the fees accrued by DAI issuers. During DevCon5 in Japan last month, Maker founder Rune Christiansen announced that, pending a vote by MKR holders, the transition to MCD would take place on the 18 November.
A few hours before the actual transition, I decided to embark on an experiment, and setup two pre-upgrade Maker CDPs, and issue DAI. One would be upgraded to experience the process, and the other will be left to wither away and follow whatever happens in the future.
I wrote the following in real-time as I did the upgrade, only returning to add clarification afterwards.
The journey started on the morning (Europe) of the 18 November, approximately 6 hours and 45 minutes before the upgrade was to take place. I pulled some scratch ETH that I had floating around in MetaMask and invested a full 0.06 ETH (~$10) into what is surely to be my getting REKT.
To get things started, I headed over to the MakerDAO site to start the process of opening a pre-update CDP. As is common with Ethereum linked web applications, they require a lot of approvals through the MetaMask browser extension. Usually these have more information about what permissions you are giving, and because these things are money, and things you do are permanent and irreversible you should definitely read what you are agreeing to, being someone that needs to use the Maker provided dumbed-down front end, and MetaMask to do this, I did what 99%+ of people in the same position would have done and ignored the fine print, and just accepted everything.
Once you get onto the old Maker site, you also need to give the application the ability to interact with other types of tokens, these operations send transactions out to the blockchain, and this has a financial cost, paid in ETH by way of gas. MetaMask suggests a fee based on how busy the Ethereum network is, but you can click through and change this. The initial suggest was $0.81 for each transaction, but I was only spending $10 total, so I opted to pay less and pay a lower fee of $0.18 to activate DAI and MKR on my wallet. I had a phone call to jump onto later, so if it got stuck waiting for confirmation on the blockchain I could wait.
I got lucky though and things confirmed pretty quickly, so I was able to start setting up the CDPs that would allow me to lock up Ether and issue DAI. This operation is kind of complex, because in order to lock Ether (ETH) you need to put it in a special contract that Maker can control called Pooled ETH (PETH). There is also an intermediate step, but that is abstracted from this interface, so we’ll ignore it. At the time of writing PETH were worth 1.046 ETH.
Why is there a premium for something that can be freely created and destroyed? Good question, someone said on Reddit that it had something to do with how things are liquidated when the collateral in a CDP falls below a minimum level, but frankly it didn’t make sense to me. In all cases, it was a 4.6% loss on the ETH that I invested, in addition to fees, so it has an economic impact, but for the $10 that I was investing it didn’t really matter. Let them eat cake.
Zooming past that, I sent 0.03 ETH (~$5) to my first CDP, and took out 2 DAI (~$2) in debt.
Being a permissionless and decentralised protocol, I was not at all surprised to have to sign T&Cs… Naturally I this led to a prolonged Twitter fight with crypto-lawyers and Maker fans, and I later learnt that I had agreed to indemnify the entirety of the Maker… DAO…? All for a good cause I suppose. Setting it up, I had to send more transactions to the blockchain, which meant… more fees. They suggested $1.73, I countered with $0.30. Several failed transactions later, and I was met with an interesting new request for permissions:
I wasn’t in the mood to ask questions, or understand what I was getting myself into so naturally, I smashed that “Confirm” button.
Moments later, my baby CDP and 2 DAI were born:
Now that I had setup my first CDP, which would later come along for the ride from SCD to MCD, I named my my wallet “MakerMCD” and setup a second Ethereum wallet in MetaMask:
After this, I proceeded to replicate everything above, giving more permissions and paying yet more transaction fees, and agreeing to yet more joint and several liabilities with the interwebs. Upon setting everything up, taking a few calls and starting on these notes, I was left with only 5 hours and 20 minutes until the upgrade. I decided to read up on what needed to be done later:
From the documentation I worked out that following the upgrade, I would be able to start moving my first account to the new MCD setup, and eventually collateralise some of my CDP with non-ETH tokens. I was eager to test that, and had not previously done the requisite research, so that went on my reading list too.
Reading this document, it is key to know that in addition to technology changes, we also get to upgrade our vocabulary. The stablecoin known as DAI until 18 November 2019 at 1600 UTC, will be rebranded SAI, and the new upgraded stablecoin backed by ETH + other tokens will be labelled DAI. In addition, the CDP will become a Vault. Confused? You’re not alone.
Having glanced through the documentation on what I had to do, and having a basic understanding of the steps that I would need to take that afternoon, I decided to do some research on what will eventually happen to MakerDEATH that will purposely be left as is. From the documentation, it sounds like I may have to wait quite a while until the decentralised community decides to kill it for me, when MKR holders decide that we’ve all had enough time to do the upgrade.
Once MKR holders do pull that trigger the process leaves more questions than answers. Apparently there is a global setting built into the contract that allows for an Emergency Shutdown. Maker describes the process as follows:
What happens during an Emergency Shutdown?
- Emergency Shutdown is activated: If MKR voters believe that the system is subject to a high-severity attack, or if an Emergency Shutdown is scheduled as part of a technical upgrade, they can activate an Emergency Shutdown. This locks the system, freezing the DSR, stopping Vault creation and the ability to generate Dai, and locally freezes the Reference Prices. Vault owners can immediately withdraw excess collateral.
- Cooldown Period: After Emergency Shutdown is activated, a time period is needed to allow any ongoing collateral auctions to conclude. Once all collateral auctions finish, the system can calculate the distribution of collateral to remaining Dai in circulation.
- Dai owners claim collateral: Each Dai holder can redeem their Dai directly for a fixed amount of collateral.
The writing is a bit convoluted, but the process seems relatively straight-forward. Everything gets paused and people are only allowed to redeem their outstanding DAI (now SAI) for some portion of the collateral (ETH) that I put back in, at a rate that MKR holders decide when freezing the system, any unencumbered ETH in the pool can be withdrawn whenever. I’m still curious to understand more about how and where they may give me a final market for SAI/USD and if I would lose any ETH (in USD value) as a result, so I click around to find more info, and am met with this:
After having my brain melted by that diagram, which I later learned was not how the wind down process would work for MakerDEATH but actually how MCD Maker is supposed to work, I gave up and decided to move my 2 DAI from my MakerDEATH account to another address to make sure that nothing funny happened. This 3rd address became “SAI HODLer”. You can follow along here.
In preparation for my move to MCD, I’ve also decided to convert some PAX stablecoin that I had floating around in my PTK activities into BAT, the new token which will be acceptable collateral after the upgrade, so that could be used to collateralise my MCD Vault (formerly CDP). I decided to look around to figure out if any DEX has direct activity on BATPAX pairs, but came up short, went to Uniswap (more info in the appendix) and setup a trade for 5 PAX (~$5). As PAX apparently does not trade much on decentralised exchanges I was hit with warnings that I could expect up to 20% slippage on my trade, and warned about being front-run. I decided to accept such risks for the sake of decentralisation and sent a trade for an estimated 15 BAT.
While waiting for the trade to go through, one thing that came to mind was that for my original ~$5 of ETH backed old CDP, that I hoped to swap to BAT CDP after the move over, is that I now own $10 of collateral ($5 ETH and BAT). It’s only temporary, but anyone looking to swap CDP collateral in the future will face a similar balance sheet expansion while they do the swap. I also learned from someone on the Maker team that Vaults only hold a single token type, meaning that a vault cannot manage both ETH and BAT. The reasons hint towards the more cleaner ability to manage each Vault. The downside is that you get zero netting effect of holding multiple assets.
What this means in non-banker, is that often you hold a portfolio of assets and when one goes down, the other goes up. As the combined volatility is hopefully less than each component, you should have reduced risk, and your Vault wouldn’t be closed. That’s not the case here, so while your BAT+ETH vault together wouldn’t have been shutdown if BAT drops and ETH goes up, here your BAT Vault gets closed down, and you only have the ETH one left.
While waiting for MCD to open up I conversed on Twitter with the team and they suggested an approach of tokenising my portfolio of ETH and BAT as a single ERC20 token then submit that to their risk management team.
UniSwap transaction done, now I am left with 15 BAT for my 5 PAX. I check online to find that my 15 BAT is worth… just under $4.
But now it’s time to start moving MakerMCD over in the migration, so I headed over to the special web app setup by Maker to guide me through the process. Eager to try out the process and be amongst the first to have new DAI, I setup my itty-bitty CDP in their tool and am met with a warning about my CDP being under the limit to convert.
I looked around a bit online and couldn’t find any information about a 20 DAI minimum in their official guide, so I join their Telegram group to see if anyone is in a similar situation. Upon arrival, and only a few minutes into the switch, I find their group drowning in celebratory animations harking back to mental images of George W Bush on an aircraft carrier, I do find one person with a similar issue.
Kathleen arrives with what may be some potentially info:
Checking out her website, it appears that there is a maximum envelope for SAI converted to DAI, but no information for my mini-CDP. So having understood from the Maker team that in all cases I would need to setup a new Vault (formerly CDP) for my BAT tokens, which I overpaid for, I decided to try that while I waited for any more information. Following the migration, all management of MCD Vaults are moved to a new website, Oasis.app. Why? I don’t know. But here it is:
And because it is a new website, I need to give new authorisations, and permissions, and send more things to the blockchain to activate the same tokens that I had before. A few more cents in transaction fees, but now I was good to setup a BAT backed Vault and get BAT backed DAI. Or so I thought…
Seeing these warnings about 20 DAI minimum, my warning when trying to grandfather in my old CDP made sense. So I decided to go back to Telegram to find out more.
Coulter from Maker quickly responded and confirmed what I knew, and also hinted that there is probably a gaping attack vector with small Vaults that are too expensive to clean up, I don’t know for sure either way, so let’s just agree to call that FUD for now and move on. But now I was stuck not having enough ETH in a wallet, and not wanting to challenge my nocoiner cred any further, I did what anyone in my position would do, I begged the internet for more magic beans, quickly finding a generous benefactor who thought my Tweets about my CDP issues were funny and sent me $20 of ETH to keep it up.
I went back to the old CDP portal, added more ETH (which required more money spent on transactions and the PETH/ETH premium) and pulled out more DAI to make me no longer a small DAI fish. I then headed back to the migration app and fought with the migration website because MetaMask wasn’t showing me yet-more authorisations that I needed to agree to, and getting snarky IT help from Dan in the Maker Telegram (for the record I restarted my PC and it worked, screw you Dan!):
I could see the light at the end of the tunnel
Because Maker has a MKR token that they needed to put to use in order to make bag holders wealthy, fees for managing a CDP/Vault are paid in that. During the migration you need to pay them back, I didn’t have any but they gave me the option of letting them do it for me and paying in DAI. So I made the payment for an amount of MKR owed that was too small to show up on their UI.
A few failed transactions because I skimped on the transaction fees, several minutes later, a wife that was getting frustrated with me playing with the magical internet loan shark and we had great news!
Here’s a look at the shiny new front end for my newly converted CDP… er Vault.
So despite doing all that, I now have a MCD Vault that manages SAI, apparently that need separate upgrade, and surprise I need to give more authorisation to more things. Otherwise the upgrade process for SAI to DAI was pretty straightforward and quick once I got to that point.
Having accomplished that, I had only to unlock more things, and pay yet more transaction fees to the blockchain, but I was there, history made, Vault manager #536.
Whew! That was a trip. In conclusion, while it took significantly longer than the 30 minutes that Maker’s migration guide had promised (lol), and included no explanations about the 20 DAI gotcha, nor a guide begging for money on the internet, the overall process was actually pretty smooth and well designed from a UX point of view.
I definitely made a lot of superfluous transactions, including buying BAT that I couldn’t end up using, but I was curious what this whole endeavour cost me. Fortunately, Ethereum keeps pretty decent records of these things:
So said, and done, my journey to put myself into ~$22 in ETH backed indebtedness worked out to be roughly $4.75. In addition, I will owe about 4% APR on holding this position open, but rates can be changed according to the rate set by MKR holders. In addition unwinding this process will require further transaction fees, and I will continue to be exposed to the price of ETH (and BAT).
Despite the relatively smooth migration process, there are still a lot of unknowns, and I still shudder to think that people shill this as a means to guard one’s life savings. It is a fantastic experiment in economics, governance and technology, but let’s appreciate it in that light. Going forward hopefully Maker, or something like Maker is ready for prime time.
Veni, Vidi, FUDi.