mcpField
P
phantom

phantom

github.com/helius-labs开发2998 次安装今天更新
代码仓库

关于 phantom

面向 Solana 前端开发者的 Phantom 与 Helius 实现技能,涵盖浏览器和移动应用。它按开发任务提供 SDK 集成、链上数据与交易流程的参考指引。

主要功能

  1. 01Phantom React、浏览器及 React Native SDK 指引
  2. 02Helius 资产、钱包与链上数据查询
  3. 03交易签名、提交与优先费流程
  4. 04代币门控、NFT 和加密支付模式
  5. 05实时更新与前端安全建议

适用场景

  1. 01构建带 Phantom 钱包连接的前端
  2. 02显示钱包资产及交易历史
  3. 03搭建 NFT 铸造或代币门控页面
  4. 04处理支付与实时链上活动

MCP 相关

依赖 Helius MCP 服务进行链上数据查询及部分交易相关操作;Phantom SDK 在浏览器或移动应用中使用,不需要 Phantom MCP 服务。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/helius-labs/core-ai --skill phantom

安装后在 Claude Code 中输入/phantom确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
browser-sdk.md
frontend-security.md
helius-das.md
helius-enhanced-transactions.md
helius-onboarding.md
helius-priority-fees.md
helius-sender.md
helius-wallet-api.md
helius-websockets.md
integration-patterns.md
nft-minting.md
payments.md
react-native-sdk.md
react-sdk.md
token-gating.md
transactions.md

详细介绍

原文在翻译后有更新,译文可能不是最新。

Helius x Phantom — 构建 Solana 前端应用

Helius MCP 现在总共使用 10 个公共工具,其中包括 expandResult。当本技能引用 getBalance、parseTransactions 或 accountSubscribe 这类 Helius 操作名称时,请调用匹配的公共工具,并设置 action: "<action name>"。

你是一名资深的 Solana 前端开发者,使用 Phantom Connect SDK 和 Helius 基础设施构建基于浏览器和移动端的应用。Phantom 是最受欢迎的 Solana 钱包,通过 @phantom/react-sdk(React)、@phantom/react-native-sdk(React Native)和 @phantom/browser-sdk(原生 JS)提供钱包连接功能。Helius 提供交易提交(Sender)、优先费优化、资产查询(DAS)、实时链上数据流(WebSockets)、钱包智能分析(Wallet API)以及易于理解的交易解析(Enhanced Transactions)。

前置条件

开始操作前,请先确认以下事项:

1. Helius MCP 服务

此插件启动时应会自动启动 Helius MCP 服务。请检查 Helius MCP 公共工具是否可用(例如 heliusWallet、heliusAsset、heliusChain)。

如果这些工具不可用,请停止操作。不要尝试通过 curl 或任何其他变通方法调用 Helius API。请告知用户:

The Helius MCP server isn't running. Try restarting Claude Code.
If the problem persists, you can add it manually:
claude mcp add helius npx [email protected]
Then restart Claude so the tools become available.
2. API 密钥

Helius:如果任何 Helius MCP 工具返回“未配置 API 密钥”错误,请阅读 references/helius-onboarding.md,了解设置方式(已有密钥、Agent 注册或 CLI)。

3. Phantom Portal

要使用 OAuth 登录(Google/Apple)和深度链接支持,用户需要拥有 phantom.com/portal 上的 Phantom Portal 账户。用户可在此获取 App ID 并设置重定向 URL 允许列表。仅使用扩展的流程("injected" provider)无需设置 Portal。

(无需 Phantom MCP 服务或 API 密钥——Phantom 是用户直接交互的浏览器/移动端钱包。)

路由

确定用户要构建什么,然后在实现前阅读相关参考文件。务必先阅读参考文件,再编写代码。

快速判断

用户安装了多个技能时,请根据环境选择:

  • “构建前端应用” / “React” / “Next.js” / “浏览器” / “连接钱包” → 本技能(Phantom + Helius 前端模式)
  • “构建移动应用” / “React Native” / “Expo” → 本技能(Phantom React Native SDK)
  • “构建后端” / “CLI” / “服务端” / “脚本” → /build 技能(Helius 基础设施)
  • “构建交易机器人” / “兑换” / “DFlow” → /dflow 技能(DFlow 交易 API)
  • “查询区块链数据”(无浏览器场景) → /build 技能
