Lamina on Robinhood Chain

Uniswap v4 Hook Contract 0x19d30c5e87152c4872a7e25d84a2c1ff1b3ce0cc on Robinhood Chain · Fee sharing · Verified contract

Volume (24h)
$0.10
Value locked (TVL)
$0.10
All-time volume
$0.10
Pools using this hook
1
Swaps (24h)
1 (1 traders)
Total swaps
1

What it does

Every swap in this coin's home ETH pool pays an extra fixed levy of 0.75% to 5% on the ETH side on top of the 0.15% pool fee, with the levy redistributed to four keeper-controlled caches and no admin able to change it.

How it works step by step

  • Charges a levy of 75 to 500 basis points, set at deployment, on every swap through the home pool, paid in ETH (currency0) via beforeSwap or afterSwap return deltas
  • Holds the levy inside the PoolManager as an ERC-6909 ETH claim minted to the hook itself, so the levy never leaves PoolManager accounting until emptied
  • Splits each levy across four internal caches: 80% folder side (split between folder and guild by creditsBps), 10% commons, and the remainder to the gusset keeper
  • Lets only the keeper of each cache call empty(), which burns the matching claim and sends the ETH to that keeper via poolManager.take
  • Restricts hook use to a single home pool keyed to the canonical ETH/token pair with fixed fee 1500 and tick spacing 1; other pools revert
  • Leaves afterInitialize, liquidity callbacks and donate callbacks reverting with NotWired, so only swaps are supported
Swap behaviour
Every swap in the home pool is tolled. Buys with exact ETH input have the levy cut from the ETH sent before the pool swap. Sells with exact ETH output have the ETH requested grossed up, so the levy is added on top. Buys with exact coin output and sells with exact coin input are tolled in afterSwap on the ETH actually paid or produced. Partial fills on the exact-in buy and exact-out sell legs revert with PartialFill.
Liquidity behaviour
Adding, removing and donating liquidity all revert with NotWired, so liquidity can only be provided by routing through standard pool flows that do not invoke these hook callbacks; the hook itself does not manage liquidity.
Fee behaviour
The pool's LP fee is a static 0.15% (HOME_FEE 1500). On top of that, the hook levies between 0.75% and 5% of the ETH side per swap, fixed at deployment in levyBps and not changeable afterward. The levy is retained as ETH claims and distributed to the four caches, which keepers withdraw.
Owner & admin controls
Ownership is renounced in the constructor, so owner() returns zero and no privileged owner can change parameters, pause swaps or upgrade. The only privileged roles are the four cache keepers (folder, guild, commons, gusset), which can each withdraw ETH from their own cache only. No pause, blacklist or upgrade mechanism appears in the verified source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize validates the home pool key and records it once. beforeSwap computes and returns the levy as a specified-currency delta for buys with exact ETH in and sells with exact ETH out. afterSwap computes and returns the levy as an unspecified-currency delta for the remaining legs once the ETH figure is known. beforeSwapReturnDelta and afterSwapReturnDelta are required for those deltas.

Security & trust assessment

Risk level: low (verified source, high confidence).

Who controls it: No owner or admin exists after construction. The four cache keepers can each withdraw only the ETH accumulated in their own cache. The gusset address is also the initial token holder of the remaining supply and the foldKeeper, so the gusset controls the largest share of levy ETH.

Risk to user funds: User swap funds pass through the PoolManager and the hook's levy delta, which takes a fixed percentage of ETH from each swap. The hook never holds user tokens directly; levy ETH is held as ERC-6909 claims by the hook and redeemable only by the four cache keepers.

Security findings

  • [info] Hook takes a levy through return deltas: beforeSwap and afterSwap return deltas take between 0.75% and 5% of ETH per swap. This is an intentional, immutable fee baked into the contract, and users should understand the total cost is the pool fee plus this levy.
  • [info] Immutable configuration and renounced ownership: Constructor calls renounceOwnership and all economic parameters are immutable, so no admin can change the levy or redirect funds after deployment.
  • [low] Keeper withdrawal of levy ETH: Each cache keeper can call empty() to withdraw its share of accumulated ETH claims at any time. Keepers are fixed addresses from deployment, so the risk is limited to those specific accounts and their own cache balances.
  • [low] Swap reverts on partial fills: afterSwap reverts with PartialFill if an exact-in buy or exact-out sell does not fill as expected, which may cause some swaps to fail under specific liquidity conditions.

Contract details

Verified source
Yes (Lamina)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
8,244 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, ownable, return-delta, self-unlock

Pools using Lamina