Skip to main content
wallet-kit SDK 在浏览器中运行,因此您的 Helius apiKey 存在于客户端:提供者在应用加载时将其发送到钱包 引导 (/waas/config)。这对于客户端 SDK 是预期的。本页面详细解释了该密钥可以和不能做什么,以及如何锁定它。

密钥可以和不能做什么

从这里开始,因为这部分很容易出错:Helius API 密钥是一个 RPC/额度凭据,而不是一个钱包密钥。 泄露的密钥 不能
  • 签署交易或消息,
  • 移动或访问资金,或
  • 接触任何用户的嵌入式钱包。
钱包签署是由终端用户自己的密钥或会话授权的,私钥存在于 Turnkey 的安全飞地中——永远不会在您的应用、服务器或任何 API 密钥可访问的地方。暴露密钥不会暴露钱包。 泄露的密钥 可以 消耗您的 Helius 额度(RPC 配额)。这就是爆炸半径的全部——一个计费问题,而不是托管问题——下面的层级将其约束并关闭。
暴露也不是计费绕过。 WaaS 签名是在嵌入钱包签署时计量的,而不是在 API 密钥层——泄露的密钥无法从他人网站制造免费签名或计费签名。计量不依赖于密钥的保密性。

锁定它

这些层级从最低的努力到最严的界限。第一个是必需的基线;根据您的风险承受能力堆叠其余部分。

1. 限制您的密钥域(必需)

将密钥锁定在您的应用运行的来源上,因此从您的捆绑包中获取的密钥在其他地方是无用的。
1

打开 RPC 访问控制

dashboard 中,转到 RPCs 部分下的您的密钥并打开 访问控制
2

将您的域添加到允许的域

添加您应用提供服务的每个来源——生产、暂存和预览:
3

为每个环境使用单独的密钥

为本地、暂存和生产保持不同的密钥,这样您可以旋转一个而不影响其他。
**域允许列表防止基于浏览器的滥用,而不是一个坚定的脚本。**检查读取请求的 Origin/Referer 标头——浏览器会诚实地设置它,但非浏览器客户端(例如 curl -H "Origin: yourdapp.com")可以伪造它。这是所有客户端 API 密钥的通病,而不仅是 Helius。域限制可可靠地阻止常见情况——您的密钥出现在其他网站上——但对于不可伪造的边界,请使用锁定到您 IP/CIDR 的服务器端密钥(步骤 4)。

2. 无密钥安全 RPC URL(自动)

RPC 流量根本不携带您的密钥。SDK 在引导时解析您的项目的 无密钥安全 RPC URL,并自动使用它进行 connection 调用——无需配置。 因为这些 URL 不包含 任何密钥,所以 RPC 请求中没有内容可以提取,并且它们 每 IP 最高限制为 5 RPS——因此其保护不依赖于 Origin 检查。(适用于付费计划;当项目没有安全 RPC URL 时,RPC 回退到步骤 3 中的同源路由处理器。)

3. 将密钥移动到服务器端——无服务器

为了将密钥从浏览器中移出,以进行 RPC、发送和交易历史调用,通过您自己的端点路由它们,该端点从一个 服务器端 秘密中注入密钥。这也是您选择发送者优化着陆和交易历史的方法。 这两个选项都是 100% 无服务器 的——无需运行服务器:
  • Next.js 路由处理 — 作为无服务器函数(Vercel,Netlify,Cloudflare)部署。从服务器环境中读取 HELIUS_API_KEY
    app/api/helius/[...path]/route.ts
  • Cloudflare Worker 代理 — 最干净的完全无服务器选项:密钥存在于 Worker 秘密中,永远不会进入浏览器。

    Helius RPC Proxy

    开源 RPC 代理,您可以一键部署到 Cloudflare。

4. 添加不可伪造的 IP/CIDR 边界

对于攻击者无法伪造的边界,将服务器端密钥锁定到您后端的 IP 地址或 CIDR 范围。与 Origin 标头不同,请求的 源 IP 无法通过正常连接进行伪造——因此来自您服务器之外的任何地方的 curl 都会被直接拒绝。 这只适用于 服务器端 密钥——您不能对浏览器密钥进行 IP 限制,因为您的用户从不可预测的 IP 连接。明智的模式是 两个密钥
无服务器函数具有 动态出口 IP,因此固定 CIDR 需要一个稳定的出口——具有专用出口 IP 的 Cloudflare Worker、Vercel Secure Compute 或前端的固定 IP NAT。没有一个,你仍然得到主要的好处(密钥在服务器端,从不在浏览器中);你只是不在顶部添加 IP 边界。
参见 保护您的密钥 以获取完整的访问控制规则参考。

各层比较

无论您选择哪些层级,这些都不是您用户的钱包密钥——那些永远不会参与其中。

钱包引导

路由处理器(生产)设置 中,钱包引导 (/waas/config) 也通过您的路由处理器使用 服务器端 密钥——所以没有 Helius 密钥会被发送到浏览器。在 原型 设置中,浏览器发送用于引导的密钥; 限制其域(步骤1)。无论哪种方式,它都是 RPC 范围的密钥——无法触及钱包或资金。

检查清单

发货前:
  • 客户端密钥限于您的确切来源
  • 不同环境使用不同的密钥(本地/暂存/生产)
  • 密钥从环境变量中读取,绝不硬编码
  • (可选)通过无服务器路由处理器或 Cloudflare Worker 路由 RPC、发送和历史记录
  • (可选)服务器端密钥锁定到您的 IP/CIDR 以获取不可伪造的边界

下一步

保护您的密钥

完整的访问控制参考:域、IP、CIDR 和代理。

配置

提供者配置和仪表板登录方法。