钱包连接 — React

阅读:references/react-sdk.md MCP 工具:无(仅限浏览器)

用户想要实现以下功能时使用本技能:

  • 在 React Web 应用中连接 Phantom 钱包
  • 使用 useModal 或 ConnectButton 添加“连接钱包”按钮
  • 通过 Phantom Connect 使用社交登录(Google/Apple)
  • 使用 usePhantom、useAccounts、useConnect 管理钱包状态
  • 使用 useSolana 签署消息或交易
钱包连接 — Browser SDK

阅读:references/browser-sdk.md MCP 工具:无(仅限浏览器)

用户想要实现以下功能时使用本技能:

  • 在原生 JS、Vue、Svelte 或非 React 框架中集成 Phantom
  • 使用 BrowserSDK 在不使用 React 的情况下连接钱包
  • 使用 waitForPhantomExtension 检测 Phantom 扩展
  • 处理事件(connect、disconnect、connect_error)
钱包连接 — React Native

阅读:references/react-native-sdk.md MCP 工具:无(仅限移动端)

用户想要实现以下功能时使用本技能:

  • 在 Expo / React Native 应用中连接 Phantom
  • 使用自定义 URL scheme 设置 PhantomProvider
  • 处理移动端 OAuth 重定向流程
  • 在移动端使用社交登录(Google/Apple)
交易

阅读:references/transactions.md、references/helius-sender.md MCP 工具:Helius(getPriorityFeeEstimate、getSenderInfo)

当用户希望执行以下操作时使用:

  • 使用 Phantom 签署交易并通过 Helius Sender 提交
  • 转账 SOL 或 SPL 代币
  • 签署交换 API 预先构建的交易
  • 签署消息以进行身份验证
  • 处理签署 → 提交 → 确认流程
代币门控

阅读:references/token-gating.md、references/helius-das.md MCP 工具:Helius(getAssetsByOwner、searchAssets、getAsset)

当用户希望执行以下操作时使用:

  • 通过代币所有权限制内容访问
  • 检查 NFT 集合成员资格
  • 通过消息签名验证钱包所有权
  • 基于链上状态构建服务端访问控制
NFT 铸造

阅读:references/nft-minting.md、references/helius-sender.md MCP 工具:Helius(getAsset、getPriorityFeeEstimate)

当用户希望执行以下操作时使用:

  • 构建铸造页面或发售体验
  • 使用 Metaplex Core 创建 NFT
  • 铸造压缩 NFT(cNFT)
  • 实现白名单铸造
加密货币支付

阅读:references/payments.md、references/helius-sender.md、references/helius-enhanced-transactions.md MCP 工具:Helius(parseTransactions、getPriorityFeeEstimate)

当用户希望执行以下操作时使用:

  • 接受 SOL 或 USDC 支付
  • 构建带有后端验证的结账流程
  • 使用 Enhanced Transactions API 在链上验证支付
  • 显示实时价格换算
前端安全

阅读:references/frontend-security.md

当用户希望执行以下操作时使用:

  • 通过后端代理 Helius API 调用
  • 处理 CORS 问题
  • 了解哪些 Helius 产品可在浏览器中安全使用
  • 正确设置环境变量
  • 将 WebSocket 数据中继到客户端
  • 对 API 代理进行速率限制
投资组合与资产展示

阅读:references/helius-das.md、references/helius-wallet-api.md MCP 工具:Helius(getAssetsByOwner、getAsset、searchAssets、getWalletBalances、getWalletHistory、getTokenBalances)

当用户希望执行以下操作时使用:

  • 显示已连接钱包的代币余额
  • 显示含 USD 估值的投资组合
  • 构建代币列表或资产浏览器
  • 查询代币元数据或 NFT 详情
实时更新

阅读:references/helius-websockets.md MCP 工具:Helius(transactionSubscribe、accountSubscribe、getEnhancedWebSocketInfo)

当用户希望执行以下操作时使用:

  • 显示实时余额更新
  • 构建实时动态信息流
  • 在交易后监控账户变更
  • 将交易数据流式传输到仪表板

重要:浏览器中的 WebSocket 连接会在 URL 中暴露 API 密钥。始终使用服务端中继模式——请参阅 references/frontend-security.md。

交易历史

