认证

Helius API 使用 API 密钥来认证请求。每个 API 请求都必须包含您的 API 密钥以验证您的身份和权限。
您的 API 密钥是授予访问您 Helius 帐户的敏感信息。切勿在客户端代码、公共存储库或浏览器可访问的区域中暴露它。

入门

1. 创建您的 API 密钥

1

注册或登录

Helius Dashboard 上创建一个帐户或登录到您现有的帐户。
2

导航到 API 密钥

转到仪表板侧边栏中的 API 密钥 部分。
3

生成新密钥

点击 创建新 API 密钥 并为您的项目提供一个描述性名称(例如,“生产应用程序”,“开发环境”)。
4

复制并保护您的密钥

立即复制您的 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"]}'

安全最佳实践

环境变量

将您的 API 密钥存储在环境变量中,而不是源代码中。
export HELIUS_API_KEY="your-api-key-here"

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();
}

速率限制与使用

速率限制因订阅计划而异。在 Helius Dashboard 中监控您的使用情况,以确保您在分配的限制内。

理解速率限制

  • 每秒请求数:基于您的订阅等级
  • 每月请求配额:每个计费周期允许的总请求数
  • 突发允许:短期内超过基本速率限制的峰值

速率限制头信息

Helius 在响应头中包含速率限制信息:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200

处理速率限制

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;
  }
}

故障排除

下一步

支持

需要帮助进行身份验证或对API密钥有疑问?