TELxIncentiveHook on Polygon
Uniswap v4 Hook Contract 0xc5a46bd28bf80c71f1976a4d4bd0ed3640e94a40 on Polygon · Rewards · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0.04
- All-time volume
- $0.20
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 20
What it does
A Uniswap v4 hook that records LP position changes and emits swap events with the current tick so an off-chain system can calculate incentive rewards for in-range liquidity.
How it works step by step
- Restricts liquidity add and remove hook calls to the configured position manager
- Calls the PositionRegistry to add or update each LP position's liquidity by token id and pool
- After swaps in registry-approved pools, reads the current tick from pool state via StateLibrary
- Resolves the trader through trusted routers by calling msgSender() on them
- Emits SwapOccurredWithTick so an off-chain script can check LP range activity and pay rewards
- Swap behaviour
- After each swap in a registry-valid pool, reads the current tick from the pool and emits SwapOccurredWithTick with the pool id, the resolved trader address, both token deltas and the tick. Does not alter swap amounts or fees.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity require the sender to be the position manager, then record the position (tokenId from the salt, pool id, liquidityDelta) into the PositionRegistry. Liquidity itself is not moved or altered by the hook.
- Fee behaviour
- Does not set or take fees and does not modify the pool's fee; it uses the pool's static fee.
- Owner & admin controls
- No admin controls found in the hook itself. registry and positionManager are immutable and set in the constructor; the registry (IPositionRegistry) holds the active routers and valid pool flags, and its owner controls which routers and pools are trusted, which is outside the hook source reviewed here.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeRemoveLiquidity, afterSwap
beforeAddLiquidity: records LP position changes in the registry, restricted to the position manager. beforeRemoveLiquidity: records LP position reductions in the registry, restricted to the position manager. afterSwap: reads the current tick from the pool and emits SwapOccurredWithTick for pools flagged valid in the registry, resolving the end user through trusted routers.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: Whoever controls the PositionRegistry can add or remove trusted routers and valid pools, which determines which swaps emit events and which routers are treated as user-resolving proxies. The hook has no owner or pause function of its own.
Risk to user funds: The hook does not custody or move user or pool funds and has no return-delta permissions, so it cannot take tokens from swaps or liquidity actions. Exposure is limited to indirect effects through reverts and to the accuracy of reward and event data recorded in the external registry.
Security findings
- [low] Trust in registry-listed routers: The hook calls msgSender() on any sender flagged active in the registry. If the registry marks a malicious contract as an active router, that contract can return arbitrary addresses that get recorded as the swap trader in events.
- [info] Revert paths can affect operations: The hook does not hold tokens or return deltas, and it cannot block swaps or liquidity actions beyond reverting when the sender is not the position manager or when a trusted router lacks msgSender(). Reverts in afterSwap or before-liquidity hooks could still block operations, so registry changes can indirectly affect liquidity actions.
- [info] Dependence on position manager: The position manager address is only trusted through the constructor argument and the sender check; the reviewed source does not show the position manager's own safeguards.
Contract details
- Verified source
- Yes (TELxIncentiveHook)
- Compiler
- solc 0.8.25+commit.b61c2a91
- Bytecode size
- 4,945 bytes
- Upgradeable proxy
- No
- Detected patterns
- rewards
Pools using TELxIncentiveHook
- POL / TEL (1.00% fee) — 24h volume $0, TVL $0.04, 0 swaps today