Sorbet on Robinhood Chain
Uniswap v4 Hook Contract 0xe1b760422c87e6a5ebe5abd8e1b61e2bd5a0e0cc on Robinhood Chain · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
Sorbet charges every swap through its home pool a fixed fee of 0.75% to 5% of the ETH leg, the same rate for buys and sells, and sends it to four fixed bearer bins.
How it works step by step
- Takes a frost (fee) in ETH on every swap through the home pool, between 0.75% and 5% of the ETH leg, set once at deployment and immutable
- Keeps the frost inside the PoolManager as an ERC-6909 claim minted to the hook, and tracks it in four bins: packer, parlor, coop and house
- Splits each frost roughly 80% to the packer side (divided between packer and parlor by creditsBps), 10% to coop, and the remainder to house
- Lets only the bin's bearer call ladle to burn the ETH claim and withdraw that bin's ETH to the bearer
- Initialises only one home pool, from the Icebox, with a fixed key (ETH against this token, fee 0, tick spacing 1, this hook)
- Leaves all liquidity hook callbacks reverting with NotWired, so only swaps and pool initialisation are supported
- Swap behaviour
- Every swap through the home pool pays the frost: on buys with exact ETH in, the frost is cut from the ETH sent before the pool swap; on sells for exact ETH out, the ETH needed is grossed up and the frost is the difference; on the other two legs the frost is computed in afterSwap from the ETH actually moved. Buyers and sellers both pay the same rate on the ETH leg, so the frost does not favour either direction, and swaps revert if the frost would consume the whole input or the figures do not match.
- Liquidity behaviour
- No liquidity callbacks. All add and remove liquidity hooks revert with NotWired, so liquidity cannot be added or removed through this hook.
- Fee behaviour
- Fixed frost of frostBps (75 to 500 basis points, set at creation and immutable) taken as a hook return delta in ETH on every swap; the pool's own fee is 0. The frost is split into the four bins as described above and withdrawable only by each bearer.
- Owner & admin controls
- Ownership is renounced in the constructor, so owner() is zero and there is no privileged key, pause, blacklist, or upgrade path in the source. The bin bearers (packer, parlor, coop, house) are immutable addresses fixed at creation and each can withdraw only their own bin.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts the home pool to a single initialisation from the Icebox with the canonical key; beforeSwap and afterSwap compute and deal the ETH frost; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take the frost from the swap amounts.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No single key can change the fee, pause swaps, or redirect funds: ownership is renounced and all bearer addresses and rates are immutable. Each bin bearer alone controls withdrawal of its own bin.
Risk to user funds: The hook holds ETH frost as PoolManager claims and in the four bin accounts; only the matching bearer can withdraw a bin via ladle, and the hook does not hold user principal beyond the pool's own liquidity.
Security findings
- [info] Hook takes a fee via return deltas: beforeSwap and afterSwap return deltas that move ETH from every home-pool swap into the hook's bins, at a rate fixed between 0.75% and 5%. Traders always pay this frost.
- [low] Frost claims held inside PoolManager: Collected frost is minted as an ETH claim to the hook inside the PoolManager and only converted back to ETH through ladle by the bin bearer, so bin funds depend on PoolManager accounting and on the bearer calling ladle.
- [low] Swaps revert on bad figures: afterSwap reverts with ShortShot if the realised ETH movement does not match the expected figures, so unusual pool states or rounding can block swaps on the home pool.
- [info] Immutable configuration: Bearers, frost rate, and credits split are immutable and ownership is renounced in the constructor, so no party can change the fee after deployment.
Contract details
- Verified source
- Yes (Sorbet)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 8,038 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, ownable, return-delta, self-unlock
Pools using Sorbet
- ETH / test (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today