Client library to onboard users to web3 apps
MIT License
Published by aaronbarnardsound over 4 years ago
This release adds UniLogin wallet as a supported wallet. To add it to your project simply add an additional wallet initialization object:
const config = {
//... other config options
walletSelect: {
wallets: [
//... other wallets
{ walletName: 'unilogin' }
]
}
}
Also included in this release is a small change to the copy included in the "What is a Wallet" section and an option to customize that text. To customize the text, you can use the new optional explanation
parameter in the walletSelect
object:
const config = {
//... other config options
walletSelect: {
//... other wallet select options
explanation: "Explain what an Ethereum wallet is here..."
}
}
Changelog:
Published by aaronbarnardsound over 4 years ago
Just a small release to upgrade the internal SDK used for server communications to version 2. Also included in this release, hardware wallets have been enabled on Android devices.
Changelog:
Published by aaronbarnardsound over 4 years ago
This release adds a new wallet check module for hardware wallets that allow user's to select a derivation path from a list of common paths or input a custom path to access accounts on their hardware wallets:
To add this extra check to your app:
const config = {
//... other config options
walletCheck: [
{ checkName: "derivationPath" },
{ checkName: "accounts" },
{ checkName: "connect" },
{ checkName: "network" }
]
}
const onboard = Onboard(config)
Changelog:
Published by aaronbarnardsound over 4 years ago
This release adds support for Ledger wallets in Electron apps via an additional LedgerTransport
property on the Ledger initialization object. For Ledger to work on Electron apps it needs to use the node transport module.
So to get this working in your Electron app you will need to install the node transport module, require it and then pass it in when initializing Onboard:
const TransportNodeHid = require("@ledgerhq/hw-transport-node-hid").default;
const onboardConfig = {
// other config options...
wallets: [
// other wallets...
{
walletName: "ledger",
rpcUrl: `https://rinkeby.infura.io/v3/${infuraKey}`,
LedgerTransport: TransportNodeHid
}
]
}
A small UI enhancement is also included in this release which makes all modals disable window scrolling so that a user can't scroll below the modal.
Changelog:
Published by aaronbarnardsound over 4 years ago
This is a release to fix a bug that was introduced in version 1.3.4
which broke some mobile wallet providers.
Changelog:
Published by aaronbarnardsound over 4 years ago
This release has a collection of small enhancements and bug fixes. The design has been refined in the wallet select modal so that it is more clear when a wallet is currently selected. A bug with connecting to the Opera wallet has been fixed.
Changelog:
Published by aaronbarnardsound over 4 years ago
A small release to change the hardware wallet derivation paths to match common implementations.
Changelog:
Published by aaronbarnardsound over 4 years ago
A small release to update to the latest Blocknative SDK version which adds adds the ability to unsubscribe from a watched address.
Code has been updated in the balance
store where the current address is watched for confirmed transactions so that the previous address will be unwatched when the current address changes to avoid unnecessary messages from the server.
The lodash.debounce
dependency has also been removed as it is no longer needed due to backend improvements.
Changelog:
Published by aaronbarnardsound over 4 years ago
Just a small release that fixes a few minor issues. The Trust deep link has been updated to the new format, the Torus SDK is now imported dynamically which matches the other SDK wallets and a small bug where the account balance wouldn't show correctly in the hardware wallet account select modal has been fixed.
Changelog:
Published by aaronbarnardsound over 4 years ago
This release sees the addition of wallet modules for both Trezor and Ledger hardware wallets making it super simple to add hardware wallets as an option for Dapp users.
To add hardware wallets, simply add the following to your Onboard configuration object:
const onboardConfig = {
// ...other config options
walletSelect: {
wallets: [
// ...other wallets
{
walletName: "trezor",
appUrl: '<YOUR_APP_URL>', // required for Trezor manifest
email: '<YOUR_CONTACT_EMAIL>', // required for Trezor manifest
rpcUrl: '<RPC_URL>'
},
{
walletName: "ledger",
rpcUrl: '<RPC_URL>'
}
]
},
walletCheck: [
{ checkName: "connect" },
{ checkName: "accounts" },
{ checkName: "network" },
]
}
const onboard = Onboard(onboardConfig)
Details regarding the Trezor Manifest can be found here
There are some differences to note between Ledger and Trezor devices and how they operate within Onboard:
Ledger wallets can only load one address at a time and is noticeably slower when loading each account. There also isn't an included UI that guides the user to get the device ready to be connected. To solve this Onboard will display a wallet check modal that instructs the user:
- to plug in their Ledger
- to unlock their Ledger via the pin code
- to have the Ethereum app open on their device
- that Onboard is going to load their accounts and shows a spinner for indication of loading status
Both Ledger and Trezor lack UI's that allow the user to select which account they would like to use. An "accounts" wallet check module has been added to provide a UI that allows users to select an account they would like to use and also allows them the load/generate more accounts to select from. This module needs to be included in your wallet check array if you would like it to be a part of your onboarding flow:
const onboardConfig = {
// ...other config options
walletCheck: [
{ checkName: "connect" },
{ checkName: "accounts" }, // add new accounts module to onboarding
{ checkName: "network" },
]
}
This modal will only show if the user has selected a wallet of type "hardware" and will only show the first time the wallet check sequence is run.
A new method has also been added to the API called accountSelect
. This method can be called at any time that you would like to show the account select modal. So you could hook up a button on your dapp's UI that calls this method:
<button onclick="onboard.accountSelect()">Switch Account</button>
Changelog:
Published by aaronbarnardsound over 4 years ago
This release adds MetaMask as a valid mobile wallet and also includes a few minor bug fixes.
Changelog:
Published by aaronbarnardsound over 4 years ago
This release updates to the latest Authereum SDK, passes the correct Authereum url
property depending which network Onboard is configured with and also enables Authereum internal notifications with an option to disable them via a disableNotifications
initialization property.
Thanks to @TomAFrench and @miguelmota for their contributions!
Changelog:
Published by aaronbarnardsound over 4 years ago
Just a couple of small bug fixes and improvements in this release. The WalletConnect disconnect functionality works correctly now and resets the state. There was an error caused by calling unubscribe
on a svelte store multiple times which has now been fixed. Lastly a url
as been added to the Torus wallet module.
Changelog:
Published by aaronbarnardsound over 4 years ago
This release adds Tor.us wallet to the list supported wallets in Onboard. Check out the wallet module docs for more info on how to initialize it.
Also included in this release is a small fix that makes sure the address
subscription callback is only called with an undefined
value if a user logs out of their wallet.
Changelog:
Published by aaronbarnardsound almost 5 years ago
This release adds a feature where you can reset the internal wallet state and disconnect from a wallet instance by calling onboard.walletReset()
.
The WalletConnect module was also modified to ensure that it is disconnecting properly when either the user disconnects from the session on their mobile device, or if the walletReset
function was called.
Additionally the font-family
is now correctly being inherited so that only one css over-ride is necessary to change the font.
Changelog:
Published by aaronbarnardsound almost 5 years ago
This release sees the addition of Status IM wallet to list of included wallets.
A url
parameter has also been added to the wallet object for SDK/embedded wallets to make it easier to display the wallets UI to user.
There is a small bug fix, where Onboard was recognizing chromebook laptops as a mobile device, which is now fixed.
Changelog:
Published by aaronbarnardsound almost 5 years ago
Just a couple of small bug fixes in this release.
Changelog:
Published by aaronbarnardsound almost 5 years ago
This release has a couple of small features and a couple of small bugfixes. You can now customize the icon and the label for each wallet button, allowing a more flexible wallet select modal. Onboard now detects the OS of the user's device, allowing for wallets to be shown (or not shown) for specific operating systems.
Changelog:
Published by aaronbarnardsound almost 5 years ago
A small release to update bnc-sdk
.
Changelog:
Published by aaronbarnardsound almost 5 years ago
This release publishes a small feature where you can now pass a html
string in for the description
parameter of the wallet select modal and onboard will render it as html
Changelog: