dflow-phantom-connect について
アプリにPhantomウォレット接続とDFlow取引を実装するためのコーディングスキルです。SDKやSolana機能、スワップ、リアルタイム市場データの資料へタスク別に案内します。
主な機能
- 01Phantomウォレット接続と署名
- 02Solana送金、決済、NFTミント
- 03トークン保有者向けアクセス制御
- 04DFlowスワップと市場データ配信
- 05プラットフォーム別の実装ガイド
活用シーン
- 01ReactアプリへのPhantomログイン追加
- 02トークン保有者限定ページの構築
- 03DFlowトークンスワップの実装
- 04トークンペアのライブ板情報の表示
MCP 対応
PhantomとDFlowのMCPサーバー資料へのリンクがありますが、実装手順は主にSDK資料とAPIを扱います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dflowprotocol/ dflow_phantom-connect-skill --skill dflow-phantom-connectインストール後、Claude Code で/dflow-phantom-connectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/browser-sdk.mddflow-crypto-trading.mddflow-websockets.mdnft-minting.mdpayments.mdreact-native-sdk.mdreact-sdk.mdtoken-gating.mdtransactions.md詳細
Phantom Connect + DFlow スキル
手順
ステップ 1:ユーザーが作りたいものを特定する
分野を特定し、適切なリファレンスを参照します。
ウォレット接続と Solana での操作:
- Phantom ウォレットの接続(React、React Native、vanilla JS)
- メッセージまたはトランザクションへの署名
- トークンでゲートされたアクセス
- NFT のミント
- 暗号資産決済
- Solana での送金(SOL または SPL トークン)
DFlow の取引とマーケットデータ:
- トークンの現物スワップ(見積もり、署名、送信、確認)
- ライブ価格、オーダーブックの板の厚さ、優先手数料のストリーミング
複数のタスクを組み合わせる場合も多くあります(たとえば、スワップ UI にはウォレット接続と DFlow での取引の両方が必要です)。コードを書く前に、関連するリファレンスをすべて読んでください。
ステップ 2:関連するリファレンスを読む
Phantom Connect SDK(ウォレット接続、署名、認証):
references/react-sdk.md:React フック、コンポーネント、テーマ設定、PhantomProviderreferences/react-native-sdk.md:Expo の設定、ポリフィル、ディープリンク、モバイル認証references/browser-sdk.md:BrowserSDK の初期化、イベント、ウォレット検出、vanilla JS
Solana のパターン(トランザクション、アクセス制御、ミント、決済):
references/transactions.md:SOL/SPL の送金、署名、手数料の見積もりreferences/token-gating.md:クライアント側およびサーバー側でのトークンゲートアクセスreferences/nft-minting.md:ミントページ、Metaplex Core、圧縮 NFTreferences/payments.md:SOL/USDC 決済、バックエンドでの検証を伴うチェックアウト
DFlow(スワップ、ストリーミング):
references/dflow-crypto-trading.md:/orderを使った現物スワップ(最小単位、base58 のミント、ウォレットなしでの見積もり、優先手数料/プラットフォーム手数料/スポンサー手数料)references/dflow-websockets.md:見積もり、オーダーブック、優先手数料のリアルタイムストリーミング(ブラウザーからバックエンドを経由するプロキシ)
ステップ 3:適切な質問をする
実装する前に、分野に応じた質問をします。
Phantom Connect のタスクの場合:
- どのプラットフォームを使いますか?(React、React Native、vanilla JS)
- ソーシャルログイン(Google/Apple)が必要ですか、それとも拡張機能のみですか?
DFlow のタスクの場合:
- DFlow API キーをお持ちですか?(はい:
x-api-keyを使う本番ホスト。いいえ:開発用ホスト、レート制限あり。本番キー:pond.dflow.net/get-started/api-key。)DFlow のすべての機能で同じキーを使います。 - クライアントの実行環境は何ですか?(ウェブ、モバイル、バックエンド、CLI)ブラウザーアプリではキーをバックエンドに保管し、DFlow の HTTP 通信と WebSocket 通信をバックエンド経由でプロキシします。
- プラットフォーム手数料を設定しますか?設定する場合、bps と、ビルダーが所有するどの手数料アカウントを使いますか(そのアカウントはあらかじめ作成しておく必要があります)?
ステップ 4:実装する
リファレンスファイルに記載されたパターンに従います。分野ごとの主なルールは次のとおりです。
Phantom Connect:
- プロバイダーの設定、フック、コンポーネント、認証プロバイダーなど、SDK の詳細はすべて SDK リファレンスファイルに記載されています。Phantom の統合コードを書く前に、必ず読んでください。
DFlow:
- 取引は同期処理です。
/orderを 1 回呼び出すと、署名、送信、確認が可能なトランザクションが返されます。 - セキュリティのベストプラクティスとして、DFlow API キーはブラウザーのコードではなく、バックエンドに保管してください。ブラウザーアプリでは、DFlow の HTTP 通信(
/orderは CORS に対応していません)と WebSocket ストリームをバックエンド経由でプロキシします。 - 開発用エンドポイント(
dev-quote-api.dflow.net)はキーなしで利用できますが、レート制限があります。本番環境では pond.dflow.net/get-started/api-key から取得したキーが必要です。本番環境では、見積もりと板情報のストリームへのアクセスはキーごとに許可されます。
ステップ 5:エラーに対処する
各リファレンスファイルに、分野固有のエラー処理が記載されています。複数の分野に共通する主な注意点は次のとおりです。
- ユーザーがトランザクションまたは署名リクエストを拒否する
- 署名が必要な操作を行う際に、ウォレットが接続されていない
- DFlow API が 429(レート制限)を返す:バックオフを伴って再試行するか、本番 API キーを取得する
- DFlow から
route_not_foundが返される:その取引量に対してペアの流動性が不足している可能性があります。ミントアドレスと、amountが最小単位で指定されていることも確認してください
例
例 1:React ウォレット接続
ユーザーの依頼:「Next.js アプリに Phantom ウォレットのログインを追加してください」
手順:
references/react-sdk.mdを読みます@phantom/react-sdkをインストールします- 必要な認証プロバイダーと appId を指定して、アプリを PhantomProvider でラップします
- 接続ボタンに
useModalフックを使用します useAccountsを使用して、接続中のウォレットアドレスを表示します
結果:ソーシャルログインと拡張機能に対応した、動作するウォレット接続
例 2:トークン保有者限定ページ
ユーザーの依頼:「BONK 保有者だけが閲覧できるページを作成してください」
手順:
references/react-sdk.mdとreferences/token-gating.mdを読みます- ウォレット接続を設定します
- 接続中のウォレットの BONK トークン残高を照会します
- 残高のしきい値に基づいてコンテンツを条件付きで表示します
- 本番環境では、サーバー側の署名検証を追加します
結果:ウォレットのトークン残高を確認してコンテンツへのアクセスを制限するページ
例 3:DFlow トークンスワップ
ユーザーの依頼:「DFlow を使ったスワップ機能を追加してください」
手順:
- API キー、クライアント環境、プラットフォーム手数料について確認します
references/dflow-crypto-trading.mdを読みます/orderのフローを使用します。注文をリクエストし(ブラウザーではバックエンド経由でプロキシします)、返されたトランザクションをデシリアライズして署名、送信、確認します- ブラウザーでは Phantom SDK で署名して送信します(
references/transactions.mdを参照)。サーバー側ではキーペアで署名し、RPC 経由で送信します
結果:DFlow のルーティングを使用した、動作するスワップ
例 4:ウォレット接続機能付きの完全なスワップページ
ユーザーの依頼:「ウォレット接続機能と DFlow を備えた完全なスワップページを作成してください」
手順:
- プラットフォーム、API キー、プラットフォーム手数料について確認します
- 関連する SDK リファレンスと
references/dflow-crypto-trading.mdを読みます - Phantom SDK でウォレット接続を設定します
- スワップフォームを作成します。キーをサーバー側に保持するため、バックエンド経由で
/orderをプロキシします - Phantom SDK で署名して送信し、確認します
結果:Phantom ウォレットと DFlow トレーディングを組み合わせた、エンドツーエンドのスワップページ
例 5:リアルタイムのオーダーブック
ユーザーの依頼:「トークンペアのリアルタイムのオーダーブックを表示してください」
手順:
references/dflow-websockets.mdを読みます- キーを保持するバックエンドのリレーを立ち上げ、
x-api-keyヘッダー付きで/book-streamに接続し、フレームをブラウザーに中継します { op: "subscribe", base_mint, quote_mint }で購読し、スロットごとにバッチ化されたupdates[]を表示します- 接続が切れたら再接続して再購読します
結果:キーをサーバー側に保持した、リアルタイムのストリーミングオーダーブック
リソース
- Phantom Portal:phantom.com/portal/login
- Phantom ドキュメント:docs.phantom.com/introduction
- SDK の例:github.com/phantom/phantom-connect-sdk/tree/main/examples
- Phantom MCP サーバー:docs.phantom.com/resources/mcp-server
- DFlow MCP サーバー:pond.dflow.net/mcp
- DFlow MCP ドキュメント:pond.dflow.net/ai/mcp
- DFlow ドキュメント:pond.dflow.net/introduction