# v4 deployments

**Network:** HyperEVM mainnet, chain ID **999**. Read from the chain and from [live configuration](https://signal.family/api/config) on **12 October 2026**, block 48,348,140.

## Uniswap v4 contracts Signal's pools live on

| Contract | Address |
| --- | --- |
| PoolManager | `0x12d4fd9c5dedd00ab8a0bce2cf0167bbf94b6b1f` |
| Universal Router | `0xe783de89a7f0408687f051e3e6d0beb62719ebad` |
| Quoter | `0x108bfe38532c98f8cd8d7ab49c9ddaa3675a1c5e` |
| StateView | `0x1656326235cb9e34cb58cade53ae30789ab32a1a` |
| Permit2 | `0x000000000022d473030f116ddee9f6b43ac78ba3` |
| WHYPE | `0x5555555555555555555555555555555555555555` |

These are the addresses Signal's own configuration names for Uniswap v4 on HyperEVM. Confirm them against Uniswap's own records before relying on them.

## Signal's releases with pools

| Release | Factory | Hook | First block | New launches | Pools observed |
| --- | --- | --- | ---: | --- | ---: |
| **4.2** | `0xfe485edbb6db2936349b67530c667a2b9905dc16` | `0x6227f0128935079abc6993f1166dc5d716032aec` | 48,104,757 | **open** | 19 |
| 4.1 | `0x39e08190857ff41c2939e5ee31635887b487dd91` | `0x50c42fd2b1c73a4416535068b9a3a4c5732aeaec` | 47,949,269 | closed | 11 |
| 2 | `0x16a80b08dedfea44495d47e378702297db366d5a` | `0xf201641ea2985f079791c6a28c0d3ebfdebdeaec` | 47,835,321 | closed | 9 |

A closed factory accepts no new launch. Its pools keep their hook, their terms and their trading. Two further factories appear in live configuration with no pools (`v4_lane` and `v4_lane_v3`); an indexer can ignore them until they report a launch.

A hook serves exactly one factory: `hook.factory()` names it and `factory.hook()` names the hook. Check both.

## Release 4.2 contracts

| Component | Address | Role |
| --- | --- | --- |
| Factory | `0xfe485edbb6db2936349b67530c667a2b9905dc16` | `launch`, pair admission, the birth events. `version()` returns 5 |
| Hook | `0x6227f0128935079abc6993f1166dc5d716032aec` | Every pool's terms, fee collection and payouts |
| Router | `0xcf9d5f4dc9860060db528bc9722cc3d828fc807c` | Exact-input swaps for any Signal v4 pool. Shared with releases 2 and 4.1 |
| Taxed-pair router | `0x2fca8081d6bff127413c91108561ff0ddc978b74` | Swaps on pools whose pair asset keeps a cut of its own transfers |
| Rules | `0xc21ffa66550deeae5177675a58ee422a17c8b8f6` | Stateless check of launch terms |
| Token factory | `0x8ef05423031855d06e523977a4071880233711c7` | Births each token as a minimal clone |
| Token implementation, plain | `0x2bea704baa3230a8b933636a33dee1d8bad76ff4` | A token whose fees never pay holders |
| Token implementation, holders | `0xfe684eb28b3a8656aeef3b0a2fe56aaf5b6d8d2e` | A token that pays its holders in the pair asset |

Both routers are approved by the 4.2 hook (`approvedRouter(address)` returns true for each). Approval matters inside a launch's opening rules, and for a pot at any time: only a buy through an approved router can win one. See [fees and rules](v4-fees.md#rules-that-can-refuse-a-buy).

## Interfaces

| ABI | Covers |
| --- | --- |
| [SignalV4FactoryV42](../.gitbook/assets/abis/v4/SignalV4FactoryV42.json) | `launch`, `poolOf`, `poolKeyOf`, `isSignalToken`, `quotes`, `quoteTerms`, `Launched`, `Details` |
| [SignalV4HookV4](../.gitbook/assets/abis/v4/SignalV4HookV4.json) | `terms`, `feeRates`, `sizeRate`, `devRate`, `prices`, `poolState`, `stats`, `flush`, `FeeTaken`, the hook's errors |
| [SignalV4FlushEvents](../.gitbook/assets/abis/v4/SignalV4FlushEvents.json) | `Flushed`, `BoughtBack`, `BidAdded`, `LegPaid`, `VestReleased`, emitted from the hook's address |
| [SignalV4RouterV2](../.gitbook/assets/abis/v4/SignalV4RouterV2.json) | `buyNative`, `swap` and their allowlist forms |
| [SignalV4RouterTaxed](../.gitbook/assets/abis/v4/SignalV4RouterTaxed.json) | `buyNative`, `sellNative`, `swap` for a taxed pair asset |
| [SignalV4TokenV42](../.gitbook/assets/abis/v4/SignalV4TokenV42.json) | The plain token |
| [SignalV4DividendTokenV42](../.gitbook/assets/abis/v4/SignalV4DividendTokenV42.json) | The holders token: `claim`, `push`, `withdrawableDividendOf` |
| [SignalV4RulesV41](../.gitbook/assets/abis/v4/SignalV4RulesV41.json), [SignalV4TokensV42](../.gitbook/assets/abis/v4/SignalV4TokensV42.json) | Launch-term check and the token factory |

The 4.1 hook is the same source as the 4.2 hook, deployed again for its own factory, so the hook ABI reads both. The release 2 hook is an earlier version: `terms`, `feeRates`, `poolKey`, `quoteOf`, `flush` and `FeeTaken` are present, the later additions are not. Call what you need and treat a revert as "not on this release".

## Machine-readable records

- [v4 deployment record](../.gitbook/assets/v4-deployments.json): the tables above as JSON, with the observation block.
- [v4 ABI provenance](../.gitbook/assets/v4-abi-provenance.json): the address each ABI was checked against and each file's SHA-256.
- [Live configuration](https://signal.family/api/config): the keys `v4_lane_v42`, `v4_lane_v4` (release 4.1) and `v4_lane_v2`. `enabled` is the "open for launches" answer; `paused` is the factory's own switch as last read.

## What these records are, and are not

The ABIs come from the build of the 4.2 release. On 12 October 2026 every function selector in each ABI was found in the runtime code at the address listed beside it. That is evidence the interface matches the deployment. It is not source verification and it is not an audit. These docs do not publish the v4 Solidity source, and they make no claim about an explorer's verification status: read the explorer record yourself.

A record states what was observed. Before execution, verify code presence, the factory and hook links, the pool key and fresh state through an RPC you trust, at one block. New-launch admission and the ability to trade an existing pool are separate questions.
