FewV2ShellHook on Ethereum

Uniswap v4 Hook Contract 0x59255cbc688e402ef980b84668ba1d1c708b6088 on Ethereum · Aggregator · Verified contract

Volume (24h)
$1.20K
Value locked (TVL)
$48
All-time volume
$1.20K
Pools using this hook
1
Swaps (24h)
1 (1 traders)
Total swaps
9

What it does

This hook routes swaps through matching FewV2 pairs with no extra hook fee beyond FewV2's 0.30% venue fee, lets admins pause swaps and gate which tokens get pools, and never blocks LP withdrawals.

How it works step by step

  • Routes every swap in its pools through a matching external FewV2 pair (a Uniswap V2 fork) instead of the v4 pool's own liquidity.
  • Wraps your input token 1:1 into Ring's 'few' token, swaps it on FewV2, then unwraps the output 1:1 back to the original token and delivers it in the same transaction.
  • Only an approved pool initializer can create pools, and only for tokens on an owner-managed allowlist (new tokens need a timelock before being added).
  • A guardian or owner can pause swaps in an emergency; only the owner can unpause.
  • LPs who deposit into these v4 pools earn no fees from hook swaps, because swaps bypass the v4 curve, but they can always withdraw.
Swap behaviour
Each swap is fully handled by the hook, which executes it on the linked FewV2 pair at the FewV2 price (including FewV2's 0.30% fee) and enforces your price limit. Swaps revert when paused, when FewV2 reserves or wrapper backing are insufficient, or when the PoolManager lacks enough cash of the input token.
Liquidity behaviour
No liquidity callbacks; LPs can add and withdraw freely. Note that v4 LP positions in these pools earn nothing from hook swaps, since trades are executed on FewV2.
Fee behaviour
The hook adds no fee of its own; traders pay only the 0.30% FewV2 venue fee built into the output price, which goes to FewV2 liquidity providers.
Owner & admin controls
The owner can add allowlisted tokens (after an immutable timelock), remove them, unpause, and change the guardian, pool initializer and residual recipient; the guardian can pause swaps and remove tokens. No one can change existing routes, set fees, or move LP funds.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, beforeSwapReturnDelta

beforeInitialize: restricts pool creation to the approved initializer, allowlisted tokens, a 0.30% fee tier and a price matching FewV2; beforeSwap: executes the trade on FewV2 and enforces pause and price limits; beforeSwapReturnDelta: replaces the v4 swap amounts with the FewV2 execution result.

Security & trust assessment

Risk level: medium (verified source, high confidence).

Who controls it: An owner (two-step transfer, cannot renounce) and a guardian control pausing and the token allowlist. The worst they can do is halt swaps; they cannot change fees, routes, or take funds.

Risk to user funds: The hook only handles the swap amount in flight, converting it via FewV2 with no extra fee beyond FewV2's 0.30%. LP principal stays in the PoolManager and cannot be locked or drained by the hook.

Security findings

  • [medium] Swaps can be paused: The guardian or owner can pause all swaps through the hook at any time; only the owner can unpause. Liquidity withdrawals are not affected.
  • [info] No added hook fee: Swap amounts are taken and settled exactly against FewV2 with strict balance checks; the hook takes no extra cut beyond FewV2's 0.30% fee.
  • [info] Permissionless sweep of residual balances: Anyone can send tokens sitting in the hook contract itself to the owner-set residual recipient; this cannot reach funds held in the PoolManager.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled and the contract is not upgradeable, so LPs can always withdraw.

Contract details

Verified source
Yes (FewV2ShellHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
23,219 bytes
Upgradeable proxy
No
Detected patterns
access-control, aggregator, erc20, moves-currency, ownable, pausable, return-delta

Pools using FewV2ShellHook