RainbowKit provides a fast, easy and highly customizable way for developers to add a great wallet experience to their application. It handle the hard stuff so developers and teams can focus on building amazing products and communities for their users.
Note that Blocto SDK for EVM-compatible chains is still in Beta . APIs are subject to breaking changes.
Installation
Install from npm/yarn/pnpm
RainbowKit and its peer dependencies, and .
npm yarn pnpm
Copy npm install @rainbow-me/rainbowkit wagmi viem @blocto/rainbowkit-connector
Copy yarn add @rainbow-me/rainbowkit wagmi viem @blocto/rainbowkit-connector
Copy pnpm add @rainbow-me/rainbowkit wagmi viem @blocto/rainbowkit-connector
Step 1 - Import Rainbowkit
Import RainbowKit, wagmi, and bloctoWallet.
Copy import '@rainbow-me/rainbowkit/styles.css';
import {
getDefaultWallets,
connectorsForWallets,
RainbowKitProvider,
} from '@rainbow-me/rainbowkit';
import { configureChains, createConfig, WagmiConfig } from "wagmi";
import { polygon, optimism, arbitrum, bsc, mainnet } from "wagmi/chains";
import { publicProvider } from 'wagmi/providers/public';
import { alchemyProvider } from 'wagmi/providers/alchemy';
import { bloctoWallet } from '@blocto/rainbowkit-connector';
Configure your desired chains and generate the required connectors. You will also need to setup a wagmi client.
Copy const { chains, publicClient, webSocketPublicClient } = configureChains(
[polygon, optimism, arbitrum, bsc, mainnet],
[alchemyProvider({ apiKey: process.env.ALCHEMY_ID || "" }), publicProvider()]
);
const { wallets } = getDefaultWallets({
appName: "My RainbowKit App",
projectId: "YOUR_PROJECT_ID",
chains
});
const connectors = connectorsForWallets([
...wallets,
{
groupName: "Other",
wallets: [
bloctoWallet({ chains }), // add BloctoWallet
]
}
]);
const wagmiConfig = createConfig({
autoConnect: true,
connectors,
publicClient,
webSocketPublicClient,
});
Step 3 - Wrap providers
Wrap your application with RainbowKitProvider and WagmiConfig.
Copy const App = () => {
return (
<WagmiConfig client={wagmiConfig}>
<RainbowKitProvider chains={chains}>
<YourApp />
</RainbowKitProvider>
</WagmiConfig>
);
};
Then, in your app, import and render the ConnectButton
component.
Copy import { ConnectButton } from '@rainbow-me/rainbowkit';
export const YourApp = () => {
return <ConnectButton />;
};
RainbowKit will now handle your user's wallet selection, display wallet/transaction information and handle network/wallet switching.
Now you can easily use Rainbowkit
connect BloctoWallet
To see more configurations, please check out
CodeSandbox Sample
CodeSandbox Sample - Custom Authentication