ReinHook on Robinhood Chain
Uniswap v4 Hook Contract 0x09e5624d01dba8f3a92f4c85d331ee387af0e0cc on Robinhood Chain · Utility · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $18.24K
- All-time volume
- $98.52K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 667
What it does
Charges a fixed 5 percent fee on the REIN side of every swap in a Uniswap V4 pool that includes REIN, and forwards the fee to the RoundManager while leaving liquidity providers unaffected.
How it works step by step
- Rejects pool initialisation unless REIN is one of the pool's two currencies.
- Charges a fixed 5 percent fee on the REIN leg of each swap, in either direction and for exact-input and exact-output swaps.
- Collects the fee from the pool with poolManager.take and transfers it in REIN to the immutable RoundManager.
- Calls onFee on the RoundManager and emits FeeTaken for each fee charged.
- Adjusts swap settlement through before-swap and after-swap return deltas so the trader pays the fee.
- Swap behaviour
- On each swap the hook determines whether REIN is the specified or unspecified side. If specified, it charges the fee in beforeSwap; if unspecified, it charges in afterSwap. The fee is collected via poolManager.take, sent to the RoundManager in REIN, and reported through onFee, with the return delta adjusting the trader's settlement.
- Liquidity behaviour
- No liquidity callbacks. Liquidity add and remove operations do not reach this hook, so LPs are exempt from the fee by construction.
- Fee behaviour
- Charges a fixed 5 percent (500 bps) fee on the REIN leg of every swap through a pool that includes REIN. On exact-input REIN sales the fee is 5 percent of the input; on exact-output REIN buys it is 5 percent of the gross output; the other two combinations use the same 5 percent-of-gross convention. The fee is taken from the pool via poolManager.take, transferred in REIN to the RoundManager, and reported to it via onFee. Liquidity providers pay no fee.
- Owner & admin controls
- No admin controls found. The rate FEE_BPS is a constant, and the rein and roundManager addresses are immutable, so no owner, pauser or upgrade path exists after deployment.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: rejects pool creation unless REIN is one of the two currencies. beforeSwap: charges the fee up front when REIN is the specified side and returns a before-swap delta to adjust the swap amount. afterSwap: charges the fee after the swap when REIN is the unspecified side and returns an after-swap delta to adjust the trader's settlement. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to alter the swap's settled amounts, which is how the fee is collected from the trader.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged key exists in the contract. Nobody can change the fee rate, redirect fees, pause swaps or alter the token or RoundManager addresses after deployment. Trust is placed in the immutable RoundManager, which receives fees and is the only recipient.
Risk to user funds: The hook holds no persistent balance; it takes a 5 percent REIN fee from each swap and forwards it immediately to the immutable RoundManager. It cannot block swaps by administrative action and cannot move funds beyond the fixed fee, so user funds are exposed only to the fee itself and to failure of the REIN transfer or RoundManager callback.
Security findings
- [info] Hook moves currency and alters swap deltas: The hook pulls fees from the pool with take and transfers REIN to the RoundManager. Its return deltas adjust trader settlement, so it directly affects how much a trader pays and receives on every REIN swap.
- [low] Swaps depend on REIN transfer and RoundManager callback succeeding: The fee is transferred and then onFee is called on the RoundManager. If the RoundManager or the REIN token misbehaved, swaps through the hook would revert, since the transfer result is required.
- [info] Fee size bounded by int128 conversion: Fee is capped via int128 conversion and reverts with FeeTooLarge if it exceeds int128 range, which bounds the hook's effect on very large swaps.
Contract details
- Verified source
- Yes (ReinHook)
- Compiler
- solc 0.8.24+commit.e11b9ed9
- Bytecode size
- 4,785 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using ReinHook
- ETH / REIN (0.05% fee) — 24h volume $0, TVL $18.24K, 0 swaps today