本指南将帮助你完成对 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"
const apiKey = 'YOUR_API_KEY';
const solMint = 'So11111111111111111111111111111111111111112';
fetch(`https://data.solanatracker.io/price?token=${solMint}`, {
headers: {
'x-api-key': apiKey
}
})
.then(response => response.json())
.then(data => console.log('SOL Price:', data.price));
import requests
api_key = 'YOUR_API_KEY'
sol_mint = 'So11111111111111111111111111111111111111112'
response = requests.get(
f'https://data.solanatracker.io/price?token={sol_mint}',
headers={
'x-api-key': api_key
}
)
data = response.json()
print(f"SOL Price: ${data['price']}")
{
"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);
}
);
from solana.rpc.api import Client
from solders.pubkey import Pubkey
# 连接到 RPC
client = Client("https://rpc-mainnet.solanatracker.io?api_key=YOUR_API_KEY")
# 获取账户余额
pubkey = Pubkey.from_string("YOUR_WALLET_ADDRESS")
response = client.get_balance(pubkey)
balance = response.value / 1e9
print(f"Balance: {balance} SOL")
# 获取最近的 blockhash
blockhash = client.get_latest_blockhash()
print(f"Recent blockhash: {blockhash.value.blockhash}")
第 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);
}
import requests
from time import sleep
def api_call_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
elif response.status_code == 429:
# 触发限流——等待后重试
print(f"Rate limit exceeded. Retrying in {2 ** attempt}s...")
sleep(2 ** attempt) # 指数退避
elif response.status_code == 401:
raise Exception("Invalid API key")
else:
print(f"Error {response.status_code}: {response.text}")
break
except requests.RequestException as e:
print(f"Network error: {e}")
if attempt < max_retries - 1:
sleep(1)
else:
raise
return None
需要帮助? 欢迎加入我们的 Discord 社区 或发送邮件至 support@solanatracker.io。