从推文到代币提醒:速度为何重要
在加密市场,Alpha 信号往往最先出现在 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 |
这些路由的响应结构和速率限制各不相同,因此在标准化接入代码前,请确认最新文档。
构建代币检测管线
完整的推文到提醒管线包含四个阶段:
- 阶段 1:推文接入 — 通过 WebSocket 或流式 API 实时接收监控账号的推文
- 阶段 2:代币提取 — 从推文文本中解析 $TICKER 符号、合约地址(EVM 使用 0x...,Solana 使用 base58)和 DEX URL(dexscreener.com、birdeye.so)
- 阶段 3:OCR 提取 — 对附件图片运行光学字符识别,捕获截图、图表图片和公告素材中的代币信息
- 阶段 4:价格验证 — 调用 DexScreener API 确认代币真实存在、检查流动性并获取实时价格
OCR:捕获图片中隐藏的代币
许多加密影响者通过截图而非纯文本分享代币信息,例如图表截图、交易终端图片,或包含合约地址的公告素材。只处理文本的管线会完全漏掉这些信息。
OCR(光学字符识别)会从推文附件图片中提取文本,再按相同模式扫描提取结果:$TICKER 符号、合约地址和 DEX URL。大量早期 Alpha 信号正来自这里,例如图表截图中的合约地址,手动交易者只能逐字符输入。
TweetStream 会自动对每个图片附件运行 OCR,将提取出的文本放入提醒 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
在加密 Twitter 监控中,讨论的新发射项目大多是 Solana 和 Base 代币。为获得最低延迟查询,管线应优先处理这两条链。
TweetStream:预构建的完整管线
构建和维护推文 → OCR → 代币提取 → 价格查询管线需要大量工程投入。TweetStream 将整条管线作为服务提供。
当这些信号存在时,TweetStream 提醒可包含从文本和图片自动检测的代币、兼容 DexScreener 的价格数据、OCR 文本提取和 Polymarket 市场检测。完整 Payload 结构请参阅 载荷与 OCR 文档。
用 TweetStream 更快上线
这篇文章讲的是这类工作流,但真正上线时不应该重新搭建推文接入、重连、代币检测、OCR 和下游投递。TweetStream 是更好的生产起点:帖子、更新、删除、置顶、资料变化、关注、取消关注,富化 JSON 载荷,支持套餐的历史回放,以及可以直接用自己账号验证的 3 天试用。
开始 3 天试用常见问题
TweetStream 团队
最近更新:2026 年 6 月