Frank Chen

Frank Chen

a product deconstruction of the phantom wallet

Similar to the ENS domain service for Ethereum, one of the first things I wanted to do when exploring the Solana ecosystem was purchase a .sol address. It's not a mandatory thing to do, but it's easy. It's a course of action that interacts with the blockchain and the result is you own a little piece of your own identity on-chain.

getting started

Getting started on Phantom is pretty standard in the large scheme of web3 wallets. If you're familiar with seed phrases, all you have to do make sure to write your seed phrase down and proceed. If you somehow fuck up this step, you still can reveal your seed phrase in Phantom later.

If you're a more savvy user, you might want more security by integrating with a hardware wallet, which at the time of writing, is a feature that is yet to come.


The layout was simple and intuitive. There were five options in the bottom navigation bar. Account settings and wallet functions, collectibles, token swap, transaction activity, and application search.

  1. The top navigation bar held all the expected UI elements - "click" your address to copy, scan a QR code to send funds, and view your account settings. You had the lay of the land to name and rename your wallet, see your address, export your private key, show secret recovery phrase, and remove a wallet.
  2. Collectibles and airdrops were the second tab.
  3. Token swaps were the third tab. I wasn't quite sure why this was handy just yet, but it eventually became a delight later on when purchasing a .sol address.
  4. An activity feed of completed and pending transactions was the fourth tab.
  5. Of all the options, I found the fifth and final tab, application search, to be the most frustrating and useless portion of the wallet. It's essentially a Google search bar. I expected some kind of curated list of Solana applications in the ecosystem that were mobile-friendly.


Using the application felt "bubbly", crisp, and responsive. It felt like a high-quality application. I trusted what I saw and the overall simplicity played to my preference for minimal applications. There weren't any confusions around the CTAs for each section.

When purchasing my .sol address through Bonfida, it became immediately apparent why there was a built-in swap function in Phantom. There were 2-3 currency conversions that I had to make in order to buy my address, and the swap function made quick work of that.


There was an "initialization" period of time when I was first using the wallet. There was no clear on-ramp, so I had to buy Solana from a fiat on-ramp, and then transfer it to my wallet. Even after transferring, I wasn't quite sure what to do with my mobile wallet. Actually interacting with a Solana dApp using only the mobile wallet was functionally disconnected. I didn't know where to start, especially with the weird "Google app search" experience.

The Chrome extension relieved me of that frustration, and provided a very similar, if not exact experience. This way, I could explore the Solana ecosystem through my laptop browser, and applications that had integrated with Phantom would prompt the Chrome extension. This was a much better and predictable experience. Perhaps I preferred a larger screen too.

However, this left it so that I was performing the majority of my .sol address purchasing experience in my browser, and really leaving the mobile wallet as an "after the fact" kind of showcase. This meant that the wallet wasn't providing much value except knowing that the Chrome extension and mobile wallet were synced.

recap, gotchas, expectations

The good:

  1. The Phantom wallet is easy to setup. Seed phrase and go.
  2. The mobile wallet was beautiful and snappy. Interacting was a delight. It's a wallet that I wanted to use.
  3. Intuitive swap function, great activity feed to see and confirm transactions.


  1. The one thing that some people might get confused about is the ability for your seed phrase to derive multiple wallets that can be recovered by that one seed phrase. I realize that this is more advanced knowledge that a novice might not understand, especially if they don't understand private and public keys.

  2. Anytime a seed phrase is generated by an application on a hot device connected to the internet, there's some degree of assumed trust in the application and your device. Security aficionados prefer to generate their seed phrases in a cold, offline device. Again, this is a little more advanced and beginners may duck out.

  3. Phantom isn't open source. This wouldn't cause any crypto-beginners to necessarily drop out, but for open source supporters or developers who want to understand the security and code, this may inhibit them from doing so.


  1. No fiat on-ramp options forces me to go off the wallet and come back later when I have funds to use it. The onboarding experience is therefore limited to when I can withdraw SOL from a centralized exchange. One way to sidestep that is to use a DEX and other crypto assets and wallets to make a transfer, but we're still talking about onboarding beginner users right?
  2. The mobile application search was horrendous. I quit using search before I even found an application to connect to.
  3. Based on the two experiences above, Phantom isn't really a good "onboarding" experience, despite being a decent wallet. I'll explain below.

A wallet can just be a method of transferring assets, but building an engaging onboarding experience would most likely prevent several of the dead-stops I experienced. Most users probably would start at the application services level and discover that Phantom is a good choice to let them get access to certain decentralized applications. It's then up to Phantom to 1. be delightful but also 2. universally make it easy for users to interact with the Solana dApp ecosystem.

So, what are the biggest barriers to making a smooth wallet experience?

  1. Fiat on-ramps - most wallets aren't order books. I had to go to Coinbase to fund my Phantom wallet. I couldn't transfer my assets for a period of time, and so "getting started" actually took a couple of a days. Even if I had used a decentralized exchange, "getting started" now means I needed prior knowledge to actually get started.
  2. Identity - depending on the application that's being accessed, wallets are a form of identity. Different applications have varying levels of identification. Maybe you're looking to use the wallet as a burner, instead of "making it your own" and associating it to a readable .sol address and amassing collectibles. Because Phantom had a collectibles section, it's assumed that users would be more likely to "make it their own", but it's perfectly possible to keep generating burner addresses as well. I take pride in having a .sol name, as an example, and I would want to interact with dApps using that named identity.
  3. Mobile integration of applications - I haven't seen a good experience yet connecting a mobile dApp to a wallet on a mobile phone. The screen is too small, and copying addresses from the wallet to the dApp and back leaves room for error. The Phantom app search left me yearning for more. There's definitely potential there.