Client library to onboard users to web3 apps
MIT License
Published by aaronbarnardsound about 3 years ago
This release includes a couple of bug fixes. Builds were failing on M1 macs due to a dependency within MEW wallet. We tried to fix this via making it an optional dependency, but that led to problems further down the chain in some build environments. So we are temporarily removing support for MEW wallet until that dependency is fixed.
Also included is a fix for the Keystone wallet module where it would throw an error when trying to connect to accounts.
Changelog:
Published by taylorjdawson about 3 years ago
This release of Onboard includes an update for Ledger deps which adds support for EIP-1559. Polygon network name has been added, as well as, a much anticipated bug fixes to the WalletConnect wallet module.
Changelog:
Published by taylorjdawson about 3 years ago
This release of Onboard adds officially support for Boba chain along with much anticipated bug and security fixes! 🙌🏾
Overview:
Changelog:
Published by taylorjdawson about 3 years ago
This release adds MyEtherWallet to Onboard! Additionally, a few bug fixes and dependency updates are included. See changelog and PRs below for more details.
Changelog:
Published by taylorjdawson about 3 years ago
This minor release includes an important update for WalletConnect which uses their new server infrastructure. Please see this tweet for more details.
Published by taylorjdawson about 3 years ago
This release includes a mix of features and bug fixes. Fortmatic wallet now supports a custom RPC url for custom networks. Binance Smart Chain wallet was added. There's a new option to specify wallet visibility based on the user's device. Fixes an issue with WalletConnect hanging on network check modal. And several improvements to the Keystone wallet were added.
You can now specify whether or not to display a wallet based on which device a user is using. Note: For wallets that are mobile or desktop only this option will not override this. For instance, if a wallet is mobile only setting display: { desktop: true }
will not display this wallet on desktop.
Example:
const onboard = Onboard({
walletSelect: {
wallets: [{
walletName: 'metamask'
// Only displays Metamask Wallet on desktop
display: { mobile: false }
}]
}
// ... other init options
})
For additional context see #605.
Example:
{
walletName: 'formatic',
rpcUrl: 'https://testnet2.matic.network'
}
Add the following to the wallet select array:
{
walletName: 'binance'
}
Changelog:
Published by taylorjdawson about 3 years ago
This release includes support for Keystone wallet and adds EIP-3326 (wallet_switchEthereumChain
rpc method) for wallets that support it. This means that users using wallets supporting EIP-3326 will no longer see the switch network modal but rather the wallet will prompt the user to switch their network. Additionally this includes a small bug fix for Ledger wallet.
Changelog:
Published by taylorjdawson about 3 years ago
This release includes a critical update to WalletConnect, adds Token Pocket wallet, and includes some update to some sub-dependencies that contained vulnerabilities.
Changelog:
Published by taylorjdawson over 3 years ago
This release adds some exciting new features: ENS support, custom networks for hardware wallets, and updates to a few wallets. Further more it adds fixes for a Keepkey transaction signing bug. The detectedwallet
option is now enabled by default regardless of if you are using the default wallet list or a custom list.
With Onboard you now have the ability to get a users ENS name as well as any text records they may have. To use this feature simply add a callback function within the subscriptions object like so:
const onboard = Onboard({
...
subscriptions: {
wallet: wallet => {
web3 = new Web3(wallet.provider)
},
ens: ens => {
console.log(ens)
// { name: 'myname.eth', avatar: 'https://i.imgur.com/LcZFSMn.png', getText: '...', contentHash: '...' }
}
}
})
Whenever the user selects a wallet or their address changes, the ens callback will execute with the updated ens object. To get a text record for a user's ENS name such as their avatar, use the getText
method.
Example:
...
ens: ens => {
if(ens) {
const avatarUrl = ens.getText('avatar')
console.log(avatarUrl) // https://i.imgur.com/LcZFSMn.png
}
}
...
Onboard now supports passing in custom network info for hardware wallets allowing users to use their hardware wallets with non-Ethereum networks such as Energy Web Chain.
Example:
const onboard = Onboard({
networkId: 1234
//... other options
walletSelect: {
wallets:[
{
walletName: 'ledger',
rpcUrl: RPC_URL,
customNetwork: {
networkId: number
genesis: GenesisBlock
hardforks: Hardfork[]
bootstrapNodes: BootstrapNode[]
}
},
]
}
})
You can view an example configuration here
Changelog:
Published by aaronbarnardsound over 3 years ago
A small release that includes a few minor fixes and improvements.
Binance Smart Chain has been added as a network now that it is supported by the Blocknative server infrastructure. Passing in the networkId: 56
is all that is necessary. For all other unrecognized networks that get displayed with the network name unknown
, you can use the networkName
parameter when initializing Onboard:
const onboard = Onboard({
// ... other init options
networkId: 137,
networkName: 'Matic'
})
When Onboard is re-initialized in the same session, the WebSocket connection is now closed and the wallet interface is now reset(if one was selected on the previous instance) to ensure there are no extra socket connections or wallet instances hanging around.
A bug with KeepKey missing the preferred
property which prevented it from being included as one of the top 4 wallets has been also fixed.
Changelog:
Published by aaronbarnardsound over 3 years ago
The main feature of this release is a generic detected wallet module. It can be added to your project by adding the following wallet object to your wallets array when initializing Onboard: { walletName: 'detectedwallet' }
. If a user then visits your app and they have a wallet provider injected in to the page that is not recognized by Onboard, it will try to pull the name from the provider and will display it as an option so that any injected wallet that conforms to the EIP-1193 standard can connect to your app.
Also included in this release is a enhanced switch wallet flow for when a user is on the wrong network, but cannot switch networks on the current connected wallet. The full flow is detailed here.
A bug has also been fixed where the derivation path for hardware wallets was incorrectly validating account values > 9.
Changelog:
Published by taylorjdawson over 3 years ago
This release adds support for Shapeshift's Keepkey hardware wallet! This integration comes with a PIN UI and passphrase entry for a smooth onboarding process. To enable Keepkey support simply add the following to your Onboard init object:
{ walletName: 'keepkey', rpcUrl: '<rpc-provider-url>' }
Furthermore, this release includes an update to the Ledger wallet where it now uses WebUSB if the browser supports it. This consequently mitigates an issue with Chrome v91 where the U2F protocol no longer works with the Ledger device ( See #577 ).
Changelog:
Published by aaronbarnardsound over 3 years ago
This release adds support for SSR (server side rendered) projects by adding a check for the window object in the init
function to prevent errors. Also included in this release is an additional icons
property on the wallet
object for when a user selects a wallet. This property includes the icon strings available for the selected wallet, so the app can also display the selected wallet in the UI.
Changelog:
1.26.1-0.1.0: [feature] Export wallet icons (#572)
1.26.2-0.1.0: [enhancement] - SSR Support (#570)
Bump browserslist from 4.13.0 to 4.16.6 (#563)
1.26.1-0.0.1: [chore] Update Wallet type (#574)
Published by taylorjdawson over 3 years ago
This release adds an option for Torus wallet to provide a custom RPC url.
Example:
{
walletName: 'torus',
rpcUrl: 'https://ethboston1.skalenodes.com:10062',
...
}
Changelog:
Published by taylorjdawson over 3 years ago
This release adds support for 3 new wallets: Gnosis Safe, Bitpie and XDefi. The Ledger provider now supports signing Typed data messages (See EIP712 for more information). Additionally, we include a number of vulnerability fixes to various Onboard.js dependancies.
For Bitpie and XDefi add the following wallet init object to your wallets array when initializing Onboard:
{ walletName: 'bitpie' },
{ walletName: 'xdefi' }
For Gnosis Safe add the following wallet init object to your wallets array when initializing Onboard:
{ walletName: 'gnosis' }
With Gnosis Safe if a user opens your dApp within the Safe Interface, Onboard.js will automatically select the Gnosis Safe for the user.
Changlog
Published by taylorjdawson over 3 years ago
This release updates WalletLink to the latest version and replaces the old Coinbase logo with the new one.
Changelog:
Published by taylorjdawson over 3 years ago
The latest release of Onboard includes a new option that enables developers to ask users to agree to the terms of services before using Onboard. To enable this feature add the following to your Onboard init object:
const onboard = Onboard({
...
walletSelect: {
agreement: {
version: '0.1.0',
termsUrl:'https://www.yourdapp.com/terms-conditions',
privacyUrl: 'https://www.yourdapp.com/privacy-policy',
}
}
})
Please see the docs for more information regarding this feature.
Additionally, it includes the updated Portis wallet!
Changelog:
Published by aaronbarnardsound over 3 years ago
This release adds support for AlphaWallet. To add to your project, simply add the following wallet init object to your wallets
array when initializing Onboard: { walletName: 'alphawallet' }
.
Also is included in this release is an update to the latest WalletConnect version which includes additional mobile wallets.
Changelog:
Published by aaronbarnardsound over 3 years ago
This release adds Ownbit wallet as a supported wallet module. To add it to your project, simply add the following wallet init object to your wallets array when initializing Onboard: { walletName: 'ownbit' }
.
Also included in this release are a couple of small bugfixes for custom network names and a TypeScript issue.
Changelog:
Adds Ownbit wallet (#510)
1.21.0-0.0.1: [fix] - isMobile Parameter (#522)
1.21.0-0.0.2: [fix] - Adds unknown network name (#520)
Published by aaronbarnardsound over 3 years ago
This release adds support for the Cobo Vault hardware wallet. You can add it to your project by adding the following wallet init object to your wallets array when initializing Onboard:
{ walletName: 'cobovault', appName: '<YOUR_APP_NAME>', rpcUrl: '<RPC_ENDPOINT>' },
Also included in this release is an update to the modal copy for when a user selects a wallet on a mobile device but does not have that wallet app currently running. The button text used to say "Install <SELECTED_WALLET_NAME>" but it now informs the user to "open" the wallet as this was causing confusion for some users that had the selected wallet installed but not open.
Changelog:
1.20.0-0.1.0: [feature]: Add Cobo Vault hardware wallet support (#508)
1.20.0-0.0.1: [enhancement] - Install Wallet Copy (#514)
Bump y18n from 4.0.0 to 4.0.1 (#516)