Releases: rainbow-me/rainbowkit
@rainbow-me/[email protected]
Patch Changes
3feab0e: Support for Wagmi 1.4.12
to mitigate a supply-chain attack on the @ledgerhq/connect-kit package. RainbowKit dApp's were not directly impacted, but dApps that used the LedgerConnector connector in earlier versions of Wagmi could have been. This issue has since been resolved by Ledger but the wagmi team is encouraging developers to upgrade Wagmi and RainbowKit out of an abundance of caution.
c9a8e46: Improved Korean localization. Thanks @Hyun2!
dba5177: Added support for arbitrumSepolia, baseSepolia, optimismSepolia, zoraSepolia testnet chains
@rainbow-me/[email protected]
Minor Changes
-
9ce75a6: The new
WalletButton
component helps dApps with custom wallet list implementations adopt RainbowKit and all of it's maintenance-free benefits.import { WalletButton } from '@rainbow-me/rainbowkit'; <WalletButton wallet="rainbow" /> <WalletButton wallet="metamask" /> <WalletButton wallet="coinbase" />
Like the
ConnectButton
, theWalletButton.Custom
component is available for custom implementations and styling.<WalletButton.Custom wallet="rainbow"> {({ ready, connect }) => { return ( <button type="button" disabled={!ready} onClick={connect}> Connect Rainbow </button> ); }} </WalletButton.Custom>
Most dApps are best served by the ConnectButton. Reference the docs here for more information about
WalletButton
adoption and usecases.
@rainbow-me/[email protected]
@rainbow-me/[email protected]
Minor Changes
-
9ce75a6: The
RainbowButton
component is the simplest way to add support for Rainbow Wallet to dApps that usewagmi
and prefer a more custom connector experience over RainbowKit.1. Install
@rainbow-me/rainbow-button
and its peer dependenciesThe package is compatible with Next.js, React, and Vite. Ensure that you follow peer dependency warnings.
npm install @rainbow-me/rainbow-button wagmi viem
2. Configure with Wagmi and install the RainbowButton
Pass an instance of the
RainbowConnector
to your Wagmi connector list, and wrap your app in theRainbowButtonProvider
. Then drop-in theRainbowButton
component into your wallet list.import "@rainbow-me/rainbow-button/styles.css"; import { RainbowButtonProvider, RainbowConnector, } from "@rainbow-me/rainbow-button"; const wagmiClient = createConfig({ connectors: [new RainbowConnector({ chains, projectId })], publicClient, }); function MyApp({ Component, pageProps }: AppProps) { return ( <WagmiConfig config={wagmiClient}> <RainbowButtonProvider>{/* Your App */}</RainbowButtonProvider> </WagmiConfig> ); } export const YourApp = () => { return <RainbowButton />; };
You can also use the
RainbowButton.Custom
component for custom implementations and styling.<RainbowButton.Custom> {({ ready, connect }) => { return ( <button type="button" disabled={!ready} onClick={connect}> Connect Rainbow </button> ); }} </RainbowButton.Custom>
3. And that's it!
Now your users can enjoy a seamless connection experience for Rainbow — without any maintenance or headaches.
A
WalletButton
component is also available in RainbowKit if you'd like to adopt support for additional wallets.
@rainbow-me/[email protected]
Patch Changes
-
74ead9d: Tokenary Support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { tokenaryWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, chains }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [tokenaryWallet({ chains })], }, ]);
-
94dce82: Fixed scroll bar inconsistencies in the Chain selector for large chain lists or when animating upon user interaction
-
39d81e9: Fixed a bug where the avatar loading indicator had used excessive CPU cycles
@rainbow-me/[email protected]
Minor Changes
-
ef64a22: Improved desktop wallet download support
RainbowKit wallet connectors now support desktop download links and desktop
wallet instructions.Dapps that utilize the Custom Wallets API can reference the updated docs here.
{ downloadUrls: { windows: 'https://my-wallet/windows-app', macos: 'https://my-wallet/macos-app', linux: 'https://my-wallet/linux-app', desktop: 'https://my-wallet/desktop-app', } }
We've also introduced a new 'connect'
InstructionStepName
type in theinstructions
API to provide wallet connection instructions.return { connector, desktop: { getUri, instructions: { learnMoreUrl: 'https://my-wallet/learn-more', steps: [ // ... { description: 'A prompt will appear for you to approve the connection to My Wallet.' step: 'connect', title: 'Connect', } ] }, }, }
@rainbow-me/[email protected]
@rainbow-me/[email protected]
Patch Changes
-
02e796c: SafePal Wallet Support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { safepalWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, chains }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [safepalWallet({ projectId, chains })], }, ]);
-
efb8566: SubWallet Support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { subWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, chains, projectId }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [subWallet({ chains, projectId })], }, ]);
-
4b7a44c: Okto Support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { oktoWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, projectId, chains }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [oktoWallet({ projectId, chains })], }, ]);
-
2c8abbb: Zeal Support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { zealWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, chains }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [zealWallet({ chains })], }, ]);
-
e41103f: CLV Wallet Support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { clvWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, chains }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [clvWallet({ chains, projectId })], }, ]);
-
b0022ae: Desig Wallet support
Example usage
import { getDefaultWallets, connectorsForWallets, } from "@rainbow-me/rainbowkit"; import { desigWallet } from "@rainbow-me/rainbowkit/wallets"; const { wallets } = getDefaultWallets({ appName, chains, projectId }); const connectors = connectorsForWallets([ ...wallets, { groupName: "Other", wallets: [desigWallet({ chains })], }, ]);
@rainbow-me/[email protected]
Patch Changes
- 6cbd9a5: Added
zkSync
andzkSyncTestnet
network support - b2b69dc: Added
holesky
testnet support - 7d97860: Fixed an issue where a user would not get automatically logged out from the Authentication API after switching their wallet in MetaMask or other browser wallets. Users must now sign a new SIWE message after switching wallets.
@rainbow-me/[email protected]
Patch Changes
- b60e335: Fixed a dependency resolution issue for
ESModule
projects related toi18n-js