Liquidity management hook on Arc
Uniswap v4 Hook Contract 0xa5017288aa1cff56a798f4aa49f8b83ecd2328c0 on Arc · Liquidity management
- Volume (24h)
- $1.97
- Value locked (TVL)
- $0
- All-time volume
- $1.97
- Pools using this hook
- 1
- Swaps (24h)
- 1 (1 traders)
- Total swaps
- 1
What it does
A JIT liquidity hook that adds hook-managed liquidity around swaps and takes a capped protocol share of the earnings; traders pay the normal pool fee with no extra deduction, admins can pause swaps, and LPs can always withdraw.
This read was written for the hook 0xff72…e8c0 on Base and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Runs just-in-time (JIT) liquidity: registered JIT positions, apparently authorized by EIP-712 signatures, can be added around swaps by the hook itself.
- Checks new pools at creation and restricts which fee tier and tick spacing combinations are allowed, using an admin-set table.
- Checks liquidity additions before they happen, which may limit who can add liquidity or how.
- Can pull tokens from the pool manager and route them to external vaults through a registry, keeping a protocol share for a fee recipient.
- Has role-based admin controls: pause swaps, pause individual JIT positions, set the protocol share, and rescue tokens that are not in a vault.
- Swap behaviour
- Before each swap the hook checks the global pause flag and may add JIT liquidity. After the swap it may settle or remove that liquidity. Swap return deltas are disabled, so it cannot directly deduct tokens from trader input or output, but an admin pause can block all swaps.
- Liquidity behaviour
- A check runs before liquidity is added and may gate or restrict deposits. Remove-liquidity callbacks are disabled, so LPs can always withdraw their positions freely.
- Fee behaviour
- Uses the pool's fee tier, which the admin whitelists. A protocol share, capped by a hard-coded maximum whose exact value is not visible in bytecode, goes to a protocol fee recipient, apparently taken from JIT earnings rather than from traders directly.
- Owner & admin controls
- Role holders can pause and unpause swaps, pause JIT positions, set allowed fee tiers and tick spacing, set the protocol share up to its built-in maximum, change the fee recipient, and rescue tokens held by the hook that are not assigned to a vault. The exact cap values cannot be confirmed from bytecode.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap
beforeInitialize: enforces allowed fee tier and tick spacing; beforeAddLiquidity: validates or gates deposits; beforeSwap: pause check and JIT liquidity placement; afterSwap: JIT unwinding and fee accounting.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: Accounts holding access-control roles can pause trading, change the protocol share within a built-in cap, change fee tiers, and rescue tokens held by the hook. The contract is not upgradeable.
Risk to user funds: The hook has no swap return deltas, so it cannot skim trades, though it moves JIT funds and vault funds it manages itself. Regular LP principal in the pool cannot be locked or drained, and withdrawals are unrestricted.
Security findings
- [medium] Admin can pause swaps: A pause role can stop all swaps through the beforeSwap check. LP withdrawals are unaffected.
- [low] Token rescue function: An admin can transfer out tokens held by the hook that are not assigned to a vault. Pool reserves held in the PoolManager are not reachable this way.
- [info] Unverified bytecode: No source code is published, so the exact protocol share cap and the JIT settlement logic cannot be fully verified.
- [info] Free LP withdrawals: Remove-liquidity callbacks are disabled, so the hook can never block or charge withdrawals.
Contract details
- Verified source
- No
- Bytecode size
- 20,959 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, pausable, self-unlock
Pools using Liquidity management hook
- USDC / EURC (0.05% fee) — 24h volume $1.97, TVL $0, 1 swaps today