The Rent is Too Damn High

Fees and Slippage and Such

Thomas Jay Rush
Coinmonks
Published in
6 min readAug 24, 2021

--

This is the first of a two part series describing my shock at how much it cost me to swap my own money for my own money using MetaMask. This article describes how we used TrueBlocks to figure out what happened. Click here for Part II.

Yes, Dear…

My wife spent her entire career as an investment consultant for institutional investors. She spent a lot of time investigating the all-in costs, including “hidden” costs associated with moving her client’s money from one investment vehicle to another. Her clients spent a lot of money moving money — typically more than they knew.

She’s recently become very interested in DeFi and Blockchain, so every time I tell her about having done something on Ethereum, she pulls out her trusty HP 12 C Financial Calculator…

HP 12 C Financial Calculator

and like Stephen Colbert with her fingers flopping…

she says —“you paid XYZ basis points for that transaction.” I love her, don’t get me wrong, but enough already! What the hell even is a basis point?

In my mind, I just say, “How much could it possibly cost?” and push the button to complete the transaction.

How Much Did That Cost?

The other day I swapped five (5.0000) wrapped Ether (wETH) for DAI because I needed to pay some dude some cash for some shit (don’t ask, it’s none of your business).

I used MetaMask’s built-in Swap functionality because it’s so easy to use, and because I didn’t feel like going to UniSwap and logging in. I figured what’s a little slippage here, a little slippage there…

My wife was out shopping…

It took me 20 seconds. I pushed a few buttons, confirmed a few settings, and soon MetaMask sent 5.00 wETH out and 16,003.45 DAI came back. It was like magic.

My wife’s trusty HP 12 C was sitting beside me on the desk, so I picked it up and divided $16,003.45 by 5.000 to get what was effectively the price of Ether in dollars at that moment: $3,200.69 US dollars per Ether. That seemed about right. I had checked the price of Ether earlier in the day, and it wasn’t too far off. In fact, the US dollar price had gone up.

All good. Transaction completed.

How Much Did That Cost?

This morning, I woke up and was working on TrueBlocks, my project that helps me figure out where all my money is.

As I do each morning, I first checked that the TrueBlocks indexer code was working. (It was.) And then I looked at my account. The transaction I had sent a couple of days earlier was there.

I was stunned to learn that I had paid approximately $200.00 US dollars for the transfer. $200.00 US dollars! —that’s real money — not some phony-ass bits-and-bytes money. Real money.

I had converted my own money (wETH) into my own money (DAI) and sent it to my own self, and it costs me $200.00 friggen’ US dollars. What the hell? That can’t be right. There must be a bug in TrueBlocks.

Digging…

This is the way TrueBlocks normally shows me a transaction (this is the one in question). The values are in the number of native tokens held:

Transaction 13,071,849.239 according to TrueBlocks (in native tokens)

As shown above, the transaction was sent from TrueBlocks 2020 Wallet to the MetaMask Swap Router. There were three (3) ‘assets’ or ‘tokens’ involved in the transaction: ETH, DAI, and wETH (as you would expect given I was swapping wETH for DAI on the Ethereum network).

If you look carefully at each row, you’ll notice one of the helpful things with TrueBlocks is that it reconciles every asset every time its balances changes at every transaction with 18-decimal place accuracy.

The first row of the table shows that prior to the transaction, we had 38.220952 ETH in our wallet. We spent 0.004103 ETH on gas, therefore, we should have ended up with 38.216849 ETH at the end of the transaction —which is exactly what we did end up with (TrueBlocks having queried the chain for the balance). Thus, the green checkmark is displayed meaning this transfer of the asset ETH reconciled.

This reminds me of something my Dad said to me the day I got my first bank account: “Son,” he said, “banks are great, but always double check everything.” (He was overly formal with me when I was young — don’t get me started — also, now that I think about it, he seems to have been nearly as anal retentive as I am!) Each line, and therefore, each asset, reconciles.

You’ll notice, however, that in the above table, there is no connection between the three different assets. We know we swapped assets, but we really don’t have enough information to understand exactly what happened.

How Much Did That Cost?

TrueBlocks has long been able to reconcile the multiple assets that appear in transactions in their native tokens, but recently we implemented a new feature that allows us to show asset balances and transactions in US dollars. (Using a new field called spotPrice . That is, the price at the exact moment of the transaction.)

Very Important Note: The spotPrice is retrieved only from on-chain sources such as UniSwap and Maker. We use no APIs. This means no rate limiting. And this means we can price per block — not per minute or per hour or per day. Per block. A true spotPrice.

I immediately noticed something quite disturbing and finally came to understand my wife’s insistence that basis points matter.

Here’s the same transaction above priced in US dollars:

Transaction 13,071,849.239 as per TrueBlocks in the US dollar spotPrice

Suddenly, what was complicated and hidden when viewing in the native token became instantly understandable. I had sent myself $16,203.53 worth of wETH and had gotten back $16,003.45 worth of DAI. It took 20 seconds.

What happened to the missing $200.08? Nearly 125 basis points of my (and my wife’s) assets were gone.

I had sent my own money to my own self on my own computer, and it cost me $200.08?

Why is that? And where did that money go?

Digging Anally Retentively Deeper

Our readers may or may not be aware that TrueBlocks is not only an index scraper, but also a desktop application, and very importantly also a very capable command line tool for doing data analytics on any Ethereum addresses, including our own.

This article is already long enough, so we won’t go into detail of how we discovered exactly where the missing $200.08 went, but we’ve written about that exploration in a follow-on article.

Summary: MetaMask took nearly $150.00 and UniSwap, its liquidity providers, and miners took the other $50.00.

The rent is too damn high!

Support Our Work

If you like this article or you simply wish to support our work go to our GitCoin grant https://gitcoin.co/grants/184/trueblocks. Donate to the next matching round. We get the added benefit of a larger matching grant. Even small amounts have a big impact.

If you’d rather, feel free to send any token to our public Ethereum address at trueblocks.eth or 0xf503017d7baf7fbc0fff7492b751025c6a78179b.

Thanks for reading…clap below and share on Twitter.

Join Coinmonks Telegram Channel and learn about crypto trading and investing

Also, Read

--

--

Thomas Jay Rush
Coinmonks

Blockchain Enthusiast, Founder TrueBlocks, LLC and Philadelphia Ethereum Meetup, MS Computer Science UPenn