VAELORNHook on Ethereum
Uniswap v4 Hook Contract 0x6aa50b22f4c61846b0124d7238bc40ee8b57e0cc on Ethereum · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
Traders pay a buy fee in ETH that starts high and falls toward the owner-set buy rate over the anti-sniper period, and a sell fee on token-to-ETH sales, with the ETH sent to the project wallet; liquidity providers receive no share of these fees.
How it works step by step
- Charges a buy fee and a sell fee in ETH on swaps involving the VAELORN token and sends the collected ETH immediately to a fixed project fee recipient via PoolManager take
- Runs an anti-sniper schedule where the buy fee starts at antiSniperBps at launch and decreases linearly to buyBps over antiSniperSeconds
- Opens the pool once at a fixed combined sqrt price, enforced in beforeInitialize, and records the launch timestamp
- Holds the token supply and approves Permit2 and the PositionManager so the owner can open the pool with liquidity via openPool
- Keeps the LP NFT in the contract (positionId) or sends it to the dead address; the owner can later collect liquidity or burn it
- Enforces an immutable fee cap maxBps set at deployment so the owner can only lower fees
- Swap behaviour
- Buys paying exact ETH input (zeroForOne with negative amountSpecified) are charged currentBuyBps of the input ETH in beforeSwap via return delta; buys with exact token output are charged currentBuyBps of the ETH input in afterSwap; sells with exact token input (amountSpecified below zero, ETH output) are charged sellBps of the ETH output in afterSwap. Trades on the other paths pay no fee in this hook.
- Liquidity behaviour
- No liquidity callbacks. Liquidity is added only by the owner through openPool, and removed by the owner through collectLiquidity or burnLiquidity; the hook does not act on ordinary LP add or remove events.
- Fee behaviour
- Buy and sell fees are set in basis points by the owner via setFees, each capped by the immutable maxBps. The buy fee is time-decaying during the anti-sniper window. Fees are taken in ETH and transferred straight to feeRecipient, not shared with LPs.
- Owner & admin controls
- Owner can change buyBps and sellBps up to maxBps, change feeRecipient to a non-contract address, transfer or renounce ownership, open the pool once, collect or burn the stored LP position, and withdraw any token balance held by the contract to any address. maxBps, antiSniperBps, antiSniperSeconds, token and the opener are immutable. The contract is not upgradeable.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize enforces the single allowed pool, key, opener and price and records launch time. beforeSwap takes the buy fee as a return delta on exact-input ETH buys. afterSwap takes the buy fee on exact-output buys and the sell fee on token-input sells as a return delta. beforeSwapReturnDelta and afterSwapReturnDelta are enabled because the hook takes a share of the swap amount.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: A single owner can change fees up to the 25 percent cap, redirect all fees to any EOA, withdraw all held supply, collect or burn the pool LP, and renounce ownership; a compromised key could drain the held token and LP position.
Risk to user funds: The hook can take ETH as swap fees via return deltas and send them to feeRecipient, and it holds the token supply and possibly the LP NFT; the owner can move that token and the LP, but normal swappers cannot have funds blocked by the hook.
Security findings
- [medium] Owner can withdraw the held token supply: withdrawTokens lets the owner transfer any VAELORN balance held by the hook to any non-zero address, and collectLiquidity lets the owner pull liquidity from the pool, so supply not yet placed or locked can be removed by a single owner key.
- [medium] Owner can redirect fees and change fee rates: setFeeRecipient and setFees are owner-only; fees can be raised up to maxBps (at most 25 percent) immediately, and the recipient can be switched to any externally owned address with no timelock.
- [medium] Single owner key with no timelock: Ownership is a single EOA controlling all privileged functions with no multisig or delay, so key compromise would expose pool liquidity and token reserves.
- [info] Fee recipient must not be a contract: setFeeRecipient and the constructor reject contract recipients, which avoids reverts from take on contract wallets but also limits use of multisig recipients.
- [info] Fee direction is fixed by pool orientation: The pool is required to have ETH as currency0 and the token as currency1, so buy and sell logic depends on zeroForOne semantics that are implemented for this pair only.
Contract details
- Verified source
- Yes (VAELORNHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 7,650 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, fee-sharing, launchpad, mev-protection, moves-currency, ownable, return-delta
Pools using VAELORNHook
- ETH / VAELORN (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today