Wallet integration
This page details how a dapp connects to a user's BeraSig wallet.
Install BeraSig Extension
The first thing you need to do is install the BeraSig Extension if you don't have it. You can find it here https://chromewebstore.google.com/detail/berasig/ckedkkegjbflcfblcjklibnedmfjppbj
Connect BeraSig Wallet using ethers
// Connect & get accounts
window.berasig.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.berasig.ethereum.request({method: 'eth_requestAccounts'});
import { BrowserProvider } from 'ethers'
const provider = new BrowserProvider(window.berasig.ethereum)
const accounts = await provider.send('eth_requestAccounts', [])
const network = await provider.getNetwork()
const balance = await provider.getBalance(accounts[0])
Connect BeraSig Wallet using rainbowkit
Ensure that you are using the latest versions of RainbowKit, Wagmi, and Viem
pnpm i @rainbow-me/rainbowkit@2 wagmi@2 [email protected]
Since Wagmi v2 requires TanStack Query as a peer dependency, install it using the command below:
pnpm i @tanstack/react-query
Here is an example configuration to integrate BerasigWallet with RainbowKit:ja
import { createConfig, http, WagmiProvider } from "wagmi";
import { berachainTestnetbArtio } from "wagmi/chains";
import { berasigWallet } from "@rainbow-me/rainbowkit/wallets";
import {
ConnectButton,
connectorsForWallets,
RainbowKitProvider,
} from "@rainbow-me/rainbowkit";
import { QueryClientProvider, QueryClient } from "@tanstack/react-query";
import "@rainbow-me/rainbowkit/styles.css";
// Define wallet connectors
const connectors = connectorsForWallets([
{
groupName: "BeraChain",
wallets: [berasigWallet],
},
]);
// Configure Wagmi
const config = createConfig({
connectors,
chains: [berachainTestnetbArtio],
transports: {
[berachainTestnetbArtio.id]: http(),
},
});
// Initialize React Query Client
const queryClient = new QueryClient();
// App Component
export default function App() {
return (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider>
<ConnectButton />
</RainbowKitProvider>
</QueryClientProvider>
</WagmiProvider>
);
}
Last updated