FewToken liquidity on Uniswap v4
Few Protocol wraps supported assets into ERC-20 FewTokens. These FewTokens can trade against other FewTokens or connect back to their underlying assets through Uniswap v4 wrapper hooks.
All pools on this page use the Ethereum mainnet PoolManager:
0x000000000004444c5dc75cB358380D2e3dE08A90.
A pool is identified by its complete PoolKey:
currency0
currency1
fee
tickSpacing
hooks
The pool ID is the hash of this key. Aggregators must keep every field exactly as published because changing the fee, tick spacing, currency order, or hook address identifies a different pool.
Primary FewToken pools on Ethereum
The 25 Ethereum mainnet pools below are Ring's primary FewToken pools on Uniswap v4. The set contains 16 FewToken trading pools and nine wrapper pools. Pools are listed alphabetically within each type; their order does not indicate priority.
The machine-readable integration manifest contains the same 25 pools with
their complete PoolKey, initialization block, initialization transaction, initial sqrtPriceX96, and initial tick.
FewToken trading pools
These pools trade one FewToken against another through standard Uniswap v4 concentrated liquidity. They have no hook.
Wrapper pools
These pools connect an underlying asset with its FewToken representation through a token-specific wrapper hook.
Machine-readable integration manifest
The Ethereum integration manifest lists the 25 pools covered by this guide
and provides the PoolKey and initialization data needed for ingestion and testing. It is not a live liquidity or
quote API. Integrators should read current pool state from Ethereum PoolManager before quoting or routing.
The top-level schemaVersion changes when the JSON structure changes. manifestVersion increments when the listed
pool set or one of its published parameters changes. updatedAt records when the manifest was last updated. Each
entry has this structure:
{
"pair": "fwUSDC/fwUSDT",
"type": "FewToken Trading",
"currency0": {
"name": "fwUSDC",
"address": "0x0492560fa7cfd6a85e50d8be3f77318994f8f429",
"etherscan": "https://etherscan.io/address/0x0492560fa7cfd6a85e50d8be3f77318994f8f429"
},
"currency1": {
"name": "fwUSDT",
"address": "0xef87f4608e601e8564800265aee1c1ffadf73283",
"etherscan": "https://etherscan.io/address/0xef87f4608e601e8564800265aee1c1ffadf73283"
},
"fee": {
"raw": 500,
"percent": "0.05%"
},
"tickSpacing": 10,
"hook": null,
"poolId": "0x6199c1a871328a693bbc9cd80a7e4874a4a7e2ebc862b51fa04bb6b587dbac47",
"poolKey": {
"currency0": "0x0492560fa7cfd6a85e50d8be3f77318994f8f429",
"currency1": "0xef87f4608e601e8564800265aee1c1ffadf73283",
"fee": 500,
"tickSpacing": 10,
"hooks": "0x0000000000000000000000000000000000000000"
},
"initialization": {
"block": 22041949,
"transactionHash": "0x3e613b39a343e8e71cf720ce2d933bc284d72b21a0ed035bcd29fd2ae615e52a",
"sqrtPriceX96": "79228162514264337593543950336",
"tick": 0
}
}
The currency0 and currency1 fields use the order required by the PoolKey. The pair label follows that order,
not a preferred base or quote convention.
Quoting FewToken trading pools
Read each pool through its exact PoolKey and the current PoolManager state. A quote must account for the current
square-root price, active liquidity, initialized ticks, LP fee, swap direction, and requested amount.
The trading pools use standard Uniswap v4 fee units:
100means 0.01%500means 0.05%3000means 0.3%
Use the v4 Quoter or an equivalent state-simulation path. A recognized token or pool ID is not sufficient if the quote engine cannot read the pool, simulate the swap, and return an executable result.
Quoting and executing wrapper pools
A wrapper pool converts between an underlying asset and its FewToken representation. Its token-specific hook wraps or
unwraps during beforeSwap and returns the swap delta to PoolManager.
The listed wrapper pools use:
fee: 0 (0%)
tickSpacing: 1
initial sqrtPriceX96: 79228162514264337593543950336
initial tick: 0
hookData: 0x
Quote both directions with the exact PoolKey. The conversion is designed around a 1:1 wrapper path, but the quote
engine should use the hook's returned deltas instead of hardcoding an output amount. Contract state, token behavior,
protocol charges, gas, or product-specific fees can still affect execution.
The ETH wrapper pool uses native ETH, represented by address(0), as currency0. WETH is used inside
FewETHHook; it is not a currency in that pool's PoolKey.
Wrapper pools can be used as route edges. An aggregator can wrap an input asset, trade through one or more FewToken
pools, and unwrap the output in the same route. Calldata must include the exact PoolKey, direction, amount,
slippage protection, and hookData required by the execution path.
Integration completion criteria
FewToken liquidity support is complete when:
- all 25 listed pools can be discovered by their complete
PoolKey - the quote engine can read current pool state and return valid quotes when the pool supports the requested size
- a pool can enter the route when it improves the quote
- the router can produce executable calldata with the correct currencies, fee, tick spacing, hook, direction, amount, slippage protection, and hook data
- at least one mainnet transaction succeeds through a FewToken trading pool and at least one succeeds through a wrapper-hook pool
- the quote response or transaction trace identifies the FewToken pool or the aggregator's FewToken liquidity source