Last month, we upgraded our wallet infrastructure that handles Bitcoin transactions, which delivered major improvements to our customers. This was the completion of a year-long effort to support new cryptocurrencies, improve customer experience, and adopt best practices for network usage. We wanted to share more about our overall wallet infrastructure project and the decisions made along the way.

Our team custom-built the first Gemini wallet — a safe, secure wallet and signing infrastructure — around market conditions in 2014. As the market evolved so did our needs: we needed software capable of supporting a fee market, multiple networks, and multiple cryptocurrencies.

We sought out new tools and partnered with Chris Stewart, the developer of bitcoin-s, to add support for each of our target cryptocurrencies. In 2018, we launched support for Zcash, Litecoin, and Bitcoin Cash using a more robust, modernized crypto wallet infrastructure.

After debuting these new cryptocurrencies on Gemini, we turned our focus to migrating Bitcoin.

As part of the upgrades this year, we introduced support for Segregated Witness (SegWit) addresses and transaction batching. As our customers may have noticed this means that SegWit addresses — which begin with bc1 — can now be used for Bitcoin deposits and withdrawals. Both of these improvements required end-to-end integration through our online and offline signing systems (along with many other efforts).

Our decisions about SegWit and batching were not made lightly. Building trust in cryptocurrencies as an asset class — and in Gemini as a platform — motivates every product choice we make. This is especially true of changes that affect our end customer’s experience, as these wallet updates do.

Understanding SegWit

The SegWit protocol update, which activated in late 2017, changed the way information is stored and processed on the Bitcoin blockchain.

SegWit allows digital signature information to be stored separately (or segregated) from its transaction data. Without signatures, Bitcoin transactions weigh around 30–40 percent less, thus taking up less “block space” on the network and reducing the transaction fee. As block space is limited, any decrease in transaction size allows for more transactions per block and greater overall throughput in the network.

Our choice to use native SegWit addresses was based on block space savings as well as safety concerns. Specifically, native SegWit addresses work only on the Bitcoin blockchain — they do not work for other cryptocurrencies. On the other hand, however, cryptocurrencies other than bitcoin can be sent to a legacy (non-native SegWit) address, which can cause loss of funds. Some other Bitcoin exchanges and custodians have offered partial SegWit support (withdrawals and legacy P2SH-style addresses) since early 2018, but Gemini is the first major exchange to launch full support of SegWit, complete with native SegWit deposit addresses. We think it’s the right time to make this change, though there will still be some growing pains. Notably, while some block explorers are capable of tracking native SegWit addresses, the support varies widely from one solution to another.

These considerations, among many others, factored into Gemini’s decisions about when and how to launch SegWit support.

Realizing the Benefits

Our team views SegWit as a positive step forward for crypto and the broader future of money. As SegWit’s use, support, and adoption grows, it will help reduce fees, wait times, and network congestion. Critically, SegWit transactions lay the groundwork for more advanced technologies; of which the Lightning network is the most well known.

We believe SegWit will become the standard, and in doing so, will create extensive benefits for all participants on the Bitcoin network.

Given the level of community adoption — and ecosystem support — we now recommend that all Gemini customers move to using SegWit addresses. After extensive testing and development, we know that launching SegWit support is the right decision for our customers at the right time. Start using SegWit addresses (or click here to make one) to support our mission and our commitment to building a better Bitcoin experience and the future of money.

Onwards and Upwards,

Brian KimJohnson, Software Engineer