Hook 0xa796…a8c0 on Base
Uniswap v4 Hook Contract 0xa796f5824749f35e04cb4099cf549f5226a0a8c0 on Base · Other
- Volume (24h)
- $2.00
- Value locked (TVL)
- $19
- All-time volume
- $2.00
- Pools using this hook
- 1
- Swaps (24h)
- 3 (1 traders)
- Total swaps
- 3
What it does
An upgradeable Uniswap v4 hook that runs checks at pool initialization, liquidity addition and swaps, apparently gating activity through address allowlists, but its exact behaviour cannot be confirmed without source.
How it works step by step
- Runs logic at pool initialization (beforeInitialize).
- Checks or gates liquidity additions (beforeAddLiquidity) against an address-keyed flag mapping.
- Runs pre-swap checks (beforeSwap) and post-swap bookkeeping (afterSwap) against state mappings.
- Can call the pool manager to take, settle, sync, mint, burn and modify liquidity via unlock callbacks.
- Is deployed behind an upgradeable proxy whose implementation can be replaced.
- Swap behaviour
- beforeSwap and afterSwap are implemented; they read allowlist-style and uint16 state mappings, suggesting swap gating and post-swap bookkeeping, but the precise logic is unconfirmed.
- Liquidity behaviour
- beforeAddLiquidity is implemented and reads an address-keyed bool mapping; it may restrict which addresses can add liquidity. The hook can also call modifyLiquidity and mint/burn through the manager, so it may manage liquidity itself. Exact behaviour is unconfirmed.
- Fee behaviour
- Not determinable from decoded bytecode alone; the hook has a uint16 mapping keyed by uint256 (f9c869...e303) read in beforeSwap/afterSwap and written in initialize-related paths, which may hold per-pool fee or parameter state, but the fee logic is unconfirmed.
- Owner & admin controls
- Proxy is upgradeable (upgradeToAndCall, EIP-1967 style slot 360894a1...); the upgrade key can replace the implementation. Storage suggests owner-gated setters: allow(address,uint8), a bool-flag setter (2bb766e5), an address/bool allowlist (a67ea8be, mapping(address=>bool) slot f9c869...e305), and a mapping(address=>bool) toggle (c0ab221e). Exact authorization checks cannot be confirmed without source.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap
beforeInitialize: runs checks or setup when a pool is initialized. beforeAddLiquidity: gates or inspects liquidity additions. beforeSwap: pre-swap checks and possible parameter reads. afterSwap: post-swap bookkeeping, reading a uint16 mapping keyed by uint256 which may track swap state.
Security & trust assessment
Risk level: high (decoded bytecode, low confidence).
Who controls it: The upgrade key controls the implementation and can change any behaviour, including swap and liquidity gating and potentially fund-handling logic. Allowlist and flag setters are owner-controlled and could block specific addresses from swapping or adding liquidity.
Risk to user funds: The hook can take and settle pool currency and mint/burn ERC-6909 claims via unlock callbacks, and its upgrade key can change this logic, so it could in principle hold or redirect user or pool funds. Impact depends on the unverified implementation.
Security findings
- [high] Upgradeable proxy: EIP-1967-style implementation slot and upgradeToAndCall indicate the logic can be replaced at any time by whoever holds upgrade rights.
- [medium] Hook moves currency and uses self-unlock: Hook selectors include take, settle, sync, mint, burn, swap and modifyLiquidity, so the hook can move pool currency and claim ERC-6909 balances via unlock callbacks.
- [medium] Possible allowlist gating of swaps and liquidity: beforeSwap and beforeAddLiquidity read address/bool allowlist-style mappings, which could selectively block users.
- [info] Unverified source: No verified source; behaviour inferred from selectors and storage slots only, so the intended logic and admin checks are unconfirmed.
Contract details
- Verified source
- No
- Bytecode size
- 122 bytes
- Upgradeable proxy
- Yes
- Detected patterns
- erc6909-claims, moves-currency, self-unlock, upgradeable
Pools using Hook 0xa796…a8c0
- USDC / USDbC (0.00% fee) — 24h volume $2.00, TVL $19, 3 swaps today