VitaHook on Arc

Uniswap v4 Hook Contract 0xf001e6f24661c2a6c22c5ff64206cad6da0bc044 on Arc · Fee sharing · Verified contract

Volume (24h)
$0
Value locked (TVL)
$0.09
All-time volume
$0.05
Pools using this hook
14
Swaps (24h)
0 (0 traders)
Total swaps
1

What it does

Skims a fixed 1% fee from each VITA/ETH swap and sends it to the protocol treasury.

How it works step by step

  • Runs afterSwap on every swap in the VITA/ETH pool and rejects any other pool key.
  • Computes a 1% fee on the unspecified currency amount of each swap.
  • Takes the fee from the PoolManager through poolManager.take into the hook.
  • Transfers VITA fees to the treasury and tracks totalVitaToTreasury.
  • Forwards the hook's ETH balance to the treasury and tracks totalEthToTreasury.
  • Returns the fee as an afterSwap return delta so the swapper pays it.
Swap behaviour
After each swap, the hook takes 1% of the unspecified-side amount (output for exact-input, input for exact-output) from the PoolManager and forwards VITA or ETH fees to the treasury, returning that amount as a hook delta.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Takes a fixed 1% (100 bps) of the unspecified-side amount on every swap via afterSwap return delta; VITA fees are transferred to the treasury, ETH fees are forwarded to the treasury.
Owner & admin controls
No admin controls found. Treasury and token addresses are immutable constructor parameters; no owner, pause or upgrade functions are present in the verified source.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap: skims a 1% fee from the unspecified currency after each swap and routes it to the treasury; afterSwapReturnDelta: lets the hook claim that fee amount from the swapper's delta.

Security & trust assessment

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

Who controls it: No privileged key is defined. The treasury address is fixed at deployment, so the treasury itself cannot be changed by any admin, but whoever controls the treasury address receives all fees.

Risk to user funds: The hook can take up to 1% of swap output or input per swap through the return delta and forward it to the treasury; it cannot block swaps or touch pool principal beyond that fee. Users pay the fee on each trade.

Security findings

  • [medium] Unchecked ETH transfer to treasury: The ETH branch sends the hook's entire ETH balance to the treasury via a low-level call and ignores the return value, so a failed transfer would silently leave ETH in the hook while the fee is still counted as taken.
  • [low] Full ETH balance forwarded on each swap: The hook takes fee tokens via poolManager.take and then forwards them; any ETH sent to the receive function or left over is forwarded wholesale, so stray balances may be sent to the treasury rather than tracked.
  • [info] Burn flag and naming mismatch: Both branches emit SwapFeeTaken with burned=false, and the contract never burns VITA despite its name and the IVitaBurnable interface, which could mislead indexers or users.
  • [info] Immutable configuration: The hook is hard-wired to one pool (native ETH and the VITA token) and a fixed 1% fee with no owner setters, so terms cannot be changed after deployment.

Contract details

Verified source
Yes (VitaHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
1,788 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta

Pools using VitaHook