Skip to main content

Brave Wallet detection

Compatibility with Phantom

Since Brave Wallet aims to be compatible with Phantom's exposed API, we set window.braveSolana.isPhantom to true. Also window.solana is an alias of window.braveSolana.

Synchronous detection

const isBraveWallet = window.braveSolana.isBraveWallet
console.log('Brave Wallet: ', isBraveWallet)

Wallet adapter

Brave Wallet has its own BraveWalletAdapter and also compatible with PhantomWalletAdapter. Examples can be found here.

Here is how to add Brave Wallet into example code

diff --git a/packages/starter/example/components/ContextProvider.tsx b/packages/starter/example/components/ContextProvider.tsx
index 8b35f473..28398e46 100644
--- a/packages/starter/example/components/ContextProvider.tsx
+++ b/packages/starter/example/components/ContextProvider.tsx
@@ -6,7 +6,7 @@ import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
import { WalletDialogProvider as MaterialUIWalletDialogProvider } from '@solana/wallet-adapter-material-ui';
import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
import { WalletModalProvider as ReactUIWalletModalProvider } from '@solana/wallet-adapter-react-ui';
-import { FakeWalletAdapter } from '@solana/wallet-adapter-wallets';
+import { BraveWalletAdapter } from '@solana/wallet-adapter-wallets';
import { clusterApiUrl } from '@solana/web3.js';
import { SnackbarProvider, useSnackbar } from 'notistack';
import type { FC, ReactNode } from 'react';
@@ -67,7 +67,7 @@ const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => {
* will be compiled into your application, and only the dependencies of wallets that
* your users connect to will be loaded.
*/
- new FakeWalletAdapter(),
+ new BraveWalletAdapter(),
],
[]
);