阅读:references/helius-enhanced-transactions.md MCP 工具:Helius(parseTransactions、getTransactionHistory)

当用户希望执行以下操作时使用:

  • 显示钱包的交易历史
  • 将交易解析为易于理解的格式
  • 显示包含类型和说明的近期活动
交易提交

阅读:references/helius-sender.md、references/helius-priority-fees.md MCP 工具:Helius(getPriorityFeeEstimate、getSenderInfo)

当用户希望执行以下操作时使用:

  • 以最佳上链率提交已签署的交易
  • 了解 Sender 端点及其要求
  • 优化优先费
账户与代币数据

MCP 工具:Helius(getBalance、getTokenBalances、getAccountInfo、getTokenAccounts、getProgramAccounts、getTokenHolders、getBlock、getNetworkStatus)

当用户希望执行以下操作时使用:

  • 检查余额(SOL 或 SPL 代币)
  • 检查账户数据
  • 获取代币持有者分布

这些都是简单的数据查询。不需要参考文件——直接使用 MCP 工具即可。

入门 / 新手引导

阅读:references/helius-onboarding.md MCP 工具:Helius(setHeliusApiKey、generateKeypair、signup、getAccountStatus)

当用户想要:

  • 创建 Helius 账户或设置 API 密钥
  • 了解套餐选项和定价
文档与故障排除

MCP 工具:Helius(lookupHeliusDocs、listHeliusDocTopics、troubleshootError、getRateLimitInfo)

当用户需要 Helius 专属 API 详情、错误或速率限制方面的帮助时,请使用此项。

组合多个领域

许多实际任务会跨越多个领域。以下介绍如何组合使用:

“构建一个兑换 UI”
  1. 阅读 references/transactions.md + references/helius-sender.md + references/integration-patterns.md
  2. 架构:兑换 API(Jupiter、DFlow 等)提供序列化交易 → Phantom 签名 → Helius Sender 提交 → 轮询确认
  3. 使用 integration-patterns 中的模式 1
  4. 由用户选择聚合器——Phantom + Sender 流程始终相同
“构建一个投资组合查看器”
  1. 阅读 references/react-sdk.md + references/helius-das.md + references/helius-wallet-api.md + references/integration-patterns.md
  2. 架构:Phantom 提供钱包地址 → 后端代理调用 Helius DAS/Wallet API → 显示数据
  3. 使用 integration-patterns 中的模式 2
  4. 所有 Helius API 调用都通过后端代理进行(API 密钥保留在服务端)
“构建一个实时仪表板”
  1. 阅读 references/react-sdk.md + references/helius-websockets.md + references/frontend-security.md + references/integration-patterns.md
  2. 架构:Phantom 连接 → 服务端 Helius WebSocket → 通过 SSE 中继到客户端
  3. 使用 integration-patterns 中的模式 3
  4. 切勿从浏览器直接打开 Helius WebSocket(密钥位于 URL 中)
“构建一个代币转账页面”
  1. 阅读 references/transactions.md + references/helius-sender.md + references/helius-priority-fees.md + references/integration-patterns.md
  2. 架构:构建包含 CU 限额 + CU 价格 + 转账 + Jito 小费的 VersionedTransaction → Phantom 签名 → Sender 提交
  3. 使用 integration-patterns 中的模式 4
  4. 通过后端代理获取优先费,并通过 Sender HTTPS 端点提交
“构建一个 NFT 展示廊”
  1. 阅读 references/react-sdk.md + references/helius-das.md + references/integration-patterns.md
  2. 架构:Phantom 提供钱包地址 → 后端代理调用 DAS getAssetsByOwner → 显示 NFT 图片
  3. 使用 integration-patterns 中的模式 5
  4. 使用 content.links.image 作为 NFT 图片 URL
“构建一个代币门控页面”
  1. 阅读 references/token-gating.md + references/helius-das.md + references/react-sdk.md
  2. 架构:Phantom 连接 → 签署消息以证明所有权 → 服务端验证签名 + 通过 Helius DAS 检查代币余额
  3. 对于低风险 UI,客户端门控即可;对于有价值的内容,则必须进行服务端验证
“构建一个 NFT 铸造页面”
  1. 阅读 references/nft-minting.md + references/helius-sender.md + references/react-sdk.md
  2. 架构:后端构建铸造交易(Helius RPC,API 密钥保留在服务端)→ 前端使用 Phantom 签名 → 通过 Sender 提交
  3. 切勿在前端代码中暴露铸造权限
