RunHook on Ethereum
Uniswap v4 Hook Contract 0x79ae49ae54f7ed003eae3ce5a6ce4bb96f6260cc on Ethereum · Utility · Verified contract
- Volume (24h)
- $1.57K
- Value locked (TVL)
- $0
- All-time volume
- $1.57K
- Pools using this hook
- 1
- Swaps (24h)
- 24 (14 traders)
- Total swaps
- 24
What it does
A Uniswap v4 hook for the native ETH / RUN pool that charges a fixed 2% fee on every swap and credits it to a fee recipient as ERC-6909 ETH claims.
How it works step by step
- Charges a fixed 2% fee on all swaps in the ETH / RUN pool, in both buy and sell directions
- Computes the fee on the ETH side, using exact-input or exact-output math with gross-up on exact-output buys
- Adjusts the swap via beforeSwap and afterSwap return deltas so the fee is settled inside the swap
- Mints the collected fee as ERC-6909 ETH claims to feeRecipient on the PoolManager
- Restricts pool initialization to one pool created by the initializer address, paired with native ETH and RUN
- Emits FeeCollected with pool id, sender, direction and fee amount on each fee event
- Swap behaviour
- On every swap that involves ETH the hook charges 2% of the ETH side, using beforeSwap for specified-ETH swaps and afterSwap for unspecified-ETH swaps. The fee is minted to feeRecipient. Swaps by feeRecipient are exempt.
- Liquidity behaviour
- No liquidity callbacks. Add and remove liquidity hooks revert with HookNotImplemented and are not enabled in permissions.
- Fee behaviour
- Fixed 2% (FEE_BPS = 200) on every swap, always settled in ETH. Exact-input buy and exact-output sell take 2% of the specified ETH via beforeSwap delta; exact-input sell takes 2% of ETH paid out and exact-output buy adds 2% gross-up via afterSwap unspecified delta. Fee is minted as ERC-6909 ETH claims to feeRecipient. Swaps originating from feeRecipient are fee-exempt.
- Owner & admin controls
- No admin controls found. The hook has no owner and no admin functions; feeRecipient, run token, initializer and poolManager are immutable. Only the initializer address can create the single pool, and only once.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool creation to the initializer and to native ETH / RUN pools. beforeSwap returns a specified-currency fee delta when ETH is the specified currency. afterSwap mints the fee as ERC-6909 claims to feeRecipient and returns an unspecified-currency delta when ETH is the unspecified currency. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to alter the amounts the pool swaps and settles.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged keys or owner. Parameters are fixed at deployment, so no admin can change the fee, token or recipient after deployment. The feeRecipient address receives all fee claims and the initializer alone can create the pool.
Risk to user funds: The hook never holds user tokens directly. It alters swap amounts through return deltas and mints ERC-6909 claims for the fee recipient. It has no function to block swaps or move pool funds, so funds are exposed only to the fixed 2% fee.
Security findings
- [info] Return-delta fee mechanism: The hook takes its fee through beforeSwap and afterSwap return deltas, which alter the amounts the pool swaps and settles. Users receive less ETH on sells and pay more on buys than the pool's nominal price implies.
- [info] Fixed immutable fee: The fee is a fixed 2% of the ETH side, with no cap or adjustment path, so the cost to traders is predictable and bounded.
- [low] Pool creation is gated: Only the initializer can create the pool, and only native ETH paired with the configured RUN token, which prevents front-running with a bad price or tick spacing.
- [info] Fee accrued as ERC-6909 claims: Fees are minted as ERC-6909 claims rather than transferred, so the feeRecipient must redeem claims from the PoolManager to receive ETH.
Contract details
- Verified source
- Yes (RunHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 4,332 bytes
- Upgradeable proxy
- No
- Detected patterns
- return-delta
Pools using RunHook
- ETH / RUN (0.00% fee) — 24h volume $1.57K, TVL $0, 24 swaps today