Ditch Metamask, try Frame | Crypto
It's time to pick software that actually works with your hardware
Once upon a time, Metamask was an ok crypto browser extension:
it allowed you to interact with the Ethereum network
it served as a crypto wallet
it’s been the default software used by many to interact with DeFi protocols
Sure, the project is not without growing pains (a), but overall it did a good job introducing folks to crypto.
I think now it’s time for a change.
Introducing an alternative: Frame
Frame is a pretty new Metamask alternative (currently in Beta, so expect some bugs) that’s available for Windows, MacOS and Linux. Importantly, Frame is a desktop app first, a Chrome/Firefox extension second.
It integrates with both Ledger and Trezor, with no need for the Ledger Live app to be open (in fact, you should close it to avoid interference!)
It supports seamless switching between
Ethereum Mainnet
Optimism
Arbitrum
Polygon
xDai
more…
While it’s a native app, it does have a Chrome and Firefox web extension. The purpose of the extension is really just to allow for website → native app integration.
This is a stop-gap solution until websites integrate Frame natively (as they do with the Metamask wallet)
So how do you connect Frame to a hardware wallet?
The process is really simple. Assuming you installed the app:
Step 1, make sure your Ledger/Trezor is connected to your computer and that it’s unlocked, with the ETH app open and with “contract data” allowed (you can do that in the app settings)
Step 2, make sure your Ledger Live App or Trezor equivalent is closed.
Step 3, simply click the button to add a new account:
Step 4, you should see something like the following. This is a list of addresses on your hardware wallet. Now simply select the ones you want to import / interact with.
Caveats for Step 4
Caveat 1. When you click the “+” button, if you don’t see a list of addresses for your hardware wallet, that means the software, for whatever reason, did not recognize that you connected your device to your computer via USB. Try to
reconnect the wallet
make sure all apps that interact with your hardware wallet except Frame is closed (e.g Ledger Live)
reboot your device
check out the Frame discord if nothing worked
Caveat 2. If you do see a list of addresses, but you don’t see the address with your funds in it, your address might be on a different derivation path. To change derivation path, simply go to the main app screen and click the gear-like button in the top right corner for settings. Then click on the button corresponding to your hardware wallet to change the derivation path (for Ledger devices, this probably is “Legacy”)
To return to the main app screen after selecting your derivation path, simply click on the top-left green looking button:
From here, simply go back to Step 3 and you should now be able to select the address with the right funds.
Step 5. At this point, you should be seeing the address you selected in Step 4 here:
If you selected multiple addresses, you should be seeing multiple entries here. To get to the main app page, simply click on the “up arrow”.
Step 6 - Verify integration with your hardware wallet. Now, from the main app window, scroll to the very bottom and click verify address on device. This step is critical ⚠️ to ensure everything is working correctly:
Once you click on that button, your Ledger / Trezor should ask you to confirm the address you see on Frame is the same as the one on your hardware wallet. If it is, simply confirm on your hardware wallet, and check for the green confirmation on Frame:
Step 7, install the Chrome or Firefox web extension.
Step 8, disable Metamask, as it would interfere with Frame.
Step 9, when on a Web3 website (e.g Uniswap), simply click on “Appear as Metamask instead”
Step 10, now the Web3 app should ask for your permission to connect to your hardware wallet (a Frame window should pop up). Simply click “Approve”. Now you should be logged into the app.
Step 11, remember that now every interaction will first display on the Frame app, then when you approve the transaction (for example, to swap on Uniswap), you will need a final confirmation on your hardware device! Without this confirmation, the transaction won’t be approved.
More details
Gas fees. If some time passes between the time you initiate a transaction and the time you look at the Frame window, it’s highly likely the GAS fees will have updated in and Frame will ask you if you want to accept the new fees or not:
The gas fee estimation on Frame is among the best I’ve seen. You should probably take its advice.
Shortcuts. In the options, you can select a quick shortcut that will display the main Frame page:
Life improvement options. You should probably enable all of these:
FAQ on Frame
Does it work only with hardware wallets? No, it supports a wide variety of wallets (with probably more to come). Since the software is in beta (at time of writing), I would suggest to not use its software wallet for any significant amount of money, as there might be bugs. Using it with hardware wallets is much safer.
From the main page, how do I go back to add more accounts/addresses? It’s a bit counter-intuitive, but from the main page simply click on the account arrow. This will bring up the screen from Step 5.
How do I enable L2 networks? Click on the “broadcast” symbol
This will bring up a page where you can toggle any of the default ones or add a custom network:
How do I send tokens to a different address? Being a very new software, this is currently not supported, but it’s in the works.
Why Metamask is now garbage (especially for Ledger users)
ℹ️ Feel free to skip this section if you already know Metamask sucks
If you’re a responsable crypto user, you most certainly have a hardware wallet - I use Ledger
You might have noticed recently that connecting to Ledger via Metamask requires the Ledger Live app to act as a “bridge” between the browser and the hardware wallet.
I’m not here to cast blame. The problem could be in the browser, on the Ledger side or on the Metamask team. Regardless of who thought this “solution” was a good way to go, the fact of the matter is: it’s a garbage implementation.
Why?
It requires a precise list of steps (almost an incantation) to make sure the Ledger connects OK with Metamask.
What’s the incantation?
Ledger Live app needs to be open (unlocked)
Ledger hardware needs to be open (unlocked)
Ledger Live app needs to be up-to-date
Ledger hardware needs to be up-to-date
The apps on the ledger need to be up-to-date
If you did update the ETH app (as an example), or the Ledger itself, you need to remember to re-enable the “contracts” permission (because it resets after each update and defaults to NOT ALLOWED)
You’ve done all that? Neat! Now you need to go on Metamask and, assuming you previously already connected your hardware wallet, you still need to 1) select your ledger account 2) click “connect hardware wallet” (yes, this is needed even if you don’t need to connect any other hardware wallet, this step is necessary to enable the “bridge” with the Ledger Live app)
We’re not done yet. Once you click on that button, a new tab will open, allowing you to select which hardware wallet you want to connect (ledger in this case):
Now, you need to wait for the Ledger Live app to ask for permission to open the bridge:
Then you need to go back to the Metamask tab (from step 8), and you need to be sure to see some addresses here (otherwise that means Metamask did not manage to connect to your Ledger!)
ℹ️ You don’t need to select an address here - unless this is the first time you connect your Ledger to Metamask. If you see your Ledger addresses here, it means the bridge worked. You can close this tab now.
You can now finally interact with your favorite DeFi protocols.
You might think this is not-so-bad. It’s fucking terrible, because if for some reason your…
computer sleeps or…
you disconnect your Ledger or…
your Ledger times out and you need to put in a PIN or…
the Ledger Live app times out, asking you for a password…
You will need to repeat steps 7-10 all over again!
Change log
None
Frame still has some quirks but definitely promising! I'm using it together with a Lattice1 and a Ledger Nano S. Integration of hw wallets is so much better than Metamask! And it is about time for metamask to have some competition :-)