TELxIncentiveHook on Base

Uniswap v4 Hook Contract 0x23ab2e6d4ab0c5f872567098671f1ffb46fd2500 on Base · Rewards · Verified contract

Volume (24h)
$420
Value locked (TVL)
$422
All-time volume
$7.21M
Pools using this hook
1
Swaps (24h)
32 (16 traders)
Total swaps
44,544

What it does

Records LP position liquidity and fee data into a registry on each liquidity change so an off-chain script can calculate incentive rewards for liquidity providers.

How it works step by step

  • On pool initialization, registers the pool with the PositionRegistry using the sender and pool key.
  • After liquidity is added, records the tokenId, pool id, liquidity delta and accrued fees in the registry.
  • After liquidity is removed, records the same position data update in the registry.
  • Restricts the liquidity callbacks to calls originating from the configured position manager.
  • Leaves swap, fee and balance accounting untouched; reward payouts are handled off-chain.
Swap behaviour
No swap callbacks.
Liquidity behaviour
After liquidity is added or removed through the position manager, the hook forwards the position's tokenId (from the salt), pool id, liquidity delta and fees accrued to the PositionRegistry via addOrUpdatePosition. Liquidity itself is not altered and the returned delta is unchanged.
Fee behaviour
Does not set or take fees; uses the pool's static fee. Fee accrual values are only read and forwarded to the registry for recording.
Owner & admin controls
No owner or pause functions found in the hook source. The registry address and position manager are immutable constructor arguments, so the hook cannot be reconfigured. The registry itself is external and may have its own admin controls that were not analysed.

Enabled Uniswap v4 callbacks

beforeInitialize, afterAddLiquidity, afterRemoveLiquidity

beforeInitialize registers the new pool with the registry via initialize(sender, key). afterAddLiquidity and afterRemoveLiquidity record position liquidity and fee changes in the registry, gated to calls coming from the position manager.

Security & trust assessment

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

Who controls it: The hook has no privileged role of its own. Trust rests with the immutable registry and position manager addresses; if the registry is admin-controlled, that party controls the recorded position data that the off-chain rewards script relies on.

Risk to user funds: The hook does not hold, move or take user or pool tokens and returns deltas unchanged, so it cannot custody or block swap funds. Liquidity operations can be affected only if the external registry reverts.

Security findings

  • [medium] External registry dependency: Adding and removing liquidity calls out to the registry, so the registry's behaviour (including any reverting or upgradeable logic) can block liquidity operations for pools using this hook.
  • [low] Pool creation depends on registry: beforeInitialize calls registry.initialize for every new pool, so a registry that reverts would prevent pool creation for this hook.
  • [info] Rewards logic is off-chain: Reward eligibility is computed off-chain from registry data, so the on-chain hook does not itself enforce how rewards are paid.
  • [info] Position manager gating: Hook is restricted to calls from the position manager, which limits who can write position records.

Contract details

Verified source
Yes (TELxIncentiveHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
7,546 bytes
Upgradeable proxy
No
Detected patterns
rewards

Pools using TELxIncentiveHook