signaldocs Open Signal

Build with Signal

DexScreener adapter

DEX Screener does not index Uniswap v4 on HyperEVM by itself, so Signal runs an adapter in DEX Screener's own format for every pool on Signal's v4 hooks:

https://dexscreener.signal.family

It is public and needs no key. It was built for one consumer. Anyone who already ingests DEX Screener-style adapters can read it, with the limits below.

Endpoints

EndpointReturns
GET /latest-block{"block": {"blockNumber", "blockTimestamp"}}: the newest block the adapter has fully processed
GET /asset?id=<token address>{"asset": {"id", "name", "symbol", "totalSupply", "metadata"?}}
GET /pair?id=<pool id>{"pair": {"id", "dexKey", "asset0Id", "asset1Id", "createdAtBlockNumber", "createdAtBlockTimestamp", "createdAtTxnId", "creator", "metadata": {"hooks", "tickSpacing", "poolManager"}}}
GET /events?fromBlock=&toBlock={"events": [...]} for an inclusive block range: swaps, and the liquidity placed at launch
GET /healthThe adapter's own state: newest block, lag in seconds, pool and event counts, the hooks it covers

Page it the way the format intends: read /latest-block, then /events for the blocks you have not seen.

What it covers

Pools whose hook is one of Signal's: releases 2, 4.1 and 4.2, and a release with no pools. On 12 October 2026 it reported 39 pools. A new Signal hook is covered once Signal adds it; /health lists the current set.

  • The pair id is the Uniswap v4 pool id (0x + 64 hex), the same value as pool and v4_launch.pool_id in Signal's API and as the first topic of the PoolManager's Initialize log.
  • asset0Id and asset1Id are currency0 and currency1. v4 sorts them, so the order never changes.
  • dexKey is signal.
  • There is no feeBps on these pairs: the pool's own LP fee is zero and Signal's fees are charged by the hook.

Read this before you use its numbers

  • Amounts and prices are the pool's, taken from the PoolManager's Swap log. The hook's fee is not in them. During a launch's opening window the difference is large. For what a trader paid or received, pair each swap with the hook's FeeTaken as in events and accounting.
  • The hook's own buybacks are swaps too. They move the pool and so they appear, but they are burns paid from fees, not trades by a user.
  • asset.metadata is best effort. It can be absent for a token whose words /api/meta/<token> serves.
  • It reads each block once after one confirmation. It has no further reorganisation handling.
  • It makes no availability promise. If it is down, read the chain. For a production integration, build from chain logs and use this as a cross-check.