rainbowkit

The best way to connect a wallet 🌈 🧰

MIT License

Downloads
352.4K
Stars
2.3K
Committers
113
rainbowkit - @rainbow-me/[email protected] Latest Release

Published by DanielSinclair 5 months ago

Patch Changes

  • 2180ddd: Added Nest Wallet support with nestWallet wallet connector

  • fea278a: The coinbaseWallet wallet connector now has a preference argument to control whether Smart Wallet is enabled and available for users. Preference based behavior is documented here.

    Smart Wallet will be enabled by default with all in early June, without a further upgrade.

    Developers can test Smart Wallet with sepolia and baseSepolia chains today by setting smartWalletOnly like so:

    import { coinbaseWallet } from "@rainbow-me/rainbowkit/wallets";
    
    // Enable Coinbase Smart Wallet for testing
    coinbaseWallet.preference = "smartWalletOnly";
    
    // You must manually specify your wallet list with `wallets` in
    // `getDefaultConfig` or `connectorsForWallets` to assign the preference
    const config = getDefaultConfig({
      /* ... */
      wallets: [
        {
          groupName: "Popular",
          wallets: [coinbaseWallet],
        },
      ],
      /* ... */
    });
    
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 5 months ago

Patch Changes

  • 725a376: Added Magic Eden Wallet support with magicEdenWallet wallet connector
  • 9be5452: Resolved an issue with the Enhanced Provider when using RainbowKit in Vite without a process.env polyfill
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 5 months ago

Minor Changes

  • 82153ed: Upgraded compatible wagmi and @coinbase/wallet-sdk versions to support Coinbase Smart Wallet.

    Smart Wallet enables users to create a new wallet in seconds with Passkeys, without installing an app or extension. Smart Wallet users can use the same account and address across all onchain apps with RainbowKit.

    Smart Wallet and the underlying smart contract is fully compatible with Wagmi, but dApps need to ensure that their offchain signature validation is ERC-6492 compliant to support smart contract wallets. Follow this guide for more information.

    Coinbase Wallet users on desktop and mobile will now interact with a new connection flow in RainbowKit alongside Smart Wallet.

  • 90d6931: Introduced the Enhanced Provider to handle fallback resolutions when a Mainnet provider transport is unavailable.

    ENS names for dApps without a Mainnet provider will now properly resolve. Additional conveniences will be soon be rolling out in RainbowKit.

rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 5 months ago

Patch Changes

  • 8841891: Added real-time balance fetching based on the Recent Transaction API. As a transaction is confirmed on-chain, the user's gas balance will be updated to reflect the transaction.

    import { useAddRecentTransaction } from "@rainbow-me/rainbowkit";
    
    export default () => {
      const addRecentTransaction = useAddRecentTransaction();
    
      return (
        <button
          onClick={() => {
            addRecentTransaction({
              hash: "0x...",
              description: "...",
            });
          }}
        >
          Add recent transaction
        </button>
      );
    };
    
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 6 months ago

Patch Changes

  • af4ea4e: Added Kraken Wallet support with krakenWallet wallet connector
  • f0b3b25: Mitigated behavior in Coinbase Wallet where the user would be captured in the in-app browser upon redirect.
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 6 months ago

Patch Changes

  • 7ab6e50: Added Compass Wallet support with compassWallet wallet connector
  • 515498f: Locked the dependencies for the coinbaseWallet wallet connector to Coinbase Wallet SDK v3 to temporarily mitigate breaking changes included an upcoming version of Wagmi.
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 7 months ago

Patch Changes

  • 4dd1e45: Fixed an issue that allowed duplicate wallets to be added to the Connect Modal when using connectorsForWallets
  • 1a0f209: Added a small check to throw an error if the wallet list is empty overall or empty within any category.
  • ec41346: Amended the getDefaultConfig return type to prevent indirect type annotation errors and better infer type for parameters from Wagmi's createConfig.
  • fc4d7e1: Resolved a bug where if multiInjectedProviderDiscovery was set to false the roninWallet would prevent showing Opening Ronin Wallet... UI in the connect modal.
  • 81ba812: Added support for zetachain and zetachainAthensTestnet testnet chain
  • b11118f: Added Kaikas Wallet support with kaikasWallet wallet connector and added klaytn chain with klaytnBaobab testnet support.
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 7 months ago

