Dynamic fee hook on Arc
Uniswap v4 Hook Contract 0x79f91ed8c4ac36b780e7d48fef5539883a7b20cc on Arc · Dynamic fee
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 2
What it does
A Uniswap v4 fee hook for graduated Tripl v5 pools that charges a fixed fee on every swap and routes it to the fee vault, creator, holder staking and buyback lanes.
This read was written for the hook 0x7499…a0cc on Arc 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
- Binds a market pool to fixed fee configuration at pool creation, callable only by the immutable factory.
- Charges a total fee of up to 10 percent per swap, split across NFT, creator, holder, buyback and split lanes.
- Takes buy fees from the input side and sell fees from the output side using beforeSwap and afterSwap return deltas.
- Mints PoolManager ERC6909 quote claims for fees and records them in the fee vault and staking reward ledgers.
- Optionally applies a 90 percent first-block buy tax on the launch block for tokens flagged for it.
- Rejects all liquidity add, remove and donate operations.
- Swap behaviour
- beforeSwap charges the fee on quote-in buys and sets an expected exact input; afterSwap verifies the fill and charges the fee on quote-out sells through the output delta. Swaps require empty hookData and exact-input shape.
- Liquidity behaviour
- All liquidity add, remove and donate callbacks revert with UnsupportedSwap. Liquidity is not managed by the hook.
- Fee behaviour
- Fees are a fixed set of bps per pool (NFT lane 30 bps plus creator, holder, buyback and split lanes, total capped at 1000 bps). On buys (quote-in) the fee is taken from the input via beforeSwap return delta; on sells (quote-out) the fee is taken from the output via afterSwap return delta. First-block buy tax (9000 bps of the input) can be charged on the launch block when enabled. Fee is minted as PoolManager ERC6909 quote claims to the fee vault and staking contract and recorded in their ledgers.
- Owner & admin controls
- No owner or admin setters on the hook itself. Pool binding is restricted to the immutable factory via bindPool, which can only be called once per pool id. The hook has no pause, upgrade or parameter-change functions. Fee lane weights are fixed per pool at bind time.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts initialization to the registered market for an enabled pool. beforeSwap takes the buy-side fee and any first-block protection fee by returning a positive specified delta and minting claims. afterSwap takes the sell-side fee by returning a positive unspecified delta and minting claims. beforeSwapReturnDelta and afterSwapReturnDelta are enabled so the hook can charge fees via deltas.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, high confidence).
Who controls it: No privileged owner key on the hook. Trust is placed in the immutable factory address that binds pools and in the PoolManager. Pool configuration, fee splits and recipients are fixed at bind time.
Risk to user funds: The hook takes swap fees from trader input or output via return deltas and mints ERC6909 claims to fee vault and staking contracts; it holds no user principal and cannot redirect funds beyond the fixed fee lanes. Users can be charged up to 10 percent per trade plus up to 90 percent on launch-block buys, and swaps can revert when exact-fill conditions are not met.
Security findings
- [info] Restricted swap shapes: beforeSwap and afterSwap require hookData to be empty and only accept exact-input swaps (amountSpecified < 0). Swaps with hookData or exact-output swaps revert with UnsupportedSwap.
- [low] Exact fill requirement may block some swaps: Buy-side swaps require the actual input delta to exactly match the expected amount computed in beforeSwap, otherwise PartialFill reverts. Any partial fill or fee-on-transfer behaviour blocks the swap.
- [medium] Launch-block buy tax up to 90 percent: First-block protection charges a 90 percent tax on buy input during the launch block when the launch token flag is set, using an external launchBlock call to the token. This is a deliberate high-fee window for early buyers.
- [info] No post-deployment fee or pause controls: Fee lanes are fixed at bind time and total at most 10 percent, but the constructor-validated hook permissions and factory binding are immutable, so there is no way for an admin to alter fees or pause swaps after deployment.
Contract details
- Verified source
- No
- Bytecode size
- 8,163 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc6909-claims, return-delta
Pools using Dynamic fee hook
- wi / GME (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today