MythaseHook on Ethereum
Uniswap v4 Hook Contract 0x9079c54042bae9fb2bff1a281a0aa62d28f520cc on Ethereum · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $6.49K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 54
What it does
Charges a configurable buy and sell fee on swaps of the MYTHASE token against ETH in a single pool and forwards the collected ETH to a fee receiver, with owner-controlled trading pause and blacklist.
How it works step by step
- Restricts the pool to native ETH paired with the MYTHASE token at a fixed LP fee and tick spacing.
- Charges separate buy and sell fees in basis points (default 500 bps each, cap 9900 bps) on the ETH leg of each swap.
- Takes collected fees from the pool manager and forwards them to the immutable fee receiver as ETH.
- Parks fees as minted claims in parkedFees when the pool manager lacks ETH, to be settled later via settleParkedFees.
- Gates swaps behind a trading-enabled switch and a blacklist maintained by authorized operators.
- Swap behaviour
- Only pools pairing native ETH with the configured token at a fixed fee and tick spacing are allowed. When trading is enabled, each swap has a fee in basis points taken on the ETH leg through return deltas (buys on gross input, sells on net output), collected by the hook and forwarded to feeReceiver. Swaps revert when trading is disabled, when the sender is blacklisted, or when the fill does not match the expected amount.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Owner or authorized operators set buy and sell fee rates in basis points (cap 9900 bps, default 500 bps each). Fees are taken from the ETH leg of each swap: buys are charged on the gross input and sells on the net output. Collected fees are taken from the pool manager and forwarded to feeReceiver with ETH; if the pool manager lacks ETH balance the fee is minted as a claim and parked in parkedFees until settleParkedFees is called.
- Owner & admin controls
- Owner (Ownable2Step, two-step transfer, renounceOwnership available) and feeReceiver act as principals; principals can grant/revoke authorized operators, and authorized callers can updateFees (buy/sell up to 99%), disableFees, setTradingEnabled (pauses/opens all swaps), blacklist/unblacklist any non-protected address (blocks its swaps), and emergencyWithdraw ETH, ERC20 and ERC721 from the hook. Protected addresses cannot be blacklisted. No upgrade proxy is present.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pools to native ETH paired with the configured token at a fixed LP fee and tick spacing. beforeSwap reverts when trading is disabled and, for the specified leg, returns a return delta equal to the fee amount. afterSwap reverts if the swap did not fill as expected and returns an unspecified-leg return delta equal to the fee on the other side, which the hook collects. beforeSwapReturnDelta and afterSwapReturnDelta allow these deltas to take currency from the swap.
Security & trust assessment
Risk level: high (verified source, high confidence).
Who controls it: Owner or any authorized operator can switch trading on or off, set fees up to 99% in either direction, blacklist arbitrary holders so their swaps revert, and withdraw any ETH, ERC20 or ERC721 held by the hook. The fee receiver is immutable and is itself a principal.
Risk to user funds: The hook uses return deltas to take ETH fee amounts from every swap and can hold ETH via parked fees or direct transfers. Principals can withdraw any ETH, ERC20 or ERC721 held by the hook. Operators can change fees and block trades, so user swaps are exposed to changes in fee rates and to blacklisting or pausing.
Security findings
- [high] Privileged fee and trading control: grantAccess lets principals authorize arbitrary operators, and authorized operators can set fees up to 99% per side and toggle trading, so a compromised operator key can drain value from every trade.
- [high] Swaps can be blocked for specific addresses or globally: blacklist blocks swaps by any non-protected address and setTradingEnabled can halt all swaps, so users cannot trade when the owner chooses.
- [medium] Emergency withdrawals can move hook-held assets: emergencyWithdrawEth, emergencyWithdrawERC20 and emergencyWithdrawERC721 let principals move assets the hook holds, including any fees parked in the hook.
- [medium] Extreme fee cap and strict fill check: Fees can be set to 99%, and the afterSwap IncompleteFill check reverts swaps that do not settle exactly, which may cause failed trades under unusual pool conditions.
- [info] Ownership and upgrade model: Ownership uses Ownable2Step with a two-step transfer, and the hook does not appear to be upgradeable.
Contract details
- Verified source
- Yes (MythaseHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 7,920 bytes
- Upgradeable proxy
- No
- Detected patterns
- access-control, dynamic-fee, moves-currency, ownable, return-delta, self-unlock
Pools using MythaseHook
- ETH / MYTH (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today