Patch Changes

  • 77dcec3: Added Bybit Wallet support with bybitWallet wallet connector
  • 6c240ba: Added Gate Wallet support with gateWallet wallet connector
  • 34419b5: Added Bitverse Wallet support with bitverseWallet wallet connector
  • 5c60239: Added 1inch Wallet support with oneInchWallet wallet connector
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 7 months ago

Patch Changes

  • b25db9a: Added blast and blastSepolia network support
  • b80e8fa: Improved the synchronous connection flow for the WalletButton and WalletButton.Custom components
  • 985b80b: Resolved an issue where ENS resolution would fail and throw an error for ENS names with disallowed characters.
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 7 months ago

Patch Changes

  • b80e8fa: Improved the synchronous connection flow for the RainbowButton component
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 8 months ago

Patch Changes

  • 524d7a0: connectModalOpen state for the useConnectModal hook will now also encompass the Web3Modal modal presentation status for users that interact with walletConnectWallet
  • 2f637e4: Fixed a bug where wagmi would throw ChainNotConfiguredError if mainnet is not configured as a chain. This is happening when fetching ens name and ens avatar.
  • c021746: Resolved an issue where the Connect Modal wallet list would appear empty for EIP-6963 connectors when using the WalletButton component
  • df572f1: Resolved an issue for Custom Wallets that displayed a "missing translation" error for instructions during connect and installation flows. Now Custom Wallets will display their original strings without attempted translation.
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 8 months ago

Patch Changes

  • bb56562: Fixed a bug where the showBalance prop on <ConnectButton /> didn't accept a boolean, and had only accepted responsive modal values.
  • 5149dbd: Added Ramper Wallet support with ramperWallet wallet connector
  • 1e7d3f4: Added Ronin Wallet support with roninWallet wallet connector
  • c16541a: Added Kresus support with kresusWallet wallet connector
  • dbca966: Added Bloom Wallet support with bloomWallet wallet connector
  • 1a08977: Added EIP-6963 support for coin98Wallet wallet connector
  • f69c0e1: Added support for ronin chain
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 9 months ago

Major Changes

  • aa0269e: Breaking:

    The wagmi and viem peer dependencies have reached 2.x.x with breaking changes.

    Follow the steps below to migrate.

    1. Upgrade RainbowKit, wagmi, and viem to their latest versions

    npm i @rainbow-me/rainbowkit@2 wagmi@2 [email protected]
    

    2. Install @tanstack/react-query peer dependency

    With Wagmi v2, TanStack Query is now a required peer dependency.

    Install it with the following command:

    npm i @tanstack/react-query
    

    3. Upgrade your RainbowKit and Wagmi configurations

      import '@rainbow-me/rainbowkit/styles.css'
    
    + import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
    - import { createPublicClient, http } from 'viem'
    - import { WagmiConfig } from 'wagmi'
    + import { WagmiProvider, http } from 'wagmi'
    - import { configureChains, createConfig } from 'wagmi'
      import { mainnet } from 'wagmi/chains'
      import { RainbowKitProvider } from '@rainbow-me/rainbowkit'
    - import { getDefaultWallets, connectorsForWallets } from '@rainbow-me/rainbowkit'
    + import { getDefaultConfig } from '@rainbow-me/rainbowkit'
    
      /* getDefaultWallets is now optional */
    - const { wallets } = getDefaultWallets({
    -   appName: 'RainbowKit demo',
    -   projectId: 'YOUR_PROJECT_ID',
    -   chains,
    - })
    
      /* connectorsForWallets is now optional */
    - const connectors = connectorsForWallets([...wallets])
    
    - const { chains, publicClient } = configureChains(
    -   [mainnet, sepolia],
    -   [publicProvider(), publicProvider()],
    - )
    
    - const config = createConfig({
    -   autoConnect: true,
    -   publicClient,
    - })
    
      /* New API that includes Wagmi's createConfig and bundles getDefaultWallets and connectorsForWallets */
    + const config = getDefaultConfig({
    +   appName: 'RainbowKit demo',
    +   projectId: 'YOUR_PROJECT_ID',
    +   chains: [mainnet],
    +   transports: {
    +     [mainnet.id]: http(),
    +   },
    + })
    
    + const queryClient = new QueryClient()
    
      const App = () => {
        return (
    -     <WagmiConfig config={config}>
    +     <WagmiProvider config={config}>
    +       <QueryClientProvider client={queryClient}>
    -         <RainbowKitProvider chains={chains}>
    +         <RainbowKitProvider>
                {/* Your App */}
              </RainbowKitProvider>
    +       </QueryClientProvider>
    -     </WagmiConfig>
    +     </WagmiProvider>
        )
      }
    

    You can read an in-depth migration guide here.

    4. Check for breaking changes in wagmi and viem

    If you use wagmi hooks and viem actions in your dApp, you will need to follow the migration guides for v2:

rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 9 months ago

Minor Changes

  • aa0269e: RainbowKit has reached v2 alongside wagmi, which includes breaking changes.

    0.4.x now requires @rainbow-me/rainbowkit v2, specifically: 2.x.x.

rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 9 months ago

Minor Changes

  • aa0269e: Breaking:

    The wagmi and viem peer dependencies have reached 2.x.x with breaking changes.

    Follow the steps below to migrate.

    1. Upgrade Rainbow Button, wagmi, and viem to their latest versions**

    npm i @rainbow-me/rainbow-button@2 wagmi@2 [email protected]
    

    2. Install @tanstack/react-query peer dependency

    With Wagmi v2, TanStack Query is now a required peer dependency.

    Install it with the following command:

    npm i @tanstack/react-query
    

    3. Upgrade your Rainbow Button and Wagmi configurations

    RainbowConnector is now rainbowConnector, and requires appName and no longer accepts the chains parameter.

    - import { RainbowConnector } from '@rainbow-me/rainbow-button'
    + import { rainbowConnector } from '@rainbow-me/rainbow-button'
      import { createConfig } from 'wagmi'
    
      const config = createConfig({
    -   connectors: [new RainbowConnector({ chains, projectId })],
    +   connectors: [
    +     rainbowConnector({
    +       appName: "RainbowKit demo",
    +       projectId: "YOUR_PROJECT_ID",
    +     }),
    +   ],
      })
    

    Follow the Wagmi v2 Migration Guide for additional configuration changes.

    4. Check for breaking changes in wagmi and viem

    If you use wagmi hooks and viem actions in your dApp, you will need to follow the full migration guides for v2:

rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 9 months ago

Patch Changes

  • 2b0c7b3: Added missing i18n translations for Wrong network errors
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 9 months ago

Patch Changes

  • c0a644a: Fixed an issue that caused components to re-render on every window resize event. Now components will only re-render once the user has finished resizing their window.
  • 41616b9: Fixed a bug where the connectModalOpen state incorrectly remained true after a successful siwe authentication. This fix ensures that connectModalOpen shows the correct state.
  • cf4955f: Fixed a bug where the back button wasn't showing on compact size modal when selecting DownloadOptions wallet step.
  • cf4955f: Removed back button for wide size modal entirely when selecting DownloadOptions wallet step to prevent incorrect wallet step switching.
  • e5f5f03: Removed external i18n-js dependency to reduce RainbowKit bundle sizes.
  • c0bd68e: Fixed a bug in the account modal transactions section where transactions that were not found or cancelled were incorrectly shown as 'pending' instead of 'failed'.
  • a79609b: Fixed a bug that allowed users to hold-press or cursor select wallet icons on iOS, which interrupted the connection experience.
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 10 months ago

Patch Changes

  • 7565fb2: Added uk-UA and ua locale support for the Ukranian language.

    Reference our guide to learn more about Localization.

  • 24b5a88: Improved support for NodeNext module resolution to resolve "@rainbow-me/rainbowkit"' has no exported member 'RainbowKitProvider' TypeScript warnings

  • 5a184e9: Fixed a bug where eth_getBalance would be called when showBalance was set to false. Optimized additional provider calls to fetch wallet balances only when a user interacts with the Account modal.

rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 10 months ago

Patch Changes

  • 7ba94f48: Optimized bundle size for localization feature
rainbowkit - @rainbow-me/[email protected]

Published by DanielSinclair 11 months ago

Patch Changes

3feab0e6: 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.
c9a8e469: Improved Korean localization. Thanks @Hyun2!
dba51779: Added support for arbitrumSepolia, baseSepolia, optimismSepolia, zoraSepolia testnet chains

Package Rankings
Top 1.02% on Npmjs.org