apiKey 存在于客户端:提供者在您的应用加载时将其传递给钱包引导程序(/waas/config)。对于客户端SDK,这是预期的——任务是确保暴露的密钥不会被滥用。
暴露并不是计费绕过。 每个签名都会在嵌入式钱包签名时进行计量,而不是在API密钥层进行。被泄露的密钥如果锁定到您的域名,将不能用于任意站点的免费签名或耗尽您的授信额度;计量不依赖于密钥的保密性。
1. 限制密钥使用域名(必需)
将密钥锁定到您的应用运行的来源。一旦设置,从任何其他来源的请求都会被拒绝,因此从您的包中提取出的密钥在除自己域名外的任何地方都无用。1
打开RPC访问控制
在仪表板中,转到您的密钥下的
RPCs部分,打开访问控制。
2
将您的域名添加到允许的域名中
添加您的应用服务的每个来源——生产、暂存和预览:
3
为每个环境使用单独的密钥
为本地、暂存和生产环境保持不同的密钥,以便您可以在不影响其他环境的情况下更换一个密钥。
2. 保护RPC URL(自动)
对于RPC流量,SDK在引导时解析项目的无密钥安全RPC URL并使用它们进行connection 调用——因此您的API密钥永远不会随RPC请求发送。无需配置;它默认开启。
安全URL的速率限制为每个IP 5 RPS,并且在付费计划中可用。
3. 使用路由处理程序移动服务器端流量
SDK 提供了一个 Next.js 路由处理程序,通过您自己的服务器转发RPC、发送和交易历史调用,从服务器端环境变量(HELIUS_API_KEY)中注入密钥,从而在这些请求中不会出现。这也是您选择 Sender优化着陆页和交易历史记录的方式。
app/api/helius/[...path]/route.ts
HELIUS_API_KEY 设置为服务器环境变量,处理程序将其附加到转发请求中。请参阅 快速入门→服务器路由处理程序。
引导程序仍然使用您的客户端
apiKey,因为它会传递给
提供者 config,并从浏览器发送到 /waas/config,因此即使安装了路由处理程序,密钥仍然存在于浏览器中。对密钥进行域名限制(步骤1)是确保此调用安全的方法。完全服务端密钥处理在计划中。4. 自托管 Cloudflare RPC 代理
为了最大控制,部署您自己的代理,使密钥完全保存在服务器端,并且可以在此基础上添加自定义速率限制和请求过滤。Helius RPC 代理
您可以一键部署到Cloudflare的开源RPC代理。
检查清单
在发布之前:- 客户端密钥限制在您确切的来源
- 为本地/暂存/生产环境单独使用不同的密钥
- 密钥从环境变量读取,绝不硬编码
- (可选)为服务器端RPC/发送+发件人安装路由处理程序
- (可选)使用Cloudflare代理进行完整服务端密钥处理
后续步骤
保护您的密钥
完整访问控制参考:域名、IP、CIDR和代理。
配置
提供者配置和仪表板登录方法。