Inkline on Robinhood Chain
Uniswap v4 Hook Contract 0x01dfef5767df9756a53c55c2d0315b067a75e0cc on Robinhood Chain · Fee sharing · Verified contract
- Volume (24h)
- $510
- Value locked (TVL)
- <$0.01
- All-time volume
- $510
- Pools using this hook
- 1
- Swaps (24h)
- 14 (6 traders)
- Total swaps
- 14
What it does
Every swap through this coin's home pool pays a fixed toll of 0.75% to 5% in ETH, which is split between the creator, community, shared and platform trays, and liquidity cannot be added or removed through the hook.
This read was written for the hook 0x4193…e0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Charges a toll of 0.75% to 5% (set at deployment, between TOLL_MIN_BPS and TOLL_MAX_BPS) on every swap through the single home pool, taken in ETH via beforeSwapReturnDelta and afterSwapReturnDelta
- Holds the toll as an ERC-6909 claim inside the PoolManager and records it in four trays: 80% drafter side (split between drafter and studio by creditsBps), 10% commons, and the remainder to the desk
- Lets each tray bearer (drafter, studio, commons, desk) withdraw its ETH via draw(), which burns the claim and sends ETH to that bearer
- Accepts only the one canonical pool (ETH/coin, fee 0, tick spacing 1) with this contract as hook; all other pools revert
- Mints a fixed supply of one billion tokens to the Plotter at construction and renounces ownership in the constructor
- Reverts on liquidity add/remove and donate callbacks; no liquidity hooks are wired
- Swap behaviour
- Every swap through the home pool pays the toll in ETH: on buys with exact ETH in, the toll is cut from the ETH sent before the pool swap; on sells for exact ETH out, the pool is asked for the grossed-up ETH and the difference is the toll; coin-named legs are tolled in afterSwap on the ETH actually moved. Swaps revert if the amounts are off-scale or a coin-named leg does not fill as expected.
- Liquidity behaviour
- Liquidity add and remove callbacks (before and after) and donate callbacks all revert with NotWired, so this hook blocks liquidity operations on the home pool; liquidity can only be handled by the pool itself without hook callbacks, which the hook's permissions do not allow.
- Fee behaviour
- The pool fee is fixed at 0. The toll is a separate, hook-level charge of tollBps (75 to 500 basis points, immutable) on swap ETH, not a changeable pool fee. Of each toll, 80% goes to the drafter side (with creditsBps of that share going to the studio tray), 10% to commons, and about 10% plus rounding to the desk.
- Owner & admin controls
- None after deployment. Ownership is renounced in the constructor so owner() returns zero; there is no pause, blacklist, fee setter, upgrade path or tax change. Tray bearer addresses, toll rate and creditsBps are immutable. Only each tray's bearer can call draw() for that tray.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: restricts initialization of the home pool to the Plotter with the exact canonical key. beforeSwap: computes and reserves the toll on exact-in buys and exact-out sells, returning it as a delta. afterSwap: computes the toll on coin-named legs from the actual ETH moved and returns it as a delta. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take the toll amounts from swap deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No privileged key can change fees, pause swaps, blacklist addresses or upgrade the contract; ownership is renounced at construction. The risk is limited to whichever address each tray bearer controls, which can only withdraw its own tray.
Risk to user funds: The hook holds ETH-denominated claims inside the PoolManager backing the trays and can take a toll from swap amounts, but it cannot move tokens held by traders or LPs beyond that toll, and only tray bearers can withdraw the toll ETH.
Security findings
- [info] Hook takes ETH on every home-pool swap: beforeSwap and afterSwap return deltas take a toll of tollBps on swap ETH, so traders on the home pool always pay the toll and the hook can extract value from every swap.
- [low] Swaps can revert on unusual amounts: Swaps revert with AmountOffScale or ShortShot when amounts exceed int128 limits or when a coin-named leg does not fill in full, which can block some trades.
- [low] Liquidity operations are blocked on the home pool: Add, remove and donate callbacks all revert with NotWired, so the pool cannot be used for liquidity provision through hook-aware routing.
- [info] Tray bearers are fixed addresses with no recovery: Each tray is withdrawable only by its immutable bearer address; if a bearer key is lost, its share of the toll cannot be recovered by anyone.
Contract details
- Verified source
- Yes (Inkline)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 8,093 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, return-delta, self-unlock, tax
Pools using Inkline
- ETH / LTRACE (0.00% fee) — 24h volume $510, TVL <$0.01, 14 swaps today