← Writing

Three months on-chain

In early March I bought my first crypto, moved it into a wallet I control and made my first swap on a decentralised exchange, all in one afternoon. Three months later I own a sliver of a rented house near Detroit and have learned what gas costs. What the first quarter on Ethereum taught me, with the screenshots.

My hand holding the dark blue box of a Crypto.com MCO Visa card, in March 2020.

Three months ago, in early March, I went on-chain for the first time. In one afternoon I topped up a crypto app from my bank account, bought ether and DAI, moved them into a wallet that only I control, and swapped one for the other on a decentralised exchange. Since then I have lived through a crash, bought a share of a house on another continent and received my first rent in a dollar token, and paid for most of my mistakes in gas. I want to write it down while I still remember what it was like not to know any of it.

One afternoon

The plan was simple, and it took the whole afternoon. First, money had to leave the banking system. In Singapore that meant Xfers, a licensed payment company that holds Singapore dollars for crypto apps: you send a bank transfer with your phone number as the reference, and it credits your account. My account had only been verified the day before. The top-up took almost two hours to arrive, because I had sent two requests and confused it. Crypto.com had only connected Xfers to its app in December [1].

A tall stack of textbooks on a ledge: English writing and skills, algebraic and geometric methods in statistics, modern history, introductory statistics, physics, and understanding circuits and op-amps.
What I was supposed to be reading that afternoon.

Second, the money became crypto, inside the Crypto.com app, which also came with a prepaid Visa card. I almost bought my first DAI, a dollar-pegged token, with my bank card. Then I learned that buying with a card adds a fee of 3.5% [2], and that buying with money already sitting in the app’s fiat wallet, topped up through Xfers, does not. The first lesson of the day was that the route matters as much as the price.

The Crypto.com app's Buy DAI screen in March 2020: a Low Volume Token warning and payment by saved credit card. The amounts and card number are blurred. A brand new Trust Wallet, Multi-Coin Wallet 1, in March 2020: US$0.00, with zero Ethereum, zero Bitcoin and zero BNB.
About to buy DAI by card, before I knew about the fee; then my first self-custody wallet, still empty. Amounts blurred.

Third, the coins had to leave the exchange. I installed Trust Wallet, wrote down the twelve recovery words it gave me, and found out what an address is: the long string under “Ethereum” was the only thing anyone needed to send me money. I withdrew my ETH from the app to that address, opened the browser inside the wallet, found Kyber Swap, and swapped some of it into DAI; Trust Wallet’s swaps run on Kyber’s liquidity [3]. The transaction sat pending for a while, and then it was done.

Doing it for real felt very different from reading about it. That evening I looked up how many people had ever done the same. Ethereum had around 89 million addresses in total, of which only a couple of hundred thousand were active on a given day [4].

The crash

Nine days later came what everyone now calls Black Thursday. On 12 March, as markets everywhere fell on the pandemic, ETH lost 43% of its price in a day, from $194 to $111 [5]. The network was so congested that MakerDAO’s liquidation auctions, which sell the ETH behind under-collateralised DAI loans, ran with almost no bidders, and more than $8 million of ETH was sold for zero DAI [5]. MakerDAO’s own post-mortem counts about 1,200 vaults liquidated and a shortfall of about 5.4 million DAI, while DAI itself briefly traded as high as $1.13 [6].

It taught me that the system I had just joined has its own ways of breaking. The DAI I held was not backed by a bank but by ETH locked in vaults, and when ETH fell faster than the vaults could be liquidated, the protocol behind DAI ended up short. Within a week, MakerDAO was auctioning newly created MKR tokens to cover the hole [6]. I had read the DAI white paper on the evening of my first swap. I understood it much better after that week.

A house near Detroit

In May I bought my first real-world asset on Ethereum. RealT sells tokens that each represent a share of a company owning one rented house in the United States; the rent, after costs, is paid to token holders every day in DAI [7]. I did the identity check, paid in DAI, and soon a token for a house on Andover Drive, on the edge of Detroit, appeared in my wallet. A few days later the first rent arrived. It was a few cents, and I was absurdly happy about it.

RealT's home page on 21 May 2020: unique tokens; property managed; LLC owned, since real estate can't be tokenized directly but legal entities can; daily rent payments in a US-dollar stablecoin sent to the wallet that owns the RealToken; and a diagram of rent flowing from the tenant through management to RealToken owners.
How RealT explained itself that week: a company per house, and rent every day in a dollar token [7].
Trust Wallet showing an ERC-20 token named REALTOKEN-25097-ANDOVER-DR-DEARBORN-MI. The quantity is blurred.
May: a sliver of a rented house, as an ERC-20 token.

