Build Solana wallet-connected apps with Phantom Connect SDKs and DFlow spot trading. Use when user asks to connect a Phantom wallet, integrate Phantom in React, React Native, or vanilla JS, sign messa
Install
Use withClaudeCursorCodex
The file stays in the publisher's repository. PlugMCP does not host or rewrite it.
Build Solana wallet-connected apps with Phantom Connect SDKs and DFlow spot trading. Use when user asks to connect a Phantom wallet, integrate Phantom in React, React Native, or vanilla JS, sign messages or transactions, build token-gated pages, mint NFTs, accept crypto payments, or swap/stream tokens with DFlow. Covers @phantom/react-sdk, @phantom/react-native-sdk, @phantom/browser-sdk, and DFlow spot trading and market-data streaming. Do NOT use for Ethereum or EVM wallet integrations, or non-DFlow DEX routing.
name: dflow-phantom-connect
description: "Build Solana wallet-connected apps with Phantom Connect SDKs and DFlow spot trading. Use when user asks to connect a Phantom wallet, integrate Phantom in React, React Native, or vanilla JS, sign messages or transactions, build token-gated pages, mint NFTs, accept crypto payments, or swap/stream tokens with DFlow. Covers @phantom/react-sdk, @phantom/react-native-sdk, @phantom/browser-sdk, and DFlow spot trading and market-data streaming. Do NOT use for Ethereum or EVM wallet integrations, or non-DFlow DEX routing."
license: MIT
metadata:
author: DFlow & Phantom Connect
version: 1.1.0
tags: [solana, phantom, wallet, trading, market-data]
mcp-server: pond.dflow.net/mcp
Phantom Connect + DFlow Skill
Instructions
Step 1: Identify What the User Wants to Build
Determine the domain, then route to the right references.
Wallet connection and Solana interactions:
Connecting a Phantom wallet (React, React Native, vanilla JS)
Signing messages or transactions
Token-gated access
NFT minting
Crypto payments
Solana transfers (SOL or SPL tokens)
DFlow trading & market data:
Spot token swaps (quote, sign, submit, confirm)
Live prices, order-book depth, or priority-fee streaming
Many tasks combine both (for example, a swap UI needs wallet connection AND DFlow trading). Read all relevant references before writing code.
references/dflow-websockets.md: real-time quote, order-book, and priority-fee streaming (browser proxies through the backend)
Step 3: Ask the Right Questions
Before implementing, ask questions based on the domain:
For Phantom Connect tasks:
Which platform? (React, React Native, vanilla JS)
Do they need social login (Google/Apple) or extension only?
For DFlow tasks:
Do you have a DFlow API key? (Yes: prod host with x-api-key. No: dev host, rate-limited. Prod key: pond.dflow.net/get-started/api-key.) It's one key for everything DFlow.
Client environment? (web, mobile, backend, CLI) Browser apps keep the key on the backend and proxy DFlow HTTP and WebSocket through it.
Platform fees? If yes, what bps and which builder-owned fee account (which must already exist)?
Step 4: Implement
Follow the patterns in the reference files. Key rules by domain:
Phantom Connect:
All SDK details (provider setup, hooks, components, auth providers) are in the SDK reference files. Read them before writing Phantom integration code.
DFlow:
Trades are synchronous: one /order call returns a signed-ready transaction that you sign, submit, and confirm.
As a security best practice, keep the DFlow API key on the backend, not in browser code. Browser apps proxy DFlow HTTP (/order serves no CORS) and the WebSocket streams through their backend.
Dev endpoints (dev-quote-api.dflow.net) work without a key but are rate-limited; production requires a key from pond.dflow.net/get-started/api-key. In production, quote and book stream access is granted per key.
Step 5: Handle Errors
Each reference file contains domain-specific error handling. Key cross-cutting concerns:
User rejects a transaction or signature request
Wallet not connected when a signed action is attempted
DFlow API returns 429 (rate limited): retry with backoff or get a production API key
route_not_found from DFlow: a likely cause is insufficient liquidity for the pair at that size; also check the mint addresses and that amount is in atomic units
Examples
Example 1: React wallet connection
User says: "Add Phantom wallet login to my Next.js app"
Actions:
Read references/react-sdk.md
Install @phantom/react-sdk
Wrap app in PhantomProvider with desired auth providers and appId
Use useModal hook for a connect button
Use useAccounts to display the connected wallet address
Result: Working wallet connection with social login and extension support
Example 2: Token-gated page
User says: "Build a page that only BONK holders can see"
Actions:
Read references/react-sdk.md and references/token-gating.md
Set up wallet connection
Query the BONK token balance for the connected wallet
Conditionally render content based on balance threshold
For production: add server-side signature verification
Result: Page that checks wallet token balance and gates content
Example 3: DFlow token swap
User says: "Add a swap feature using DFlow"
Actions:
Ask: API key? Client environment? Platform fees?
Read references/dflow-crypto-trading.md
Use the /order flow: request the order (proxy through the backend in a browser), deserialize the returned transaction, sign, submit, and confirm
In a browser, sign and send with the Phantom SDK (see references/transactions.md); server-side, sign with a keypair and submit through your RPC
Result: Working swap with DFlow routing
Example 4: Full swap page with wallet connection
User says: "Build a full swap page with wallet connect and DFlow"
Actions:
Ask: which platform? API key? Platform fees?
Read the relevant SDK reference AND references/dflow-crypto-trading.md
Set up wallet connection with the Phantom SDK
Build the swap form; proxy /order through the backend so the key stays server-side
Sign and send with the Phantom SDK, then confirm
Result: End-to-end swap page combining Phantom wallet and DFlow trading
Example 5: Live order book
User says: "Show a live order book for a token pair"
Actions:
Read references/dflow-websockets.md
Stand up a backend relay that holds the key, opens /book-stream with the x-api-key header, and relays frames to the browser
Subscribe with { op: "subscribe", base_mint, quote_mint }; render the batched per-slot updates[]
Reconnect and re-subscribe on drop
Result: Live streaming order book, key kept server-side
Download vendored/dflow/dflow-phantom-connect/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does dflow-phantom-connect live?
The publisher keeps it at https://github.com/internet-court/internet-court-skill.
Which agents can use dflow-phantom-connect?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.