Loading...
Loading...
Build wallet-connected applications with the Phantom Connect SDK for Solana. Use when integrating Phantom wallets into React, React Native, or vanilla JS/TS apps — including wallet connection, social login (Google/Apple), transaction signing, message signing, token-gated access, crypto payments, and NFT minting. Covers @phantom/react-sdk, @phantom/react-native-sdk, and @phantom/browser-sdk.
npx skill4agent add sendaifun/skills phantom-connect| Platform | SDK | Package |
|---|---|---|
| React web apps | React SDK | |
| React Native / Expo | React Native SDK | |
| Vanilla JS / Vue / Angular | Browser SDK | |
| Provider | Description | Requires appId |
|---|---|---|
| Phantom browser extension | No |
| Google OAuth (embedded wallet) | Yes |
| Apple ID (embedded wallet) | Yes |
signAndSendTransactionsignTransactionsignAllTransactionsLAMPORTS_PER_SOL@solana/web3.js1000000000isConnectedreact-native-get-random-valuesAddressType@phantom/browser-sdkimport { PhantomProvider, useModal, usePhantom, darkTheme } from "@phantom/react-sdk";
import { AddressType } from "@phantom/browser-sdk";
function App() {
return (
<PhantomProvider
config={{
providers: ["google", "apple", "injected"],
appId: "your-app-id",
addressTypes: [AddressType.solana],
authOptions: { redirectUrl: "https://yourapp.com/callback" },
}}
theme={darkTheme}
>
<YourApp />
</PhantomProvider>
);
}// CRITICAL: Must be first import
import "react-native-get-random-values";
import { PhantomProvider, AddressType, darkTheme } from "@phantom/react-native-sdk";
// Requires app.json: { "expo": { "scheme": "myapp", "plugins": [...] } }import { BrowserSDK, AddressType } from "@phantom/browser-sdk";
const sdk = new BrowserSDK({
providers: ["google", "apple", "injected"],
appId: "your-app-id",
addressTypes: [AddressType.solana],
autoConnect: true,
});| Issue | Solution |
|---|---|
| "appId required" | Add appId from Phantom Portal when using google/apple providers |
| Redirect not working | Allowlist redirectUrl in Phantom Portal |
| React Native crashes | Import |
| Extension not detected | Use |
| Use |