Hardware wallets — such as Ledger and Trezor — are popular among crypto whales and traders. They provide an additional safeguard for digital assets. But that extra layer of protection presents a challenge for Web3 developers — as hardware wallets do not have any built-in user interface for selecting, viewing, and switching accounts or networks.

Before now, if you wanted your product to support hardware wallets, you had to build a custom user interface from scratch. This takes serious time and effort.

Thankfully, those days are gone!

We are excited to introduce the latest update to Onboard.js — Blocknative’s open-source user onboarding framework. A new hardware wallet module makes it easy to add support for hardware wallets for users of your Web3 application.

Now any Ethereum project that requires hardware wallet support can easily deploy this functionality.

What are Hierarchical Wallets?

Hardware wallets like Ledger and Trezor are designed to support multiple blockchains and networks. They do this using hierarchical deterministic (HD) keys, which allow any number of addresses to be derived using a single seed phrase. Hardware wallets are HD wallets.

Onboard.js uses the most common practices for HD wallets to automatically derive Ethereum addresses. This means your users do not need to understand derivation paths and BIP32/BIP44 standards. They simply select the address, or balance, they want to use.

Users Simply Select The Wallet Or Balance They Wish To Use

This easy to use interface makes it easier to transact. And you can begin using this functionality today with just a few lines of code.

Easily Integrate Hardware Wallet Support

Developers can quickly get started with Onboard. You can configure Onboard to support hardware wallets by adding the following wallet details to the configuration object:

Once installed, users will be able to select either Ledger or Trezor as a wallet. When a user selects that, Onboard will display a wallet check module that directs users to:

plug in their hardware wallet

unlock it via the pin code,

select their account,

have the Ethereum app open on their device

wait while Onboard loads their accounts

That's it. With just a few lines of code, you can easily support hardware wallets in your Web3 project.