Fee sharing hook on Polygon
Uniswap v4 Hook Contract 0x2d47f85cbd93f8a1bdc9518cd418c8f284cb5080 on Polygon · Fee sharing
- Volume (24h)
- $0.29
- Value locked (TVL)
- $13
- All-time volume
- $0.29
- Pools using this hook
- 5
- Swaps (24h)
- 1 (1 traders)
- Total swaps
- 1
What it does
This hook is an owner-managed fee-sharing hook tied to a prediction market, where the owner sets a capped swap fee and its recipient and can pause swaps, though the exact fee direction and split are not confirmed from the bytecode.
How it works step by step
- Hook implements afterInitialize and beforeSwap callbacks only, and is owned by a single Ownable account that can pause it
- On pool initialization it records the pool against a prediction market id, indicating the pool is tied to an outcome market
- beforeSwap reads per-pool market state and the fee configuration, and the hook exposes a feeBps value and a feeRecipient address for fee sharing
- Owner can set the fee in basis points (up to a MAX_FEE_BPS cap) and the fee recipient via setFee
- Owner can pause and unpause the hook via setPaused, and redeem and oracle-related functions (assertTruth, assertionResolvedCallback, markets, outcome token implementation) indicate a UMA-style prediction market settlement flow
- Swap behaviour
- beforeSwap is enabled and reads pool and market state from storage and the fee configuration; a dynamic fee override may be applied, but the exact direction and sizing of the fee cannot be confirmed from decoded bytecode alone.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Fee is set by the owner via setFee in basis points capped by MAX_FEE_BPS, with a configurable feeRecipient; the hook appears to share a fee stream with the recipient, but the precise fee split and whether it applies to all swaps or only some cannot be determined from decoded bytecode.
- Owner & admin controls
- Owner (Ownable) can pause and unpause the hook, change the fee in basis points and fee recipient, transfer or renounce ownership; the contract also has an outcome token implementation reference and oracle-related addresses.
Enabled Uniswap v4 callbacks
afterInitialize, beforeSwap
afterInitialize registers the pool against a market, and beforeSwap applies market-aware logic and the owner-configured fee on swaps.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: A single owner key can change the fee up to the cap, redirect the fee recipient, and pause swaps, so a compromised or malicious key can directly affect traders and LPs.
Risk to user funds: The hook does not appear to hold user liquidity via return deltas, but it can block swaps through pause and redirect fee income; redeem functions move market collateral, which is a separate exposure.
Security findings
- [medium] Owner can change fee and recipient: setFee(uint16,address) lets the owner redirect fee revenue and set the fee up to the MAX_FEE_BPS cap, which can be used to extract value from traders.
- [medium] Pausable hook can block swaps: setPaused(bool) toggles a pause flag that is read in beforeSwap, so the owner can halt swaps on pools using this hook.
- [low] Single owner key: Ownable pattern with transferOwnership and renounceOwnership means one key controls fees, pause state and recipient.
- [info] Oracle-dependent settlement: Market resolution depends on an external oracle callback (assertionResolvedCallback), so outcomes rely on the oracle's correctness and liveness.
Contract details
- Verified source
- No
- Bytecode size
- 13,143 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, fee-sharing, ownable, pausable
Pools using Fee sharing hook
- USDC / MKT-88cf29d3-YES (1.00% fee) — 24h volume $0.29, TVL $13, 1 swaps today
- MKT-b9bceedd-YES / USDC (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / MKT-1be95ce1-YES (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / MKT-9c8e0ade-YES (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / MKT-8981fb82-YES (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today