SkylineHook on Ethereum
Uniswap v4 Hook Contract 0x9f6a5d8712b62ca8f1f1ce3bcd5f8e020462e8cc on Ethereum · Fee sharing · Verified contract
- Volume (24h)
- $249
- Value locked (TVL)
- $319
- All-time volume
- $249
- Pools using this hook
- 1
- Swaps (24h)
- 2 (1 traders)
- Total swaps
- 2
What it does
SkylineHook charges traders a 2% fee on buys in ETH to the Treasury and on sells in SKYLINE, ETH or split mode (split taking 1% SKYLINE to BuyerRewards and 1% ETH to the Treasury), so sellers pay the most when total supply is above the floor and the mode is SKYLINE or ETH.
How it works step by step
- Charges a 2% fee on buys, taken as ETH and sent to the Treasury from the first second (no anti-snipe fee).
- Charges sell fees in one of three modes: SKYLINE mode (2% of SKYLINE sold, burned until the 200,000,000 supply floor; from cycle 400 half burned and half sent to BuyerRewards), ETH mode (2% of ETH proceeds sent to the Treasury), or split mode at or below the floor (1% of SKYLINE to BuyerRewards and 1% of ETH to the Treasury).
- Decides each cycle's sell-fee mode once at the cycle's first sell by reading BuyerRewards (emissionEstimate and reserveExhausted), falling back to SKYLINE mode if the reads fail.
- Tallies buys per wallet and per cycle (buyer taken from hookData, the router's msgSender, or tx.origin) and tallies gross SKYLINE sold and burned per cycle, without recording per-wallet sells.
- Allows only the Launcher to initialise the pool, once, with the fixed launch key (native ETH / SKYLINE, fee 5000, tick spacing 60).
- Accepts exactly two liquidity additions, both in the launch transaction, with fixed tick ranges; all later liquidity additions revert.
- Swap behaviour
- Buys (ETH in, SKYLINE out) pay a 2% fee in ETH to the Treasury on both exact-input and exact-output swaps. Sells pay a fee whose size and destination depend on the mode: 2% of SKYLINE sold, burned or sent to BuyerRewards, in SKYLINE mode; 2% of ETH proceeds to the Treasury, in ETH mode; 1% SKYLINE to BuyerRewards plus 1% ETH to the Treasury, in split mode (which applies whenever total supply is at or below 200,000,000 SKYLINE). Exact-input swaps and exact-output ETH-mode or split-mode sells revert with PartialFill unless the full specified amount is filled. Buys pay the same 2% regardless of timing.
- Liquidity behaviour
- Only two liquidity additions are accepted, both during the launch transaction (block.timestamp equal to launchTime): the first with ticks -887,220 to 184,200, the second with ticks -887,220 to 887,220. Any other addition reverts with LiquidityLocked. Sender, salt and amount are not checked. Liquidity removal is not hooked.
- Fee behaviour
- Buy fee is a fixed 2% (200 bps) in ETH to the Treasury. Sell fee is 2% in every mode, divided as: SKYLINE mode burns the whole fee before cycle 400 and burns half (rounded down) from cycle 400 with the rest sent to BuyerRewards, capped so supply never drops below the floor; ETH mode sends 2% of ETH to the Treasury; split mode sends 1% SKYLINE to BuyerRewards and 1% ETH to the Treasury. The pool's static LP fee is 0.5%.
- Owner & admin controls
- No owner, pause function or upgrade path is present. The contract is immutable, with the PoolManager, SKYLINE token, Treasury, Launcher and BuyerRewards addresses fixed at construction. Pool initialisation is one-time and Launcher-gated; liquidity additions are limited to the launch transaction.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool initialisation to the Launcher with the launch key only; beforeAddLiquidity enforces the two-addition launch lock; beforeSwap takes the buy fee and the specified-side sell fees and sets the sell mode; afterSwap takes the unspecified-side fees, enforces partial-fill checks and records buy and sell tallies; beforeSwapReturnDelta and afterSwapReturnDelta let the hook return the fee amounts as hook deltas so they net to zero within the swap.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No single key can change fees, pause swaps or upgrade the contract. The Launcher can only perform the one-time pool initialisation with the fixed launch key. Trust is placed in the fixed Treasury and BuyerRewards addresses and in the SKYLINE token's burn and transfer behaviour.
Risk to user funds: The hook holds no funds: it takes fees from the PoolManager and forwards them immediately to the Treasury or BuyerRewards or burns them. It can take up to 2% of each buy and sell, but cannot block or redirect the trader's principal, and reentrancy is guarded on the swap callbacks.
Security findings
- [info] Hook takes user funds via return deltas: beforeSwap and afterSwap take ETH and SKYLINE from the PoolManager and return matching hook deltas, so every swap carries a 2% (or 1%) fee to the Treasury or BuyerRewards by design.
- [low] Sell mode depends on external BuyerRewards reads: The first sell of each cycle reads emissionEstimate and reserveExhausted from BuyerRewards via gas-capped staticcalls; if those reads fail or return unexpected values the cycle defaults to SKYLINE mode, which can change the fee that trader pays.
- [info] Burn reduces supply in SKYLINE mode: SKYLINE-mode sells call UpTownToken.burn on the hook's own balance until total supply reaches the 200,000,000 floor, after which the mode switches to split mode.
- [info] Partial fills revert exact-input and some exact-output swaps: Exact-input swaps and exact-output ETH-mode or split-mode sells revert with PartialFill if the pool does not fill the full specified amount, which can affect routers that expect partial fills.
- [info] Immutable configuration without admin keys: There is no owner or upgrade path; the only privileged actor is the Launcher, which can initialise the pool once.
Contract details
- Verified source
- Yes (SkylineHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 10,015 bytes
- Upgradeable proxy
- No
- Detected patterns
- fee-sharing, launchpad, return-delta, rewards
Pools using SkylineHook
- ETH / SKYLINE (0.50% fee) — 24h volume $249, TVL $319, 2 swaps today