跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.solanatracker.io/llms.txt

Use this file to discover all available pages before exploring further.

本指南将帮助你完成对 Solana Tracker Data API 的第一次调用。你将学习如何鉴权、发送请求并处理响应。

前置条件

开始之前,请确保你已具备:

Solana Tracker 账户

免费注册即可获取 API 密钥。

第 1 步:获取 API 密钥

创建账户后,从控制台获取 API 密钥。该密钥用于通过 x-api-key 请求头对你的请求进行鉴权。
1

登录控制台

2

进入 API Keys

在侧边栏中点击 “API Keys” 区域。
3

复制你的 API 密钥

点击 API 密钥旁的复制按钮。
请妥善保管你的 API 密钥,切勿将其提交到公共仓库。

第 2 步:发起第一次 API 调用

我们先使用 /price 端点获取 SOL 的当前价格。
curl -X GET "https://data.solanatracker.io/price?token=So11111111111111111111111111111111111111112" \
  -H "x-api-key: YOUR_API_KEY"
{
  "price": 175.42,
  "priceQuote": 175.42,
  "liquidity": 14187570.69,
  "marketCap": 99213713748.19,
  "lastUpdated": 1760274132867
}

第 3 步:连接到 RPC 节点

Solana Tracker 同时提供 RPC 节点,可直接发起区块链调用。RPC 使用的 URL 与鉴权方式与 Data API 不同:
产品用途鉴权方式
Data API代币价格、钱包、交易和分析数据x-api-key 请求头
RPC直接调用 Solana 方法,如余额查询和账户更新RPC URL 中的 api_key
import { Connection, PublicKey } from '@solana/web3.js';

const connection = new Connection(
  'https://rpc-mainnet.solanatracker.io?api_key=YOUR_API_KEY',
  {
    commitment: 'confirmed',
    wsEndpoint: 'wss://rpc-mainnet.solanatracker.io?api_key=YOUR_API_KEY'
  }
);

// 获取账户余额
const publicKey = new PublicKey('YOUR_WALLET_ADDRESS');
const balance = await connection.getBalance(publicKey);
console.log(`Balance: ${balance / 1e9} SOL`);

// 订阅账户变更
connection.onAccountChange(
  publicKey,
  (accountInfo) => {
    console.log('Account updated:', accountInfo);
  }
);

第 4 步:探索常见用例

使用 /price 端点监控任何 SPL 代币的实时价格变化。
const apiKey = 'YOUR_API_KEY';

const trackPrice = async (mint) => {
  const response = await fetch(
    `https://data.solanatracker.io/price?token=${mint}`,
    { headers: { 'x-api-key': apiKey } }
  );
  
  const data = await response.json();
  console.log(`Price: $${data.price}`);
};

// 每 5 秒查询一次价格
setInterval(() => trackPrice('YOUR_TOKEN_MINT'), 5000);
使用 /tokens/latest 端点发现新创建的代币。返回结果按最新代币优先排序。
const apiKey = 'YOUR_API_KEY';

const findNewTokens = async () => {
  const response = await fetch(
    'https://data.solanatracker.io/tokens/latest',
    { headers: { 'x-api-key': apiKey } }
  );
  
  const result = await response.json();
  result.data.forEach(token => {
    console.log(`New token: ${token.token.symbol} on ${token.pools[0].market}`);
    console.log(`Liquidity: $${token.pools[0].liquidity.usd}`);
  });
};
跟踪任意钱包的代币持仓和投资组合总值。
const apiKey = 'YOUR_API_KEY';

const getWalletTokens = async (walletAddress) => {
  const response = await fetch(
    `https://data.solanatracker.io/wallet/${walletAddress}`,
    { headers: { 'x-api-key': apiKey } }
  );
  
  const portfolio = await response.json();
  console.log(`Total Portfolio Value: $${portfolio.total}`);
  portfolio.tokens.forEach(holding => {
    const tokenInfo = holding.token;
    console.log(`${tokenInfo.symbol}: ${holding.balance} ($${holding.value.toFixed(2)})`);
  });
};

错误处理

请始终在你的应用中实现完善的错误处理。
const apiKey = 'YOUR_API_KEY';

try {
  const response = await fetch('https://data.solanatracker.io/price?token=INVALID_TOKEN_ADDRESS', {
    headers: { 'x-api-key': apiKey }
  });

  if (!response.ok) {
    const error = await response.json();
    console.error(`API Error: ${error.message || response.statusText}`);

    // 处理具体的错误码
    switch (response.status) {
      case 401:
        console.error('Invalid API key');
        break;
      case 429:
        console.error('Rate limit exceeded');
        break;
      case 500:
        console.error('Server error - please retry');
        break;
    }

  } else {
    const data = await response.json();
    // 处理成功的响应
  }
} catch (error) {
  console.error('Network error:', error);
}
需要帮助? 欢迎加入我们的 Discord 社区 或发送邮件至 support@solanatracker.io