快速设置

通过工作代码示例在几分钟内获取流式 Solana 数据。根据您的需求选择方法:
方法最适合所需计划延迟
LaserStream gRPC关键任务,后端服务Developer+ (Devnet), Professional+ (Mainnet)最快
增强型 WebSockets高级过滤,高性能应用Business+
标准 WebSockets大多数应用程序,现有 Solana 代码Free+良好
Webhooks服务器通知,事件驱动应用Free+可变

选项 1:标准 WebSockets

适用于大多数用例,并与现有的 Solana WebSocket 代码兼容。
const WebSocket = require('ws');

const ws = new WebSocket('wss://mainnet.helius-rpc.com?api-key=YOUR_API_KEY');

ws.on('open', () => {
  console.log('Connected to Helius');
  
  // Subscribe to account changes
  ws.send(JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "accountSubscribe",
    params: [
      "9PejEmViKHgUkVFWN57cNEZnFS4Qo6SzsLj5UPAXfDTF", // Replace with your account
      { encoding: "jsonParsed", commitment: "confirmed" }
    ]
  }));
});

ws.on('message', (data) => {
  const message = JSON.parse(data);
  if (message.method === 'accountNotification') {
    console.log('Account updated:', message.params.result.value);
  }
});
YOUR_API_KEY 替换为您从 dashboard.helius.dev 获取的密钥

标准 WebSockets 指南

完整参考,包含所有订阅方法和示例

选项 2:增强型 WebSockets

适用于需要高级过滤和更快性能的应用程序。
const WebSocket = require('ws');

const ws = new WebSocket('wss://atlas-mainnet.helius-rpc.com/?api-key=YOUR_API_KEY');

ws.on('open', () => {
  console.log('Enhanced WebSocket connected');
  
  // Subscribe to transactions involving specific accounts
  ws.send(JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "transactionSubscribe",
    params: [
      {
        accountInclude: ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"],
        vote: false,
        failed: false
      },
      {
        commitment: "confirmed",
        encoding: "jsonParsed",
        transactionDetails: "full"
      }
    ]
  }));
  
  // Keep connection alive
  setInterval(() => ws.ping(), 30000);
});

ws.on('message', (data) => {
  const message = JSON.parse(data);
  console.log('Transaction:', message);
});

增强型 WebSockets 指南

学习高级过滤和订阅选项

选项 3:LaserStream gRPC

最可靠的选项,具有历史重播和多节点故障转移。
npm install helius-laserstream
import { subscribe, CommitmentLevel, LaserstreamConfig, SubscribeRequest } from 'helius-laserstream';

async function main() {
  const subscriptionRequest: SubscribeRequest = {
    transactions: {
      client: {
        accountInclude: ['TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'],
        accountExclude: [],
        accountRequired: [],
        vote: false,
        failed: false
      }
    },
    commitment: CommitmentLevel.CONFIRMED,
    accounts: {},
    slots: {},
    transactionsStatus: {},
    blocks: {},
    blocksMeta: {},
    entry: {},
    accountsDataSlice: [],
  };

  const config: LaserstreamConfig = {
    apiKey: 'YOUR_API_KEY',
    endpoint: 'https://laserstream-mainnet-ewr.helius-rpc.com',
  }

  await subscribe(config, subscriptionRequest, async (data) => {
    console.log(data);
  }, async (error) => {
    console.error(error);
  });
}

main().catch(console.error);

LaserStream 指南

完整的 LaserStream 文档,包含历史重播

选项 4:Webhooks

适用于需要事件通知的服务器端应用程序。
# Create a webhook
curl -X POST "https://api.helius.xyz/v0/webhooks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "webhookURL": "https://your-server.com/webhook",
    "transactionTypes": ["Any"],
    "accountAddresses": ["YOUR_ACCOUNT_ADDRESS"],
    "webhookType": "enhanced"
  }'
// Handle webhook events (Express.js example)
app.post('/webhook', (req, res) => {
  req.body.forEach(event => {
    console.log('Blockchain event:', event);
  });
  res.status(200).send('OK');
});

Webhooks 指南

完整的 webhook 设置和事件处理

常见用例

监控代币转移
// Subscribe to Token Program activity
method: "programSubscribe",
params: ["TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", {...}]
跟踪 NFT 销售
// Subscribe to Magic Eden program
method: "programSubscribe", 
params: ["M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K", {...}]
监视钱包活动
// Monitor specific wallet
method: "accountSubscribe",
params: ["WALLET_ADDRESS", {...}]

下一步

需要帮助吗? 加入我们的 Discord 或查看 支持文档