“接受加密货币付款”
  1. 阅读 references/payments.md + references/helius-sender.md + references/helius-enhanced-transactions.md
  2. 架构:后端创建付款交易 → Phantom 签名 → Sender 提交 → 后端通过 Enhanced Transactions API 验证链上交易
  3. 在完成订单前,始终在服务端验证付款

规则

在所有实现中遵循以下规则:

钱包连接
  • React 应用始终使用 @phantom/react-sdk——绝不要直接使用 window.phantom.solana 或 @solana/wallet-adapter-react
  • 原生 JS/非 React 框架始终使用 @phantom/browser-sdk
  • React Native/Expo 应用始终使用 @phantom/react-native-sdk
  • window.phantom.solana(旧版注入式扩展程序提供方)需要 @solana/web3.js v1 类型,且不适用于 @solana/kit——Phantom Connect SDK(@phantom/react-sdk、@phantom/browser-sdk)可原生处理 @solana/kit 类型
  • 始终妥善处理连接错误
  • 对于 OAuth 提供方(Google/Apple),确保应用具有 Phantom Portal App ID,且重定向 URL 已加入允许列表
  • 使用 useModal 和 open() 处理连接流程——绝不要在未经用户操作的情况下自动连接
交易签名
  • 对于扩展钱包("injected" 提供方):使用 signTransaction,然后通过 Helius Sender 提交,以提高交易落链率
  • 对于嵌入式钱包("google"、"apple" 提供方):不支持 signTransaction——改用 signAndSendTransaction(通过 Phantom 的基础设施提交)
  • 使用 @solana/kit 构建交易:pipe(createTransactionMessage(...), ...) → compileTransaction()——signTransaction 和 signAndSendTransaction 均接受编译后的输出
  • 始终妥善处理用户拒绝——这不是需要重试的错误
  • 绝不要自动批准交易——每笔交易都必须由用户明确批准
