Solana · 13 October 2025 · verified on-chain

The first token ever launched into a hook pool on Solana

For four years, every token on Solana launched into a market that could only do one thing: swap. Then a wallet minted a token at 07:01 in the morning and, twenty-two minutes later, opened it a market that could think. Nothing had ever been born that way before.

Before May 2025

Solana had no hooks

On Ethereum, Uniswap v4 introduced hooks in 2025 — the idea that a liquidity pool could call out to a separate program at fixed moments in its life, and let that program change what happens. A pool stopped being a fixed machine and became something you could extend.

Solana had nothing like it. Raydium, Orca, Lifinity, Meteora — every major venue going back to 2021 was a closed box. You could list a token on them. You could not teach them anything. A survey of 43 Solana AMM and DEX programs finds not one with a pool-level hook before May 2025.

13 May 2025

Saros ships the first one

Saros deploys a bin-based market maker with a field on every pool account called hook — an optional pointer to another program — and a matching interface with the full Uniswap v4 callback surface:

before_swap    after_swap        when someone trades
before_mint    after_mint        when liquidity is added
before_burn    after_burn        when liquidity is removed

This is the v4 pattern, arriving on Solana. The pool holds the hook's address; the AMM stops partway through a trade and calls it. A day later the first hook implementation goes live — a rewarder, built to pay liquidity providers.

Then, for seven weeks, nobody uses it.

1 July 2025

The first hooked pool

Wallet HM9XRfj4… opens a JUP/wSOL market and attaches a hook to it. It is the first pool on Solana ever to carry one.

The hook pays liquidity providers in JUP itself, and the band is severe — only liquidity sitting within two bins of the live price earns anything at all.

pool
51yEZLwKaMcnGjpakw3ZDH9RgjrFXBs1ddqmcnAJfRaM
reward
JUP · 5 units/sec · until 2025-12-20
band
−2 … +2 bins

orange = live price · teal = earning · grey = earning nothing

18 July 2025

The first one that really ran

A different operator opens PENGU/USDC with a far more generous setup — rewards in USDC, spread across a thirty-one bin band so liquidity keeps earning as the price drifts. This is the pool that puts hooks to work: 484 swaps, each one stopping to call the hook.

pool
FBjV4PE2CZ9jrfWXbsvhEVDwgaE6ozp7fK2sggmnH6A3
reward
USDC · 579 units/sec · until 2025-11-19
band
−15 … +15 bins

a wide band — liquidity keeps earning as price moves

Seven more follow through the autumn: SAROS, USDG, PayPal USD, USDT, USD1. Real venues, real volume. Across all twelve hooked pools, 7,053 swaps — and 6,947 of them call their hook.

But every one of these is the same shape. A token that already existed, given a smarter market afterwards. The hook is something that happened to them.

How the hook actually works

rewarder_hook · mdmavMvJpF4ZcLJNg6VSjuKVMiBo5uKwERTg1ZB9yUH

Saros is a bin market: liquidity sits in discrete price steps, and exactly one bin is active at the current price. Each hooked pool gets its own rewarder instance, holding five numbers:

reward_token_mint      what it pays out
hook_reserve           where the rewards are held
rewards_per_second     the drip rate
delta_bin_a .. delta_bin_b   how far from the price you can sit
end_time               when it stops

Why before_swap has to exist

A swap moves the active bin. The instant the price shifts, a different set of positions is inside the earning band. So the pool must call the hook before the trade settles, to close the books under the old price. The hook is not decoration — the reward math is wrong without it.

13 October 2025

The order reverses

At 07:01:01 UTC, HM9XRfj4… — the same wallet that opened the first hooked pool in July — runs InitializeMint and creates a token that has never existed before.

Twenty-two minutes later, it opens that token a hooked pool.

22:15 From mint to hook pool — one wallet, one sitting

No listing. No prior market. No history to retrofit. The token and its hooked market are a single act — the first time on Solana a token was created for a hook rather than fitted with one.

And it is configured like nothing before it. The pool pays rewards in the token itself, and the earning band collapses to a single bin. Not two either side, like JUP. Not fifteen, like PENGU. One. Sit exactly on the price, or earn nothing.

token
56N1bXQ29q7TWVe7jCy1CiTRKcWki4CMHQBB4b9X6xhP
pool
qfjKXuXGeeKz6D1zj1wun2jSvhrjkekbx1WFXfqcpJQ
hook
5wsmDS7KxTRTsCW885A1H27mXNYj4cUPRGveWY3PP7xF
reward
itself · 1000 units/sec · until 2026-02-06
band
0 … 0 — the live bin only

the tightest band the system allows — one bin, nothing else

The ten tokens nobody collected

hook reserve · 6pJJASNcNn239E2CBXzMJsQpKPd8UyiGvZLkap6fw1wh

The reward reserve was funded to the second:

pool created    2025-10-13
emissions end   2026-02-06        116 days
116 days x 1000 units/sec    =    10.0136 tokens
reserve funded with          =    10 tokens

Ten tokens, released at a millionth of a token per second, payable only to liquidity standing exactly on the price. The window ran one hundred and sixteen days and closed.

Not one was ever claimed. To earn them you had to provide liquidity in a single bin of a market nobody was trading — and nobody ever was. The pool recorded zero swaps for nine and a half months. The reserve still holds all ten, stranded behind a schedule that expired in February.

The entire float is twenty-one tokens

Of 100,000,000 supply, only twenty-one ever left the deployer's wallet: eleven placed into the pool as liquidity, ten sealed into the hook as rewards. Everything else has sat untouched since the morning it was minted.

1 August 2026

The first trade, and the proof

Nine and a half months after it opened, the pool processed its first swap. This is what the chain recorded — the market stopping mid-trade to call the hook, and the tokens moving only once it returned:

1qbkdrr3z4ryLA7pZykqxvxWPoeifcVKo6ZG9CfkvVE invoke [1]   ← the market
  Instruction: Swap
  mdmavMvJpF4ZcLJNg6VSjuKVMiBo5uKwERTg1ZB9yUH invoke [2]   ← the hook fires
    Instruction: BeforeSwap
  TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]
    Instruction: TransferChecked                           ← tokens move after

Not a token extension. Not a wrapper. A market calling a separate program at a named point in the life of a trade — the thing Solana could not do before May 2025, running on the first token ever born into it.

The record

WhenWhat happened
2021 – 2023Raydium, Orca, Lifinity, Meteora — no pool-level hooks anywhere on Solana
2025-05-13Saros ships the liquidity book and hook interface
2025-05-14The rewarder hook goes live
2025-07-01First hooked pool ever — JUP / wSOL
2025-07-18PENGU / USDC — hooks run at volume
2025-10-13First token minted for a hook pool — 22 minutes from mint to market
2026-02-06Its reward window closes with all ten tokens unclaimed
2026-05-11Doppler brings hooks to Solana, a year late
2026-06-09Patcha adds v4 hooks to Orca and Raydium
Token
56N1bXQ29q7TWVe7jCy1CiTRKcWki4CMHQBB4b9X6xhP
Hooked pool
qfjKXuXGeeKz6D1zj1wun2jSvhrjkekbx1WFXfqcpJQ
Hook
5wsmDS7KxTRTsCW885A1H27mXNYj4cUPRGveWY3PP7xF
Deployer
HM9XRfj4PeBSNd7XS1BJVMQBpjJGygusZ8KE498wXZwH
Launched
13 October 2025 · 07:23:16 UTC