The best way to connect a wallet 🌈 🧰
MIT License
Published by DanielSinclair over 1 year ago
0f8e87e: Improved extension store support
RainbowKit wallet connectors now support multiple browser extension download URLs, and RainbowKit will automatically direct users to the appropriate extension store.
Users will also experience an improved download flow for extensions, including support for Arc, Opera, and Safari browsers.
dApps that utilize the Custom Wallets
API can reference the updated docs here.
{
downloadUrls: {
chrome: 'https://chrome.google.com/webstore/detail/my-wallet',
edge: 'https://microsoftedge.microsoft.com/addons/detail/my-wallet',
firefox: 'https://addons.mozilla.org/firefox/addon/my-wallet',
opera: 'https://addons.opera.com/extensions/details/my-wallet',
browserExtension: 'https://my-wallet/', */ fallback download page */
}
}
6eab54d: Detecting MetaMask in window.ethereum.providers
for wallets that support the ethereum.providers
standard.
Overriding Wagmi's getProvider
logic for MetaMask to ensure that MetaMask is preferred when available, and RainbowKit's MetaMask button continues to act as a fallback for users that rely on wallets that override window.ethereum
.
Published by DanielSinclair over 1 year ago
ab051b9: Support for options
customization for walletConnectWallet
Example usage
walletConnectWallet(options: {
projectId: string;
chains: Chain[];
options?: {
qrcodeModalOptions?: {
desktopLinks?: string[];
mobileLinks?: string[];
};
}
});
Reference the docs for additional supported options.
Published by DanielSinclair over 1 year ago
361bb39: Phantom Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { phantomWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [phantomWallet({ chains })],
},
]);
82376f0: Rabby Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { rabbyWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [rabbyWallet({ chains })],
},
]);
7c9e580: Trust Wallet Support
The trustWallet
wallet connector now includes support for the Trust Wallet browser extension.
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { trustWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [trustWallet({ projectId, chains })],
},
]);
0127559: XDEFI Wallet Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { xdefiWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, projectId, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [xdefiWallet({ chains })],
},
]);
Published by DanielSinclair over 1 year ago
projectId
Published by DanielSinclair over 1 year ago
Published by DanielSinclair over 1 year ago
aef9643: Support for WalletConnect Cloud projectId
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.
RainbowKit will enable WalletConnect v2 for supported wallets when projectId
is specified. If projectId
is unspecified, RainbowKit will quietly prefer WalletConnect v1.
This must be completed before WalletConnect v1 bridge servers are shutdown on June 28, 2023.
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 }),
],
},
]);
Published by DanielSinclair over 1 year ago
Published by DanielSinclair over 1 year ago
d35809e: Amended rainbowWallet
connector extension support and URLs
Improved UI flow for wallet connectors that don't specify extension.instructions
Published by DanielSinclair over 1 year ago
2b4ede4: Zerion Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { zerionWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [zerionWallet({ chains })],
},
]);
6a01368: Taho Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { tahoWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [tahoWallet({ chains })],
},
]);
936b523: OKX Wallet Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { okxWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [okxWallet({ chains })],
},
]);
7f669bd: Dawn Wallet Support
Example usage
import {
getDefaultWallets,
connectorsForWallets,
} from '@rainbow-me/rainbowkit';
import { dawnWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [dawnWallet({ chains })],
},
]);
Published by DanielSinclair over 1 year ago
safeWallet
connector to support Safe Apps. dApps that rely on getDefaultWallets
will adopt this behavior automatically. dApps that rely on the Custom Wallet List should add safeWallet
alongside injectedWallet
.Published by DanielSinclair over 1 year ago
injectedWallet
now has a friendlier name and icongetDefaultWallets
or injectedWallet
will now more eagerly display the fallback injectedWallet
connector to better support dApp Browsers when a branded connector is unavailable.Published by DanielSinclair over 1 year ago
shimDisconnect
wallet connector option to maintain default Wagmi disconnect behavior when shimDisconnect
is unspecified. RainbowKit wallet connectors now also accept all InjectedConnectorOptions
options.Published by DanielSinclair over 1 year ago
8f01a12: Bitski Support
Example usage
import { getDefaultWallets, connectorsForWallets } from '@rainbow-me/rainbowkit';
import { bitskiWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [
bitskiWallet({ chains }),
],
},
]);
3399df5: MEW Wallet Support
Example usage
import { getDefaultWallets, connectorsForWallets } from '@rainbow-me/rainbowkit';
import { mewWallet } from '@rainbow-me/rainbowkit/wallets';
const { wallets } = getDefaultWallets({ appName, chains });
const connectors = connectorsForWallets([
...wallets,
{
groupName: 'Other',
wallets: [
mewWallet({ chains }),
],
},
]);
Published by DanielSinclair over 1 year ago
wagmi
to 0.12.x
Published by DanielSinclair over 1 year ago
9838acf: The wagmi peer dependency has been updated to 0.12.x
.
RainbowKit has adopted the WalletConnectLegacyConnector
connector in wagmi
for continued WalletConnect v1 support. Support for WalletConnect v2 and WalletConnectConnector
will soon be available as a patch release, without breaking changes.
Wallets will be transitioned automatically in future releases.
Follow the steps below to migrate.
wagmi
to their latest versionnpm i @rainbow-me/rainbowkit@^0.12.0 wagmi@^0.12.0
Published by DanielSinclair over 1 year ago
924ae82: Updated wagmi
to >=0.11.7
cf62d10: Fix next-app template by removing alchemyProvider
in favor of publicProvider
The alchemyProvider
public API key provided by Alchemy and the Ethers project has been deprecated. Examples and templates now favor the publicProvider
exclusively.
Published by DanielSinclair over 1 year ago
924ae82: Bumped minimum wagmi
version to 0.11.7
Added baseGoerli
chain support
5e233ea: Added bsc
and bscTestnet
chain support
Published by DanielSinclair over 1 year ago
wagmi
to 0.11.x
Published by DanielSinclair over 1 year ago
Published by DanielSinclair over 1 year ago
1876ba0: The wagmi peer dependency has been updated to 0.11.x
.
The minimum TypeScript version is now 4.9.4
Follow the steps below to migrate.
npm i @rainbow-me/rainbowkit@^0.11.0 wagmi@^0.11.0
If you use wagmi
hooks in your application, you will need to check if your application has been affected by the breaking changes in wagmi
.