phantom-connect
SKILL.md
Phantom Connect Development Skill
A Claude Code skill for building wallet-connected applications with Phantom Connect SDKs.
Overview
This skill provides Claude with deep knowledge of the Phantom Connect SDK ecosystem:
- React SDK:
@phantom/react-sdkfor React web apps - React Native SDK:
@phantom/react-native-sdkfor mobile apps - Browser SDK:
@phantom/browser-sdkfor vanilla JS/TS - Solana: Full Solana blockchain support
- Auth Methods: Social login (Google, Apple), browser extension
When to Use This Skill
Claude should use this skill when users ask about:
- Phantom wallet integration
- Connecting wallets in React/React Native/vanilla JS apps
- Signing messages or transactions with Phantom
- Token-gated access patterns
- NFT minting with wallet connection
- Crypto payment flows
- Solana wallet support
SDK Selection
| Platform | SDK | Package |
|---|---|---|
| React web apps | React SDK | @phantom/react-sdk |
| React Native / Expo | React Native SDK | @phantom/react-native-sdk |
| Vanilla JS / Vue / Angular | Browser SDK | @phantom/browser-sdk |
Prerequisites
All integrations require:
- Phantom Portal Account - Register at phantom.com/portal
- App ID - Get from Portal → App → Set Up
- Allowlisted URLs - Add domains and redirect URLs in Portal
Core Concepts
Auth Providers
| Provider | Description | Requires appId |
|---|---|---|
"injected" |
Phantom browser extension | No |
"google" |
Google OAuth (embedded wallet) | Yes |
"apple" |
Apple ID (embedded wallet) | Yes |
Supported Networks
Solana: Mainnet-beta, Devnet, Testnet
Quick Start Patterns
React SDK
import { 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>
);
}
React Native SDK
// 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": [...] } }
Browser SDK
import { BrowserSDK, AddressType } from "@phantom/browser-sdk";
const sdk = new BrowserSDK({
providers: ["google", "apple", "injected"],
appId: "your-app-id",
addressTypes: [AddressType.solana],
autoConnect: true,
});
Specialized Topics
For detailed implementation patterns, Claude should read these files:
- react-sdk.md - Complete React SDK reference (hooks, components, theming)
- react-native-sdk.md - Mobile setup, Expo config, deep links
- browser-sdk.md - Vanilla JS patterns, events, wallet discovery
- transactions.md - Solana transaction patterns
- token-gating.md - Token-gated access implementation
- nft-minting.md - NFT mint page patterns
- payments.md - Crypto payment flows
Common Issues
| Issue | Solution |
|---|---|
| "appId required" | Add appId from Phantom Portal when using google/apple |
| Redirect not working | Allowlist redirectUrl in Phantom Portal |
| React Native crashes | Import react-native-get-random-values as FIRST import |
| Extension not detected | Use waitForPhantomExtension() with timeout |
Resources
- Phantom Portal - App registration
- Phantom Docs - Full documentation
- SDK Examples - Working demos
- MCP Server - AI docs access
Weekly Installs
11
Repository
th3ya0vi/phanto…ct-skillFirst Seen
Jan 22, 2026
Security Audits
Installed on
claude-code10
opencode9
codex8
cursor7
gemini-cli6
antigravity4