Rainbow logo
RainbowKit
2.1.6

Lista Personalizada de Carteiras

Lista Personalizada de Carteiras

Personalizando a lista de carteiras

Você pode importar carteiras individuais de '@rainbow-me/rainbowkit/wallets' junto com a função connectorsForWallets para construir sua própria lista de carteiras com seus respectivos conectores necessários. Dessa forma, você tem controle total sobre quais carteiras exibir e em que ordem.

Por exemplo, você pode optar por mostrar apenas a Rainbow junto com carteiras genéricas de fallback.

import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import { rainbowWallet, walletConnectWallet, } from '@rainbow-me/rainbowkit/wallets';
const connectors = connectorsForWallets(
[
{
groupName: 'Recommended',
wallets: [rainbowWallet, walletConnectWallet],
},
],
{
appName: 'My RainbowKit App',
projectId: 'YOUR_PROJECT_ID',
}
);

Você pode então passar seus conectores para o createConfig do wagmi.

import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import { createConfig } from 'wagmi';
const connectors = connectorsForWallets(/* ... */);
const config = createConfig({
connectors,
{/* Wagmi config */}
});
const queryClient = new QueryClient();
const App = () => (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider {...etc}>
{/* Your App */}
</RainbowKitProvider>
</QueryClientProvider>
</WagmiProvider>
);

As seguintes carteiras são fornecidas através do objeto wallet.

As seguintes carteiras são destinadas a métodos de conexão genéricos, em vez de aplicativos específicos. Como resultado, é recomendado que essas carteiras estejam sempre incluídas.

Esta é uma opção de carteira de fallback projetada para carteiras baseadas em WalletConnect que não foram fornecidas por outra carteira na lista.

É recomendado que você sempre inclua esta carteira na lista para garantir que todas as carteiras baseadas em WalletConnect sejam suportadas.

import { walletConnectWallet } from '@rainbow-me/rainbowkit/wallets';

Esta é uma opção de carteira de fallback projetada para cenários onde window.ethereum existe, mas não foi fornecida por outra carteira na lista. Esta carteira irá se ocultar automaticamente da lista quando o fallback não for necessário ou se não houver carteira injetada disponível.

É recomendado que você sempre inclua esta carteira na lista para garantir que todas as carteiras injetadas sejam suportadas.

import { injectedWallet } from '@rainbow-me/rainbowkit/wallets';

Para dApps que suportam Safe Apps e permitem que os usuários se conectem facilmente com seu cofre Safe ou multi-sig, inclua a opção safeWallet para conexões automáticas. A opção Safe só aparecerá no ambiente do navegador Safe Wallet.

import { safeWallet } from '@rainbow-me/rainbowkit/wallets';

As seguintes carteiras são fornecidas através do objeto wallet (em ordem alfabética).

import { oneInchWallet } from '@rainbow-me/rainbowkit/wallets';
import { argentWallet } from '@rainbow-me/rainbowkit/wallets';
import { binanceWallet } from '@rainbow-me/rainbowkit/wallets';
import { bitgetWallet } from '@rainbow-me/rainbowkit/wallets';
import { bifrostWallet } from '@rainbow-me/rainbowkit/wallets';
import { bitskiWallet } from '@rainbow-me/rainbowkit/wallets';
import { bitverseWallet } from '@rainbow-me/rainbowkit/wallets';
import { bloomWallet } from '@rainbow-me/rainbowkit/wallets';
import { braveWallet } from '@rainbow-me/rainbowkit/wallets';
import { bybitWallet } from '@rainbow-me/rainbowkit/wallets';

Este conector de carteira suporta tanto o aplicativo quanto a extensão Coinbase Wallet, bem como Coinbase Smart Wallet na Web.

Um argumento preference está disponível para controlar se o Smart Wallet está habilitado e disponível para os usuários. O comportamento baseado em preferências é documentado aqui.

O Smart Wallet será habilitado por padrão com all no início de junho, sem uma atualização adicional.

Os desenvolvedores podem testar o Smart Wallet com as cadeias sepolia e baseSepolia hoje, configurando smartWalletOnly e incluindo coinbaseWallet em sua lista de carteiras da seguinte forma:

import { coinbaseWallet } from '@rainbow-me/rainbowkit/wallets';
// Enable Coinbase Smart Wallet for testing
coinbaseWallet.preference = 'smartWalletOnly';
import { coin98Wallet } from '@rainbow-me/rainbowkit/wallets';
import { compassWallet } from '@rainbow-me/rainbowkit/compassWallet';
import { coreWallet } from '@rainbow-me/rainbowkit/wallets';
import { dawnWallet } from '@rainbow-me/rainbowkit/wallets';
import { enkryptWallet } from '@rainbow-me/rainbowkit/wallets';
import { foxWallet } from '@rainbow-me/rainbowkit/wallets';
import { frameWallet } from '@rainbow-me/rainbowkit/wallets';
import { frontierWallet } from '@rainbow-me/rainbowkit/wallets';
import { gateWallet } from '@rainbow-me/rainbowkit/wallets';
import { imTokenWallet } from '@rainbow-me/rainbowkit/wallets';
import { iopayWallet } from '@rainbow-me/rainbowkit/wallets';
import { kaiaWallet } from '@rainbow-me/rainbowkit/wallets';
import { kaikasWallet } from '@rainbow-me/rainbowkit/wallets';
import { krakenWallet } from '@rainbow-me/rainbowkit/wallets';
import { kresusWallet } from '@rainbow-me/rainbowkit/wallets';
import { ledgerWallet } from '@rainbow-me/rainbowkit/wallets';
import { magicEdenWallet } from '@rainbow-me/rainbowkit/wallets';
import { mewWallet } from '@rainbow-me/rainbowkit/wallets';
import { metaMaskWallet } from '@rainbow-me/rainbowkit/wallets';
import { okxWallet } from '@rainbow-me/rainbowkit/wallets';
import { omniWallet } from '@rainbow-me/rainbowkit/wallets';
import { oneKeyWallet } from '@rainbow-me/rainbowkit/wallets';
import { phantomWallet } from '@rainbow-me/rainbowkit/wallets';
import { rabbyWallet } from '@rainbow-me/rainbowkit/wallets';
import { rainbowWallet } from '@rainbow-me/rainbowkit/wallets';
import { ramperWallet } from '@rainbow-me/rainbowkit/wallets';
import { roninWallet } from '@rainbow-me/rainbowkit/wallets';
import { safeheronWallet } from '@rainbow-me/rainbowkit/wallets';
import { tahoWallet } from '@rainbow-me/rainbowkit/wallets';
import { talismanWallet } from '@rainbow-me/rainbowkit/wallets';
import { tokenaryWallet } from '@rainbow-me/rainbowkit/wallets';
import { tokenPocketWallet } from '@rainbow-me/rainbowkit/wallets';
import { trustWallet } from '@rainbow-me/rainbowkit/wallets';
import { uniswapWallet } from '@rainbow-me/rainbowkit/wallets';
import { xdefiWallet } from '@rainbow-me/rainbowkit/wallets';
import { zerionWallet } from '@rainbow-me/rainbowkit/wallets';

Aqui estão alguns exemplos de exibição de diferentes carteiras, em diferentes ordens.

Mostrar Rainbow, MetaMask e Coinbase juntamente com carteiras genéricas de fallback.

import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import { metaMaskWallet, walletConnectWallet, } from '@rainbow-me/rainbowkit/wallets';
const connectors = connectorsForWallets(
[
{
groupName: 'Recommended',
wallets: [metaMaskWallet, walletConnectWallet],
},
],
{ appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
);

Mostre MetaMask junto com carteiras genéricas de fallback.

import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import { rainbowWallet, metaMaskWallet, coinbaseWallet, walletConnectWallet, } from '@rainbow-me/rainbowkit/wallets';
const connectors = connectorsForWallets(
[
{
groupName: 'Suggested',
wallets: [
rainbowWallet,
metaMaskWallet,
coinbaseWallet,
walletConnectWallet,
],
},
],
{ appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
);

Lembrete: A ordem do array wallets define a ordem em que as carteiras serão exibidas na interface do usuário.

Você pode usar a chave groupName para nomear diferentes grupos de carteira. Isso é útil se você deseja comunicar aos seus usuários quais carteiras você recomenda, bem como outras carteiras possíveis.

Recomende Rainbow e MetaMask, mas também ofereça Coinbase juntamente com carteiras genéricas de fallback.

import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import { rainbowWallet, metaMaskWallet, coinbaseWallet, walletConnectWallet, } from '@rainbow-me/rainbowkit/wallets';
const connectors = connectorsForWallets(
[
{
groupName: 'Recommended',
wallets: [rainbowWallet, metaMaskWallet],
},
{
groupName: 'Others',
wallets: [coinbaseWallet, walletConnectWallet],
},
],
{ appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
);