Why We Didn’t Fork MetaMask
Forking MetaMask’s code would have been the easy path. But the easy option isn’t always the right one.
When we began work on Tally Ho at the end of 2020, we thought long and hard about whether we could fork MetaMask. Copying – or forking – MetaMask’s code would have been the easy path. It would have saved months of painstaking developer effort and set us up to launch in a matter of a few months.
But the easy option isn’t always the right one and we decided on a different direction. Here’s why:
The MetaMask codebase is six years old. Forking it would have meant copying six-year-old design decisions and importing six years of technical debt.
Instead, our developers have spent the past year painstakingly constructing Tally Ho from scratch. It’s been a long haul, but it was the right call. Unburdened by technical debt, we’ve been able to build what we knew web3 needed: a pristine, security-first codebase that belongs entirely to its users. And with that foundation in place, we’re now able to move at a pace we never imagined possible to expand web3’s only community-owned wallet.
A web3 wallet that belongs to everyone
This brings us to the question of openness – a central tenet of our thinking from the start.
In 2020, MetaMask ceased to be open-source and adopted what it called a “tiered proprietary license” that limits how people can use its code. This caused issues for projects that leveraged MetaMask code, as evidenced by a memorably testy exchange with the creators of Brave, who were required to “fork off” of the wallet as a result of the licensing change. It also meant that the open-source developers who contributed to MetaMask (thinking they were helping give back to the Ethereum commons), suddenly found their work behind a proprietary license.
We knew the only way to keep our community clear of embroilments was to start fresh; and that the only way to make sure Tally Ho stayed open source for good was to use the GPLv3 license. GPLv3 essentially means that Tally Ho will stay open-source and community-controlled for good and that any project that forks our code must be open-source.
In other words, we built Tally Ho from the ground up so that web3 will have a wallet that belongs – and will always belong – to the community. No strings attached.
A security-first wallet for web3
Now we come to the most important reason for not forking MetaMask: we wanted to make sure we had the fewest possible limitations on what we – and others – will be able to build in the future. Despite the ubiquity of MetaMask, its codebase is notoriously unwieldy, with cryptography that’s difficult to audit.
If a project is difficult to audit, vulnerabilities – specifically key security vulnerabilities – can often go undetected, putting user funds at risk. At Tally Ho, we decided early on that it was crucial to carry out regular and rigorous audits in order to provide the safest and cleanest codebase possible. We passed our first hd-keyring from Least Authority with relatively flying colors. We’ve also had two additional audits of our token contracts, which will be published soon.
Aside from our commitment to transparency, we have put in place other functionality to help our community keep their funds safe:
- Users can add read-only wallets into our browser extension, which means you can view assets in an account without being able to make transactions.
- Similarly, you can connect to dApps without unlocking your wallet’s keyring.
- You can also create 24-word recovery phrases to protect your assets.
- And you can import multiple recovery phrases for each account, so you can separate your assets into different sections, each recoverable with a different phrase.
A best-in-class Ledger integration
Our from-scratch approach left us free to engineer a best-in-class Ledger integration. Users will no longer have to contend with the notoriously problematic process of establishing a reliable link between a MetaMask and their Ledger.
Another benefit of building from the ground up is that we were able to lead the way and become the first wallet to add native support for Sign in with Ethereum. And our collaboration with Unstoppable Domains (UNS) allows wallet holders to use UNS domains to send and receive with a single, easily-readable name. (We also offer full ENS support!)
Coming soon: A next-gen multichain experience
Next up, we’ve got our sights on rebuilding the multichain experience (also from the ground up!).
DeFi is increasingly expanding into Layer 2 and a long tail of EVM chains. We’ve been committed from the start to creating UX that will make navigation between Polygon, Optimism, Arbitrum, and other networks fast and simple. Although these features aren’t live yet, you won’t have to wait long. Since we know cost and flexibility are of paramount importance to our community, we’ve broken our own personal records on development speed.
Think Hard and Build Things
Since day one, Tally Ho’s mission has been bold and simple: to build a community-owned wallet that serves users in the best way possible.
By building from the ground up, integrating lessons from the community, and slowing down and moving intentionally, we’ve laid the foundations for the safest, most flexible, and most user-friendly wallet out there. We hope developers will experiment, borrow, and blend elements of Tally Ho’s open-source code into other projects, making the ecosystem richer and safer for all.
The best part? Tally Ho is already live and most of its features are available to use today. If there are more tools you need, a dApp you want to be integrated, or a token you’d love to see in the wallet, head to Tally Ho’s Discord server and let us know.
And, of course, if you haven’t already, download the latest release of Tally Ho here.