RECAST on Ethereum
Uniswap v4 Hook Contract 0x190f0ca4a9e3698a1948054ba9a3d5ef7bbe60cc on Ethereum · Rewards · Verified contract
- Volume (24h)
- $120
- Value locked (TVL)
- $303
- All-time volume
- $121.04K
- Pools using this hook
- 1
- Swaps (24h)
- 2 (2 traders)
- Total swaps
- 926
What it does
The RCST token hook charges a fixed 2% ETH fee on both buys and sells in its ETH/RCST pool and shares it with RCST holders, while LPs can add and withdraw freely and no admin can change the fees.
How it works step by step
- The RCST token contract is also the hook for a single ETH/RCST Uniswap v4 pool, which only the launcher can create.
- Charges a fixed 2% fee in ETH on every buy and every sell; the rate is a hard-coded constant.
- Shares all fees among RCST holders in proportion to their balances, and holders withdraw their ETH with claim().
- If a holder leaves rewards unclaimed past a fixed delay, anyone can move those rewards to a reserve address.
- Fees earned while RCST is temporarily pulled out of the PoolManager in the same transaction (possible flash borrowing) are held back and paid out with the next fee.
- Swap behaviour
- Every swap in the ETH/RCST pool pays a 2% ETH fee, taken either from the ETH going in or from the ETH coming out. Swaps where ETH is the specified amount revert if they only partly fill.
- Liquidity behaviour
- No liquidity callbacks; LPs can add and withdraw freely. Tokens held in the PoolManager, which is where LP liquidity sits, earn no holder rewards.
- Fee behaviour
- A fixed 2% fee on buys and 2% on sells, always in ETH, collected by the hook and shared among eligible RCST holders pro rata. Rewards left unclaimed past the recast delay can be moved to the reserve address.
- Owner & admin controls
- The owner has no power over fees, supply, or rewards; ownership only allows transferring or renouncing it. The launcher, set once at deployment, is the only address that can initialize the pool.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: lets only the launcher bind the one canonical ETH/RCST pool; beforeSwap: reserves the 2% fee when ETH is the specified amount; afterSwap: takes the fee in ETH and records it as holder rewards; beforeSwapReturnDelta/afterSwapReturnDelta: adjust swap amounts to collect the fee.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The owner has no fee or fund powers, and the launcher's only privilege is creating the pool once. The reserve address receives recast rewards but cannot take anyone's tokens.
Risk to user funds: The hook takes exactly 2% of the ETH side of each swap and holds it for RCST holders to claim. LP principal cannot be touched, and withdrawals are unrestricted.
Security findings
- [info] Fixed 2% fee: The buy and sell fees are constants set at 2% with no setter, so they can never change.
- [low] Unclaimed rewards can be redirected: After the set recast delay, anyone can move a holder's unclaimed ETH rewards to the reserve address. Claiming regularly avoids this.
- [info] Partial fills revert: Swaps where ETH is the specified amount revert if they stop early at the trader's price limit.
Contract details
- Verified source
- Yes (RECAST)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 7,910 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, launchpad, moves-currency, ownable, return-delta, rewards
Pools using RECAST
- ETH / RCST (Dynamic fee) — 24h volume $120, TVL $303, 2 swaps today