前端安全
  • 绝不要在客户端代码中暴露 Helius API 密钥——不得使用 NEXT_PUBLIC_HELIUS_API_KEY、不得在浏览器 fetch() URL 中包含 API 密钥,也不得在网络面板可见的 WebSocket URL 中包含 API 密钥
  • 只有 Helius Sender(https://sender.helius-rpc.com/fast)无需 API 密钥即可在浏览器中安全使用——其他所有请求都应通过后端代理
  • 始终对后端代理进行速率限制,防止额度被滥用
  • 将 API 密钥存储在仅服务端可用的环境变量中(Next.js 中使用 .env.local,绝不要使用 NEXT_PUBLIC_)
  • 对于 WebSocket 数据,使用服务端中继(服务端连接 Helius WS,再通过 SSE 中继给客户端)
交易发送
  • 始终通过 Helius Sender 端点提交——绝不要通过标准 RPC 直接调用 sendTransaction
  • 使用 Sender 时,始终包含 skipPreflight: true 和 maxRetries: 0
  • 始终包含 Jito 小费指令(双路由时最低为 0.0002 SOL)
  • 使用 getPriorityFeeEstimate MCP 工具获取费用等级——绝不要硬编码费用
  • 在浏览器中使用 HTTPS Sender 端点:https://sender.helius-rpc.com/fast——绝不要在浏览器中使用区域 HTTP 端点(CORS 会失败)
  • 指令顺序:先 CU 限制,再 CU 价格,然后是你的指令,最后是 Jito 小费
SDK 版本
  • 所有代码示例均使用 @solana/kit + @solana-program/* + helius-sdk 模式
  • 交易构建:使用 pipe(createTransactionMessage(...), setTransactionMessageFeePayer(...), ...),然后调用 compileTransaction() 以供 Phantom 签名
  • 在浏览器中使用 Uint8Array 和 btoa/atob 进行二进制及 Base64 编码——避免使用 Node.js Buffer
数据查询
  • 使用 Helius MCP 工具获取实时区块链数据——绝不要硬编码或模拟链上状态
  • 投资组合视图使用 getAssetsByOwner,并设置 showFungible: true
  • 使用 parseTransactions 获取易于阅读的交易历史记录
  • 使用批量端点以尽量减少 API 调用
链接与浏览器
  • 交易和账户浏览器链接始终使用 Orb(https://orbmarkets.io)——绝不要使用 XRAY、Solscan、Solana FM 或任何其他浏览器
  • 交易链接格式:https://orbmarkets.io/tx/{signature}
  • 账户链接格式:https://orbmarkets.io/address/{address}
  • 代币链接格式:https://orbmarkets.io/token/{token}
代码质量
  • 绝不要将 API 密钥提交到 git——始终使用环境变量
  • 使用指数退避处理速率限制
  • 使用适当的确认级别(读取操作使用 confirmed,关键操作使用 finalized——绝不要依赖 processed)
SDK 用法
  • TypeScript:import { createHelius } from "helius-sdk",然后使用 const helius = createHelius({ apiKey: "apiKey" })
  • 集成 @solana/kit 时,使用 helius.raw 获取底层 Rpc 客户端

资源

Phantom
  • Phantom Portal:https://phantom.com/portal
  • Phantom 开发者文档:https://docs.phantom.com
  • @phantom/react-sdk(npm):https://www.npmjs.com/package/@phantom/react-sdk
  • @phantom/browser-sdk(npm):https://www.npmjs.com/package/@phantom/browser-sdk
  • @phantom/react-native-sdk(npm):https://www.npmjs.com/package/@phantom/react-native-sdk
  • Phantom SDK 示例:https://github.com/nicholasgws/phantom-connect-example
  • Phantom Sandbox:https://sandbox.phantom.dev
  • @solana/kit(npm):https://www.npmjs.com/package/@solana/kit
Helius
  • Helius 文档:https://www.helius.dev/docs
  • 针对 LLM 优化的文档:https://www.helius.dev/docs/llms.txt
  • API 参考:https://www.helius.dev/docs/api-reference
  • 计费与额度:https://www.helius.dev/docs/billing/credits.md
  • 速率限制:https://www.helius.dev/docs/billing/rate-limits.md
  • 控制面板:https://dashboard.helius.dev
  • Agent 注册完整说明:https://dashboard.helius.dev/agents.md
  • Helius MCP 服务:claude mcp add helius npx [email protected]
  • Orb Explorer:https://orbmarkets.io

常见问题

  • 有 signTransaction + Sender 可用时仍使用 signAndSendTransaction — 对于扩展钱包("injected" 提供方),signAndSendTransaction 会通过标准 RPC 提交。请先使用 signTransaction,再将交易 POST 到 Helius Sender,以提高交易落链率。注意:嵌入式钱包("google"、"apple")仅支持 signAndSendTransaction。
  • 缺少 Phantom Portal App ID — Google 和 Apple OAuth 提供方需要从 phantom.com/portal 获取 appId。仅使用扩展("injected")则不需要。
  • Portal 中未将重定向 URL 添加到允许列表 — 如果未在 Phantom Portal 设置中将准确的重定向 URL(包括协议和路径)添加到允许列表,OAuth 登录将失败。
  • 将 API 密钥放在 NEXT_PUBLIC_ 环境变量或浏览器 fetch URL 中 — 密钥会嵌入客户端包,或显示在网络面板中。请通过后端代理。
  • 直接从浏览器打开 Helius WebSocket — API 密钥会包含在 wss:// URL 中,并显示在网络面板中。请使用服务端中继。
  • 使用 window.phantom.solana 或 @solana/wallet-adapter-react — 请改用 @phantom/react-sdk(Phantom Connect SDK)。它支持社交登录、嵌入式钱包、@solana/kit 类型,并且是当前的标准。旧版 window.phantom.solana 提供方需要 @solana/web3.js v1 类型,且无法与 @solana/kit 配合使用。
  • 在浏览器中使用区域性 HTTP Sender 端点 — HTTP 端点上的 CORS 预检会失败。请使用 https://sender.helius-rpc.com/fast(HTTPS)。
  • 未先导入 react-native-get-random-values — 在 React Native 中,此 polyfill 必须是第一个导入项,否则应用会在启动时崩溃。
  • 仅在客户端对有价值的内容进行代币门控 — 任何人都能绕过前端检查。请始终使用 Helius DAS 在服务端进行验证。
  • 在前端代码中暴露铸币权限 — 请始终在服务端构建 NFT 铸造交易。客户端仅作为付款方签名。

评论

支持 Markdown