SinjohHook on Robinhood Chain
Uniswap v4 Hook Contract 0xf582a29755e2d0a5b42c1da239d47f6b1c41aaec on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $6.35K
- Value locked (TVL)
- $5.78
- All-time volume
- $6.35K
- Pools using this hook
- 5
- Swaps (24h)
- 51 (4 traders)
- Total swaps
- 51
What it does
Sinjoh's launch hook charges a backing-denominated tax on every buy and sell, with buys and sells on separate creator and launch rates and sells also paying a surcharge when they push the price below the average band, while LPs cannot add or remove liquidity and the pool itself earns no LP fee.
How it works step by step
- Serves as the managed Uniswap v4 launch hook for Sinjoh-launched tokens, owning every pool position and tracking each market's buckets and supply ledger.
- Places a launch curve on pool initialization via factory-only registration and places a temporary treasury-funded deep depth and a temporary floor band during sells that reach the floor.
- Charges backing-denominated creator, platform, automation and reserve taxes on the actual fill of buys and sells, including a launch surcharge that decays over time and an optional sell surcharge.
- Recenters live liquidity to the anchor price after a 490-tick move, folds ranges to keep at most eight, and raises the floor via permissionless maintenance jobs.
- Moves Floor and Treasury buckets to a per-market vault, burns floor-bought tokens pending destruction, and pays automation rewards to whoever calls maintain.
- Hosts creator controls (fee destination, lowering static rates, disabling the sell surcharge, proposing or renouncing creator) and governance-executed takeovers.
- Swap behaviour
- beforeSwap computes a pre-trade tax from creator rate, launch surcharge and sell surcharge: exact-input buys pay tax on the input before a simulated fill, exact-output sells pay the tax grossed up on the output, and sells may also receive deep depth or a floor band. afterSwap charges the unspecified-side tax, requires exact-output fills, credits the buckets, authorizes exits and settles ranges. Buys and sells are taxed at different rates set per market; the surcharge applies only to sells whose end tick is at or below the average minus 513.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity always revert with LiquidityNotAllowed; only the hook itself adds or removes liquidity, through factory registration, placeCurve, placeMigration and internal recentering, folding, floor raising and sell-time depth. Donations are disallowed.
- Fee behaviour
- Uses the pool's static zero LP fee; the charged amount is a hook-level backing-denominated tax split into platform, creator, automation and reserve (floor or treasury) buckets. Creator rate can be a static value or a market-cap-based schedule set at registration, and the launch surcharge decays with time since launch. Buys and sells use separate parameter sets.
- Owner & admin controls
- There is no owner. Governance (settings-derived) can execute creator takeovers after a wait; the factory alone can register pools and place curves; the creator of each market can change the fee destination, lower static rates, switch to static, disable the sell surcharge, propose or renounce creator. The vault has its own admin surface not visible in this hook. Upgradeability was not visible in the provided source.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: restricts initialization to factory-registered pools and checks the opening price. beforeAddLiquidity, beforeRemoveLiquidity, beforeDonate: block outside liquidity changes and donations. beforeSwap: charges the pre-trade tax, places temporary sell depth and floor band, and sets a swap lock. afterSwap: charges the unspecified-side tax, settles buckets and ranges, authorizes exits. beforeSwapReturnDelta and afterSwapReturnDelta: let the hook take the tax from swap deltas.
Security & trust assessment
Risk level: medium (verified source, medium confidence).
Who controls it: Governance and the market creator hold meaningful control: governance can replace a creator and redirect fee destinations, and the creator can redirect its bucket and reduce rates, though this cannot seize the trader's own assets or the pool's backing.
Risk to user funds: The hook holds pool positions, tax claims, the floor and treasury buckets, and inventory, and can move them through swaps, recentering, floor raises and vault transfers; trades can revert on coverage, cap or reset checks. Users' tokens are gated and exits authorized by the hook, so the hook can block exits under certain conditions.
Security findings
- [info] Hook takes tax via return deltas: beforeSwap and afterSwap return non-zero deltas, so the hook is paid a share of every swap by reserving tax amounts in the currency delta; the creator and governance rates bound that cut.
- [medium] Creator can change fee destination and rates: setFeeDestination, lowerStaticRates and switchToStatic let the market creator redirect the creator bucket to any non-zero address and adjust static rates within the existing caps.
- [medium] Governance takeover can reassign creator: executeTakeover lets governance replace the creator and, if the destination is a direct address, rewrite it to the new creator after a payout attempt.
- [info] Unbounded internal state-changing jobs: maintain, raiseFloor, stepYield and depositIdle are permissionless and move liquidity and vault funds; ordering and gas-starvation are guarded but outcomes depend on pool state at call time.
- [low] Source partially omitted: Several dependency files, including the vault and libraries, were not supplied, so the full fund-movement logic could not be verified; the assessment relies on the visible hook source.
Contract details
- Verified source
- Yes (SinjohHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 47,585 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, liquidity-management, moves-currency, return-delta, self-unlock
Pools using SinjohHook
- WETH / SJM1 (0.00% fee) — 24h volume $6.34K, TVL <$0.01, 43 swaps today
- WETH / SJM4 (0.00% fee) — 24h volume $3.87, TVL $2.43, 2 swaps today
- USDG / SJM2 (0.00% fee) — 24h volume $3.35, TVL $3.35, 2 swaps today
- SJM5 / SJM1 (0.00% fee) — 24h volume $0, TVL $0, 2 swaps today
- SJM3 / NVDA (0.00% fee) — 24h volume $0, TVL $0, 2 swaps today