Usability in the crypto world (or my experience as an ICO participant)

Today, for the very first time, I decided to participate in an ICO. Taylor is an app that promises to help normal people, as well as seasoned traders, profit from crypto trading, through automation. Looks like a very interesting project, about which several in the community I respect are excited, so I decided to dip my toes into the world of ICO investing.

To participate in the Taylor ICO, you have to:

  1. Register.
  2. Inform them of the Ethereum address from which you will purchase your TAY tokens.
  3. Verify your identity through their KYC/AML process.

For the uninitiated, the above step 2 could be the first roadblock. You see, most ICO tokens actually live on the Ethereum network, as an Ethereum-compatible token created according to the “ERC20” standard. So to receive your ERC20 token (“TAY” in this case), you need an Ethereum wallet that provides a user interface to manage ERC20 tokens.

My two wallets, a Nano S hardware wallet and the Exodus desktop wallet for Mac, didn’t seem to support manually adding ERC20 tokens. I did find one, though, “Edge” for iOS, which does.

OK, using Edge, I need to add the TAY token to its Ethereum wallet. To do that, you need some information:

  1. The token name
  2. The token symbol
  3. The token’s “contract address” on the Ethereum network
  4. The number of decimal places (for whatever reason)

Unfortunately, the Taylor people didn’t expect folks on the website to need this information. Fortunately, they did expect that people on Twitter would.

So, after adding the TAY coin to the Ethereum wallet in Edge, I’m ready to purchase some TAY (YAY!). But just above the QR code that you scan to send off some Ether, there’s this ominous warning:

Gwei

This is where some significant knowledge and technical assumptions are being made (you need to understand what gas price is, and have the ability to manage it), and a very narrow gate is being put up for your everyday Ethereum user. The “gas price” relates to the fee that is going to be added to your transaction to incentivize Ethereum miners to process the transaction. It’s also something 99% of all Ethereum users don’t think about when sending transactions.

Fortunately, my Edge wallet has a “Change Mining Fee” action item, in which we find three options: High, Standard and Low.

Well, I tried all three, and all three transactions were rejected with a “ran out of gas” error. Ran. Out. Of. Gas. WTF?

Fortunately, again, the Edge wallet also provides a “Set Custom Mining Fee” button, and so I set off to create a new transactions with the price bumped up close to the warned limit of 50 Gwei (whatever a Gwei is).

So here’s what the Set Custom Mining Fee screen looks like:

Fees

See any problem here? THERE ARE NO UNITS DISPLAYED!

Well, since the good people at Taylor said not to exceed a price of 50 “Gwei”, I’m assuming that Gwei must be the standard unit, and so I type in “40” (just to be on the safe side) as the Gas Price, and fire off my transaction.

Waiting a few minutes, I go to Etherscan, to check on the status of my transaction, and see that it’s expected to be processed…

“In a very long time…” Sigh.

And on that same transaction status screen, I see that the fee I set on the transaction was 0.00000004 Gwei, or about $0.000001. So as it turns out, the price unit in Edge is “Wei”, and a “Gwei” is 109 Weis—that’s nine zeros!—which means that instead of typing “40” into Edge, I should have typed the very-error-prone number, “40000000000”.

Heavy, heavy sigh.

OK. So I configure another transaction—the fifth of the day!—carefully typing in all those zeros, and sent it off. I then waited a while, checked the transaction, and see this error:

“There is an earlier pending transaction in the network, that must process first before this one.”

OMG.

So before my correctly configured transaction can process, my near-zero-fee transaction has to process first, which is expected to complete in…that’s right, “A Very Long Time”.

Head off to Google. “Can I cancel an Ethereum transaction?”

Turns out you can not. What you can do though, is re-broadcast a new transaction using the same “nonce” (whatever that is), with a higher fee. The miners will see both, and pickup the higher-fee transaction, discarding the other.

So that’s a solution, but unfortunately the Edge wallet doesn’t provide the UI necessary to modify the “nonce” of a transaction.

I could ask Taylor to whitelist a new Ethereum address, so I could start over from a new wallet. But the problem there is that eventually these two pending transactions will/might get processed from an address perhaps no longer associated to me. And if I do nothing, by the time these transactions process, the ICO might be over.

So I guess I’m screwed. But here’s the point of all this…

If you’re reading this, and actually understand what happened, chances are you’re (a) more technically involved in this space than me, and (b) snickering because this is something that’d never happen to you.

But here’s the thing. you probably are more technically involved than me. But, I know enough to have developed a Ruby-based software application that does my trading over APIs, which makes me more technically involved than 99{ad274ad889bc1e297d0fa7a0471c34c41541cb748ff9f79b10160b1d4544149a} of the mainstream out there who we need involved in this space if this industry is going to grow and prosper.

And for that to happen, things like empathy, usability and user experience design have to become priorities of those early creators in this space, such as wallet makers like Edge (who, to be honest, have created an overall really nice UI/UX), builders of applications, as well organizations running ICOs.

If you agree with that, then help sound the trumpet for usability whenever you can!

(By the way, if you’ve done your diligence, are interested in the Smart Taylor ICO and feel some sympathy for me 🙂 you might signup using my referral link.)

Update:

The CEO of Taylor contacted me, and let me know that with MyCrypto or MyEtherWallet, I could access the Edge wallet (using its seed), and then create an offline transaction with the same nonce, and broadcast it. The details are documented here. I used MyCrypto to try it, and it worked!

Leave a Reply

Your email address will not be published. Required fields are marked *