Helius API 使用 API 密钥进行请求认证。每个 API 请求必须包含您的 API 密钥以验证您的身份和权限。
您的 API 密钥是敏感信息,可以访问您的 Helius 账户。切勿在客户端代码、公共代码库或浏览器可访问的区域中暴露它。
入门指南
1. 创建您的 API 密钥
导航到 API 密钥
转到控制台侧边栏中的 API 密钥 部分。
生成新密钥
点击 创建新 API 密钥 并为您的项目提供一个描述性名称(例如,“生产应用程序”,“开发环境”)。
复制并安全存储您的密钥
立即复制您的 API 密钥并安全存储。一旦导航离开,您将无法再次查看它。
2. 使用您的 API 密钥
在所有请求中包含您的 API 密钥作为查询参数:
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getAccountInfo","params":["ACCOUNT_ADDRESS"]}'
入门指南(针对代理)
代理可以通过编程方式注册Helius账户、创建项目,并使用Helius CLI生成API密钥。
完整说明请参阅:https://dashboard.helius.dev/agents.md
安装 Helius CLI
npm install -g helius-cli
生成密钥对
为生成的钱包提供资金(手动)
向步骤 2 中提供的钱包地址发送 1 USDC 和 0.001 SOL。
注册并获取API密钥
安全最佳实践
环境变量
将您的API密钥存储在环境变量中,而不是源代码中。export HELIUS_API_KEY="YOUR_API_KEY"
IP限制
在仪表板中为您的API密钥设置IP限制,以限制特定IP地址或范围的访问。
分开密钥
为开发、登台和生产环境使用不同的API密钥,以隔离使用并提高安全性。
监控使用情况
定期检查仪表板中的API使用情况,以检测异常模式或潜在的安全问题。
密钥管理
// Use environment variables
const apiKey = process.env.HELIUS_API_KEY;
// Or use a secrets manager
const { SecretManagerServiceClient } = require('@google-cloud/secret-manager');
const client = new SecretManagerServiceClient();
async function getApiKey() {
const [version] = await client.accessSecretVersion({
name: 'projects/PROJECT_ID/secrets/helius-api-key/versions/latest',
});
return version.payload.data.toString();
}
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
api_key = os.getenv('HELIUS_API_KEY')
# Or use AWS Secrets Manager
import boto3
def get_secret():
client = boto3.client('secretsmanager')
response = client.get_secret_value(SecretId='helius-api-key')
return response['SecretString']
# In your Dockerfile
ENV HELIUS_API_KEY=""
# Or use Docker secrets
RUN --mount=type=secret,id=helius_key \
cat /run/secrets/helius_key > /app/api_key.txt
速率限制与使用
理解速率限制
- 每秒请求数:根据您的订阅层级
- 每月请求配额:每个计费周期允许的总请求数
- 突发允许:短期内高于基本速率限制的峰值
处理速率限制
async function makeRequest(url, data) {
try {
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After');
console.log(`Rate limited. Retry after ${retryAfter} seconds`);
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
return makeRequest(url, data); // Retry
}
return response.json();
} catch (error) {
console.error('Request failed:', error);
throw error;
}
}
故障排除
症状: 401 Unauthorized或“无效API密钥”错误解决方案:
- 验证您的API密钥是否正确且未被重新生成
- 检查您是否将API密钥作为查询参数包含:
?api-key=YOUR_KEY
- 确保API密钥中没有多余的空格或字符
- 确认您的API密钥没有过期或被撤销
症状: 429 Too Many Requests错误解决方案:
- 在控制面板中检查您当前的使用情况
- 在重试逻辑中实施指数退避
- 考虑升级计划以获得更高的限制
- 优化请求以减少不必要的调用
症状: 403 Forbidden错误解决方案:
- 验证IP限制是否未阻止您的请求
- 检查您的订阅是否包括对该端点的访问
- 确保您的API密钥具有必要的权限
下一步
需要帮助进行身份验证或有关于API密钥的问题?