EVPLUSAI on Robinhood Chain

Uniswap v4 Hook Contract 0xcb787a5cdea8b3715d984d82f1203fd7bfebe0c4 on Robinhood Chain · Dynamic fee · Verified contract

Volume (24h)
$2.08K
Value locked (TVL)
$3.87K
All-time volume
$1.12M
Pools using this hook
1
Swaps (24h)
166 (116 traders)
Total swaps
12,587

What it does

A Uniswap v4 pool hook that applies a worker-set dynamic fee to swaps, with 90% going to LPs and 10% to the platform treasury.

How it works step by step

  • Only pools created by the owner through createPool are accepted, with the hook address as the only allowed initializer.
  • A registered worker posts zeroForOne and oneForZero fees between 0.025% and 0.9% with a short expiry and replay-protected sequence numbers.
  • beforeSwap applies the current directional fee as an LP override fee, expiring to a 0.05% base fee when stale.
  • afterSwap computes a 10% platform share of the swap fee on the actual unspecified amount and mints it as PoolManager claims.
  • Anyone can call sweepPlatformFees to redeem the hook's claims to the configured treasury, retaining one raw unit.
  • Owner can recover tokens sent directly to the hook and can permanently freeze the treasury address.
Swap behaviour
Each swap uses the worker-posted directional fee (or 0.05% base if expired), and afterSwap takes 10% of the fee budget from the unspecified side and mints it to the hook as a claim.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Each pool's directional LP fee is set by an authorised worker via postFees, bounded between 250 and 9000 pips and expiring back to a 500 pip base fee after a short TTL. On each swap the hook takes 10% of the posted fee budget as a platform charge on the actual unspecified amount via afterSwap, minted as PoolManager claims to the hook and sweepable to the treasury.
Owner & admin controls
Owner (Ownable2Step, renounce disabled) can create pools, replace the per-pool worker with setWorker, set and freeze the treasury (freeze is permanent), transfer ownership, and recover tokens held directly by the hook. Owner cannot set fees outside the 0.025% to 0.9% bounds enforced in postFees, and there is no upgrade path or pause function.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, afterSwapReturnDelta

beforeInitialize restricts pool initialization to the hook itself; beforeSwap returns the worker-set dynamic LP fee with the override flag; afterSwap mints platform fee claims from the swap delta and returns that amount as an afterSwapReturnDelta.

Security & trust assessment

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

Who controls it: The worker key sets the live fee for each pool within bounds, which can make trades costlier or cheaper for up to 0.9% per swap; the owner can redirect the treasury until frozen and can change workers, which immediately clears prices for that pool.

Risk to user funds: The hook holds only its own minted PoolManager claims and any tokens sent directly to it, which the owner can recover. It cannot move LP principal or block swaps directly, but pricing decided by the worker and the 10% platform charge affect the swap output users receive.

Security findings

  • [medium] Single worker controls pricing: Fees are posted by a single per-pool worker address; a compromised or malicious worker can set both directional fees to the maximum 0.9% until the TTL expires.
  • [medium] Owner-controlled fee receiver: Owner can replace the treasury and sweep destination until freezeFeeReceiver is called, which is irreversible; owner can also transfer ownership without a timelock.
  • [info] Hook takes swap deltas: afterSwap takes a 10% platform charge via afterSwapReturnDelta, so the hook receives output or input tokens on every swap while the pool's LP share is reduced accordingly.
  • [info] Immutable implementation: Contract is non-proxy and non-upgradeable; owner cannot pause swaps or upgrade logic.

Contract details

Verified source
Yes (EVPLUSAI)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
8,950 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta, self-unlock

Pools using EVPLUSAI