TweetStream

从 X/Twitter 帖子构建 DexScreener API 提醒

把选定 X/Twitter 帖子中的 ticker 和合约地址转换为经过验证的交易对与价格提醒。

从推文到代币提醒:速度为何重要

加密交易者会在 Twitter 上关注新代币、截图中的合约地址与链上活动信息。交易者或机器人使用这些帖子前,仍需完成检测、解析与核验。

一条从推文到交易的管线需要三个要素:实时推文检测、自动提取代币(包括文本与图片),以及即时价格验证。DexScreener 补上了关键一环,将原始代币符号转换为带实时价格的可交易交易对。

什么是 DexScreener?

DexScreener 是实时 DEX(去中心化交易所)聚合器,跟踪 Ethereum、Solana、BSC、Arbitrum、Base 等主要区块链及数十条其他链上的代币交易对。它为任何拥有活跃交易对的代币提供实时价格图表、交易量、流动性数据和交易历史。

交易机器人可以使用 DexScreener API 检查代币是否有活跃交易对、查看流动性并读取当前价格。

DexScreener API:关键端点

DexScreener 提供多个无需 API Key 的公共端点,但不同端点系列的速率限制并不相同。在将生产管线接入特定路由前,请查看最新参考文档:

端点用途示例
GET /latest/dex/search?q={query}按名称或符号搜索代币/latest/dex/search?q=PEPE
GET /latest/dex/pairs/{chainId}/{pairId}获取指定交易对/latest/dex/pairs/solana/{pair_address}
GET /token-pairs/v1/{chainId}/{tokenAddress}获取某条链上一个代币地址的所有交易对/token-pairs/v1/solana/So11111111111111111111111111111112
GET /tokens/v1/{chainId}/{tokenAddresses}查询某条链上的一个或多个代币地址/tokens/v1/ethereum/0x6982508145454Ce325dDbE47a25d4ec3d2311933
GET /token-profiles/latest/v1获取最近更新的代币资料/token-profiles/latest/v1

这些路由的响应结构和速率限制各不相同,因此在标准化接入代码前,请确认最新文档。 DexScreener 官方 API 参考.

构建代币检测管线

这套流程分为四个阶段:

  1. 阶段 1:通过 WebSocket 或其他流式 API 接收选定账号的帖子。
  2. 阶段 2:从帖子文本中解析 $TICKER、合约地址和 DEX URL。
  3. 阶段 3:对附件图片运行 OCR,查找截图、图表和公告中的代币信息。
  4. 阶段 4:查询 DexScreener API,检查活跃交易对、流动性和当前价格。

OCR:捕获图片中隐藏的代币

许多加密影响者通过截图而非纯文本分享代币信息,例如图表截图、交易终端图片,或包含合约地址的公告素材。只处理文本的管线会完全漏掉这些信息。

OCR(光学字符识别)会从推文附件图片中提取文本,再按相同模式扫描提取结果:$TICKER 符号、合约地址和 DEX URL。大量早期 Alpha 信号正来自这里,例如图表截图中的合约地址,手动交易者只能逐字符输入。

当图片附件可提供 OCR 富化时,TweetStream 可在提醒 Payload 中包含提取的文本和检测到的代币引用。

代码示例:使用 DexScreener API 查询代币

// Look up a token on DexScreener by chain + address
async function lookupToken(chainId: string, address: string) {
  const res = await fetch(
    `https://api.dexscreener.com/tokens/v1/${chainId}/${address}`
  );
  const pairs = await res.json();
 
  if (!pairs?.length) {
    console.log('No trading pairs found');
    return null;
  }
 
  // Get the highest-liquidity pair
  const topPair = pairs.sort(
    (a, b) => (b.liquidity?.usd ?? 0) - (a.liquidity?.usd ?? 0)
  )[0];
 
  return {
    symbol: topPair.baseToken.symbol,
    name: topPair.baseToken.name,
    price: topPair.priceUsd,
    priceChange24h: topPair.priceChange?.h24,
    volume24h: topPair.volume?.h24,
    liquidity: topPair.liquidity?.usd,
    dex: topPair.dexId,
    chain: topPair.chainId,
    pairUrl: topPair.url,
  };
}
 
// Example: look up PEPE on Ethereum
const token = await lookupToken('ethereum', '0x6982508145454Ce325dDbE47a25d4ec3d2311933');
console.log(token);
// { symbol: 'PEPE', price: '0.00001234', liquidity: 5200000, ... }

代码示例:完整检测管线

// Full tweet → token → price pipeline
const TICKER_REGEX = /\$([A-Z]{2,10})\b/g;
const EVM_ADDR_REGEX = /0x[a-fA-F0-9]{40}/g;
const SOLANA_ADDR_REGEX = /[1-9A-HJ-NP-Za-km-z]{32,44}/g;
 
async function searchToken(query: string) {
  const res = await fetch(
    `https://api.dexscreener.com/latest/dex/search?q=${encodeURIComponent(query)}`
  );
  const data = await res.json();
  return data.pairs ?? [];
}
 
async function processTweet(tweet: { text: string; ocr?: { text?: string } }) {
  const allText = [tweet.text, tweet.ocr?.text ?? ''].join(' ');
  const results = [];
 
  // Extract $TICKER symbols
  for (const match of allText.matchAll(TICKER_REGEX)) {
    const pairs = await searchToken(match[1]);
    if (pairs[0]) {
      results.push(pairs[0]);
    }
  }
 
  // Extract EVM contract addresses
  for (const match of allText.matchAll(EVM_ADDR_REGEX)) {
    const data = await lookupToken('ethereum', match[0]);
    if (data && (data.liquidity ?? 0) > 10_000) {
      results.push(data);
    }
  }
 
  // Extract Solana addresses
  for (const match of allText.matchAll(SOLANA_ADDR_REGEX)) {
    const data = await lookupToken('solana', match[0]);
    if (data && (data.liquidity ?? 0) > 10_000) {
      results.push(data);
    }
  }
 
  return results;
}

支持的链与代币类型

DexScreener 聚合所有主要 EVM 与非 EVM 链的数据:

  • EVM 链:Ethereum、BSC、Arbitrum、Base、Polygon、Avalanche、Optimism、Fantom
  • Solana:包括 pump.fun 发射在内的 SPL 代币
  • 其他 L1:Sui、Aptos、Near、Tron、Cosmos 生态
  • DEX 覆盖:Uniswap、Raydium、PancakeSwap、Jupiter 以及数百个其他 DEX

如果你的观察列表主要跟踪 Solana 或 Base 新币,可优先解析这两条链,并避免让含义不明确的符号进入自动化决策。

省去单独的接入与富化数据栈

TweetStream 将选定账号投递与代币检测、OCR 和实时价格上下文结合,并在相应富化可用时发送。

提醒可包含从文本或图片检测到的代币、OCR 文本、实时价格上下文和预测市场上下文。完整 Payload 结构请参阅 载荷与 OCR 文档

更快把这个工作流投入生产

这篇文章介绍了这类工作流。TweetStream 负责受监控帖子的接入、代币检测和 OCR,并通过 WebSocket 投递帖子、更新、删除、置顶、资料变化、关注、取消关注和富化 JSON 载荷。支持的套餐还提供历史回放。你的客户端负责按文档重连 WebSocket,并把收到的事件路由到下游。你可以用自己的账号开始 3 天试用。

开始 3 天试用

常见问题

TweetStream 团队

最近更新:2026 年 8 月 25 日

把实时信号接入工作流

从关键 X 账号开始,把事件路由到你的机器人、提醒和交易工作流。