The best way to connect a wallet 🌈 🧰
MIT License
Published by DanielSinclair over 1 year ago
wagmi
peer dependency to 0.12.19
for improved WalletConnect v2 support.Published by DanielSinclair over 1 year ago
dc3cd10b: Core Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { coreWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [coreWallet({ projectId, chains })],
},
]);
c251d55d: Talisman Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { talismanWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [talismanWallet({ projectId, chains })],
},
]);
d5b3bd19: Safeheron Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { safeheronWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [safeheronWallet({ chains })],
},
]);
66e84239: Frontier Wallet Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { frontierWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [frontierWallet({ projectId, chains })],
},
]);
1b4f142e: BitKeep Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { bitKeepWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [bitKeepWallet({ projectId, chains })],
},
]);
e089ab98: TokenPocket Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { tokenPocketWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [tokenPocketWallet({ projectId, chains })],
},
]);
Published by DanielSinclair over 1 year ago
chains
between WagmiConfig
and RainbowKitProvider
so that dApps can now supply a subset of supported chains to RainbowKitProvider
to limit the chains a user can switch between, while maintaining a shared WagmiConfig
.cronos
and cronosTestnet
chain supportPublished by DanielSinclair over 1 year ago
Published by DanielSinclair over 1 year ago
1.3.x
and viem 1.1.x
peer dependencies.Published by DanielSinclair over 1 year ago
wagmi
to ~1.3.0
and viem
to ~1.1.0
.Published by DanielSinclair over 1 year ago
wagmi
peer dependency to 0.12.18
for improved WalletConnect v2 support.Published by DanielSinclair over 1 year ago
zora
and zoraTestnet
chain supportPublished by DanielSinclair over 1 year ago
e2b1072: Support for WalletConnect v2 is now standard in RainbowKit.
Every dApp that relies on WalletConnect now needs to obtain a projectId
from WalletConnect Cloud. This is absolutely free and only takes a few minutes.
This must be completed before WalletConnect v1 bridge servers are shutdown on June 28, 2023.
Upgrade RainbowKit and provide the projectId
to getDefaultWallets
and individual RainbowKit wallet connectors like the following:
const projectId = 'YOUR_PROJECT_ID';
const { wallets } = getDefaultWallets({
appName: 'My RainbowKit App',
projectId,
chains,
});
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [
argentWallet({ projectId, chains }),
trustWallet({ projectId, chains }),
ledgerWallet({ projectId, chains }),
],
},
]);
You can read the full migration guide here.
Advanced options
If a dApp requires supporting a legacy wallet that has not yet migrated to WalletConnect v2, the WalletConnect version can be overriden.
metaMaskWallet(options: {
chains: Chain[];
walletConnectVersion: '1',
});
Once the WalletConnect v1 servers are shutdown, a custom bridge server is required.
walletConnectWallet(options: {
chains: Chain[];
version: '1',
options: {
bridge: 'https://bridge.myhostedserver.com',
},
});
customWallet(options: {
chains: Chain[];
walletConnectVersion: '1',
walletConnectOptions: {
bridge: 'https://bridge.myhostedserver.com',
},
});
Reference the docs for additional supported options.
e2b1072: The wagmi peer dependency has been updated to ~1.2.0
. RainbowKit remains compatible with ~1.1.0
and ~1.0.1
.
The viem peer dependency has been updated to ^1.0.0
. RainbowKit remains compatible with ~0.3.19
and beyond.
It is recommended that you upgrade to recent versions of wagmi
and viem
to ensure a smooth transition to WalletConnect v2.
Published by DanielSinclair over 1 year ago
Published by DanielSinclair over 1 year ago
e2b1072: Support for WalletConnect v2 is now standard in RainbowKit.
Every dApp that relies on WalletConnect now needs to obtain a projectId
from WalletConnect Cloud. This is absolutely free and only takes a few minutes.
This must be completed before WalletConnect v1 bridge servers are shutdown on June 28, 2023.
Upgrade RainbowKit and provide the projectId
to getDefaultWallets
and individual RainbowKit wallet connectors like the following:
const projectId = 'YOUR_PROJECT_ID';
const { wallets } = getDefaultWallets({
appName: 'My RainbowKit App',
projectId,
chains,
});
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [
argentWallet({ projectId, chains }),
trustWallet({ projectId, chains }),
ledgerWallet({ projectId, chains }),
],
},
]);
You can read the full migration guide here.
We are continuing support for 0.12.x
in case your dApp has not yet upgraded to wagmi v1 and RainbowKit v1.
It is recommended that 0.12.x
dApps begin to upgrade to wagmi v1, as stability improvements for WalletConnect v2 will only be included in future versions of wagmi.
Advanced options
If a dApp requires supporting a legacy wallet that has not yet migrated to WalletConnect v2, the WalletConnect version can be overriden.
metaMaskWallet(options: {
chains: Chain[];
walletConnectVersion: '1',
});
Once the WalletConnect v1 servers are shutdown, a custom bridge server is required.
walletConnectWallet(options: {
chains: Chain[];
version: '1',
options: {
bridge: 'https://bridge.myhostedserver.com',
},
});
customWallet(options: {
chains: Chain[];
walletConnectVersion: '1',
walletConnectOptions: {
bridge: 'https://bridge.myhostedserver.com',
},
});
Reference the docs for additional supported options.
Published by DanielSinclair over 1 year ago
9432a2f: The ConnectButton
component is now tagged with use client;
to support the Next 13 App Router and server-side rendered dApps. You can reference a full app/
directory implementation example here.
b2c66ff: Modified acceptable peer dependency versions to ensure proper peer warnings for future versions of wagmi and viem. wagmi
now requires ~1.0.1
and viem
now requires ~0.3.19
.
bcb3d18: Modal Hooks including useConnectModal
, useAccountModal
, and useChainModal
now each return a boolean with the status of the modal.
const { connectModalOpen } = useConnectModal();
const { accountModalOpen } = useAccountModal();
const { chainModalOpen } = useChainModal();
Published by DanielSinclair over 1 year ago
Published by DanielSinclair over 1 year ago
371c988: Adopted fs
, net
, and tls
polyfills in the @rainbow-me/create-rainbowkit
templates for better wagmi@1
and viem
Webpack bundler support.
These modules are required by WalletConnect packages upstream, and were previously polyfilled by ethers
. Reference the discussion here.
Published by DanielSinclair over 1 year ago
93b58d0: Breaking:
The wagmi peer dependency has been updated to 1.x.x
.
Follow the steps below to migrate.
1. Upgrade RainbowKit and wagmi
to their latest version
npm i @rainbow-me/rainbowkit@^1 wagmi@^1
2. Install viem
peer dependency
wagmi v1 requires the viem
peer dependency. Install it with the following command:
npm i viem
Note: wagmi no longer uses the ethers
package internally. But if you rely on the Authentication API, siwe
will still require ethers
as a peer dependency.
3. Check for breaking changes in wagmi
If you use wagmi
hooks in your application, you will need to follow wagmi
's migration guide to v1.
It is recommended that you adopt Typescript ^5.0.4
or above for compatibility with abitype
and future versions of wagmi
and viem
.
Published by DanielSinclair over 1 year ago
93b58d0: RainbowKit has reached v1 alongside wagmi, which includes breaking changes.
0.2.x
now requires @rainbow-me/rainbowkit
v1, specifically: 1.0.x
.
While wagmi v1 now relies on viem
instead of the ethers
peer dependency, siwe
will still require ethers
as a peer dependency. Ensure that you have installed a compatible ethers
version, including: ^5.6.8 || ^6.0.8
.
Published by DanielSinclair over 1 year ago
93b58d0: RainbowKit and the wagmi peer dependency have been updated to 1.x.x
, which includes breaking changes.
wagmi v1 now relies on viem
instead of the ethers
peer dependency, so @rainbow-me/create-rainbowkit
templates have been upgraded to favor viem.
Give RainbowKit and wagmi v1 a try today:
yarn create @rainbow-me/rainbowkit
Published by DanielSinclair over 1 year ago
ethers
peer dependency to ^5.6.8
.Published by DanielSinclair over 1 year ago
865175f: Upgraded minimum siwe
peer dependency to ^2.1.4
and minimum ethers
peer dependency to ^5.6.8
to resolve siwe
peer mismatch.
Specified maximum next-auth
peer dependency as 4.20.1
due to known issues introduced in later versions.
Updated Authentication docs and examples to support modern next-auth
types.
Published by DanielSinclair over 1 year ago
ethers
, next
, react
, react-dom
, siwe
and next-auth
to support siwe@2
.