Connecting to Phantom wallets with Browser SDK
connect()
import { BrowserSDK } from "@phantom/browser-sdk"; const sdk = new BrowserSDK({ providerType: "injected" }); async function connectToExtension() { try { const result = await sdk.connect(); console.log("Connected addresses:", result.addresses); return result; } catch (error) { console.error("Connection failed:", error); } }
import { BrowserSDK, AddressType } from "@phantom/browser-sdk"; const sdk = new BrowserSDK({ providerType: "embedded", addressTypes: [AddressType.solana, AddressType.ethereum], organizationId: "your-organization-id", apiBaseUrl: "https://api.phantom.app/v1/wallets" }); async function connectEmbedded() { try { const result = await sdk.connect(); console.log("Wallet ID:", result.walletId); console.log("Connected addresses:", result.addresses); return result; } catch (error) { console.error("Connection failed:", error); } }
interface ConnectResult { walletId: string; addresses: WalletAddress[]; } interface WalletAddress { addressType: AddressType; // 'solana', 'ethereum', 'bitcoin', 'sui' address: string; }
{ walletId: "wallet_123abc456def", addresses: [ { addressType: "solana", address: "8UviJpZ7Q...x2" }, { addressType: "ethereum", address: "0x742d35...4686" } ] }
function isPhantomExtensionAvailable(): boolean { return typeof window !== 'undefined' && window.phantom?.solana?.isPhantom === true; } async function connectWithDetection() { if (!isPhantomExtensionAvailable()) { // Redirect to download or show embedded option window.open("https://phantom.app/download", "_blank"); return; } const sdk = new BrowserSDK({ providerType: "injected" }); return await sdk.connect(); }
Was this page helpful?