It is a strange and wonderful thing: a house on the other side of the world, a legal wrapper, and a token that pays me rent every few days. It is also a lesson in what is on-chain and what is not. The token and the rent are on Ethereum. The house, the tenant, the property manager and the company that owns the house are not, and the token is only as good as all of them.

The price of a transaction

By the end of May, the thing I thought about most was not prices but gas. Every Ethereum transaction pays for the computation it uses, in units of gas, at a price per unit that rises when the network is busy. The fee in dollars is

fee=g×pgas×PETH

where g is the gas a transaction uses, pgas the price per unit in ether, and PETH the price of ether. None of the three depends on how much money is being moved, so as a share of a small transfer, the fee can be large:

feeamount=gpgasPETHamount

I found out the hard way. When I reconciled my accounts at the end of May I discovered that a small DAI transfer earlier in the month had cost me a couple of percent of its value in ETH for gas, because I had not yet learned to check the gas price before sending. That week the network’s average gas price was between 33 and 49 gwei and the average transaction cost about 50 cents [8]; I had simply offered far more per unit of gas than I needed to.

ETH Gas Station in May 2020: recommended gas prices of 30 gwei fast, about $0.13 per transfer; 20 gwei standard, about $0.09; 16.6 gwei safe low, about $0.07; and a leaderboard of the contracts that spent the most ETH on gas in the last 30 days, led by Tether USD.
Gas prices in May, the month I learned to check them first.

Gas even changed how often I got paid. RealT announced in May that because the network had become congested, it would pay rent every three days instead of every day, since sending thousands of tiny payments daily cost too large a share of the rent itself.

RealT's update of 16 May 2020, titled Gas + Rent: Ethereum has become increasingly congested; average gwei transactions have ramped up to between 25 and 40 gwei; while gas prices are high, RealT will distribute rent every 3 days instead of every 24 hours, because the cost of sending out rent is too large a percentage of the amount being paid out.
RealT's notice to token holders on 16 May.

And gas changed what I bought. Last week I wanted to swap some ETH into MKR, decided the gas was too expensive and waited. On Friday, Coinbase announced it would list MKR on Coinbase Pro [9], and MKR jumped by about half in two days, from around $340 to over $500 [10]. Waiting for cheap gas cost me far more than the gas would have.

What I’ve learned

First, learn the route before the price. A card fee of a few percent, a top-up that takes two hours, a transfer that costs two percent in gas: at my size, the plumbing costs more than any difference in price.

Second, a wallet is just an address and twelve words. Everything else, the app, the exchange, the browser, is a convenience layered on top.

Third, something on-chain is only as good as what stands behind it. DAI was backed by ETH and broke when ETH broke. My house token is backed by a house, a company and a tenant, none of which live on Ethereum.

Fourth, a fixed fee punishes small amounts. I have a small amount. I will have to be patient, batch my transactions, and check the gas price every single time.

References

  1. Crowdfund Insider. Crypto.com now allowing Singapore users to buy, sell crypto in SGD instantly with Xfers wallet. December 2019. crowdfundinsider.com.
  2. Crypto.com. Crypto.com waives 3.5% credit card fee for crypto purchases. PR Newswire, 2 April 2020. prnewswire.co.uk.
  3. Trust Wallet. Trust Wallet launches multi-DEX with Kyber Network support. Trust Wallet community. Archived copy: community.trustwallet.com.
  4. Etherscan. Ethereum unique addresses and daily active addresses, March 2020. Unique addresses, active addresses.
  5. Glassnode. What really happened to MakerDAO? 17 March 2020. research.glassnode.com.
  6. MakerDAO. The market collapse of March 12–13, 2020: how it impacted MakerDAO. 1 April 2020. Archived copy: blog.makerdao.com.
  7. RealT. Home page and FAQ, May 2020. Archived copies: home page, 21 May 2020; FAQ, 29 May 2020.
  8. Etherscan. Daily average gas price and average transaction fee. Gas price, transaction fee.
  9. Coinbase. Maker (MKR) is launching on Coinbase Pro. 29 May 2020. blog.coinbase.com.
  10. CoinMarketCap. Maker historical data, May 2020. coinmarketcap.com.

More writing →