STRMOGHook on Ethereum
Uniswap v4 Hook Contract 0x269044c34e5c6c41d5908d88924f544de38cc0cc on Ethereum · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $11.19K
- All-time volume
- $271.21K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 515
What it does
Charges a fixed 10% fee on swaps in one ETH/STRMOG pool and routes the accrued fees to a treasury.
How it works step by step
- Binds to exactly one pool via setManagedPool, requiring currency0 to be native ETH and currency1 to be STRMOG
- Takes a fixed 10% fee on swaps by returning a before-swap or after-swap delta
- Mints ERC-6909 claim balances in the pool manager to represent accrued ETH or STRMOG fees
- Lets anyone call sweepETH or sweepToken to burn claims and send 99.75% to the treasury and 0.25% to the caller as a bounty
- Pokes the treasury's pokeV2 after each sweep, ignoring failures
- Swap behaviour
- beforeSwap takes a 10% fee on ETH-in exact-in swaps; afterSwap takes a 10% fee on the remaining swap directions, taking the fee in ETH or STRMOG depending on direction and exact-in or exact-out.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Charges a fixed 10% fee (FEE_BPS 1000) on swap amounts, taken as claim tokens via poolManager.mint and accounted in owedEth or owedToken; the fee is taken in ETH for ETH-in exact-in swaps (beforeSwap), and in ETH or STRMOG on afterSwap depending on direction and exact-in/exact-out; accrued fees are swept to the immutable treasury with a 0.30% caller bounty.
- Owner & admin controls
- Owner (Ownable) can call setManagedPool once to bind the pool (only settable if unset, currency0 must be ETH) and can transfer or renounce ownership; no pause, upgrade, or fee-parameter setters are present since FEE_BPS and SWEEP_BOUNTY_BPS are constants and treasury is immutable.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap: charges the 10% fee on ETH-in exact-in swaps by returning a specified-amount delta and minting ETH claims. afterSwap: charges the 10% fee on the other swap directions by returning an unspecified-amount delta and minting ETH or STRMOG claims. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take its fee through returned deltas.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The owner can only bind the managed pool once and transfer or renounce ownership; the owner cannot change fees, pause swaps, or withdraw funds, so a privileged key cannot directly harm users' balances, though a mis-bound pool would permanently route fees for that pool only.
Risk to user funds: The hook holds only ERC-6909 claim balances it mints for fees; it does not hold pool liquidity or user principal. Swaps take a 10% fee on the affected leg, and the hook cannot block swaps except through the revert paths in unlockCallback or the managed-pool check, which only rejects non-managed pools.
Security findings
- [info] Fixed 10% swap fee via return deltas: beforeSwap and afterSwap take a fixed 10% fee on every managed-pool swap via return deltas; the fee rate is a constant and cannot be changed by any admin.
- [low] One-time pool binding by owner: setManagedPool can be called by the owner exactly once, and only if currency0 is native ETH, binding the hook to a single pool that cannot be changed afterwards.
- [info] Permissionless fee sweeping with caller bounty: sweepETH and sweepToken are permissionless; they burn accrued claims and pay a 0.30% bounty to the caller and the remainder to the treasury, with an external poke to the treasury after the unlock.
- [low] Treasury is a fixed immutable recipient: The treasury address is immutable and set at deployment; if the treasury contract is unable to accept payments the try/catch on pokeV2 protects sweeps, but the treasury receives funds through poolManager.take which could revert if the recipient rejects transfers.
Contract details
- Verified source
- Yes (STRMOGHook)
- Compiler
- solc 0.8.28+commit.7893614a
- Bytecode size
- 7,819 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc6909-claims, moves-currency, ownable, return-delta, self-unlock
Pools using STRMOGHook
- ETH / STRMOG (0.00% fee) — 24h volume $0, TVL $11.19K, 0 swaps today