能否通过Uniswap API查询当日新增代币?是否需其他实现方案?
查询Uniswap新增代币的方法
明确说明:Uniswap官方API本身不直接提供“当日新增代币”的查询接口,需要通过其他途径实现需求。
可行实现方式
- 直接链上数据抓取
Uniswap的核心合约(比如V2的Factory合约、V3的Factory合约)在创建新交易对/资金池时,会触发PairCreated(V2)或PoolCreated(V3)事件。你可以监听这些合约事件,筛选当日触发的记录,从中提取代币地址。
具体可通过以太坊节点的JSON-RPC接口,调用eth_getLogs方法,指定合约地址、事件签名、当日对应的区块高度区间来获取日志。
核心逻辑示例:// 以Uniswap V3 Factory合约为例 factoryAddress = "0x1F98431c8aD98523631AE4a59f267346ea31F984" poolCreatedEventSignature = "0x783cca1c0412dd0d695e784568c96da2e9c22ff989357a2e8b1d9b2b4e6b7118" startBlock = 当日起始区块高度 endBlock = 当日当前区块高度 logs = eth_getLogs({ address: factoryAddress, topics: [poolCreatedEventSignature], fromBlock: startBlock, toBlock: endBlock }) // 从返回的logs中解析代币0和代币1的地址,去重后得到当日新增代币列表 - 第三方数据服务
不少链上数据平台会预先整理这类数据,你可以调用它们的API直接获取当日Uniswap新增代币。这类服务通常需要API密钥,且存在调用限制,但无需自己处理链上日志,实现更快捷。
关键注意点
- 区分“新增交易对”和“新增代币”:单个代币可能在Uniswap上创建多个交易对,所以要对提取到的代币地址做去重处理。
- 区块高度与时间的对应:需要先获取当日0点对应的区块高度,才能精准筛选当日的事件记录,这可通过区块查询接口实现。
内容的提问来源于stack exchange,提问作者BAR
相关产品推荐
相关产品推荐

