FablesRWA on Robinhood Chain
Uniswap v4 Hook Contract 0xa0e8fbff13e24af2b5e61a72800e08a161bde080 on Robinhood Chain · Dynamic fee · Verified contract
- Volume (24h)
- $1.76M
- Value locked (TVL)
- $1.73M
- All-time volume
- $87.68M
- Pools using this hook
- 1
- Swaps (24h)
- 2,273 (715 traders)
- Total swaps
- 162,730
What it does
A session-aware dynamic-fee hook for tokenized equity pools that charges higher fees around the opening and closing auctions and a lower overnight fee, while also providing a per-range liquidity ledger with staking and fee claims.
How it works step by step
- Computes a per-swap fee from a market-session calendar with an opening descent and closing ramp, adjustable by day overrides and session hours.
- Lets a restricted operator temporarily override the fee within bounds, expiring after at most 72 hours.
- Holds deposited liquidity in per-range PoolManager positions and mints ERC-6909 receipts 1:1 with liquidity.
- Accrues LP fees per range, lets holders claim them minus an optional claim fee, and routes staked shares' fees to a distributor.
- Permits pausing of non-withdrawal operations for a bounded time and blocks swaps only through fee logic, never by reverting them.
- Swap behaviour
- beforeSwap returns a fee override computed from the session floor (open with descent, overnight, closed, closing ramp) or a live fresh poke, clamped to the pool cap. No swap deltas are modified.
- Liquidity behaviour
- deposit and withdraw mint and burn ERC-6909 receipts 1:1 with liquidity units in a hook-owned PoolManager position per tick range. Deposits and withdrawals carry amount bounds from the caller. Withdrawals are unconditional and cannot be paused. Staking routes a range's fee accrual to a distributor and is gated by the ballot contract requiring a live, earning gauge.
- Fee behaviour
- beforeSwap returns an override fee: a poked fee while fresh, otherwise the session floor from the calendar (open with opening descent, overnight, closed, plus a closing ramp), clamped to the pool cap. Pokes may only lower the autonomous fee by up to 50 percent and never below the pool's configured floor. Protocol-level fee cuts on claimed LP fees are charged via a claim fee of at most 20 percent, default zero, applied to fees only.
- Owner & admin controls
- A single restricted authority (AccessManaged) controls setPoolConfig, pokeFee, clearPoke, pause, setPaused, setClaimFee, setDistributor, setFFFeeSink, setBallotGate, setAuthority, setDayOverrides, setSessionHours and setDstMode. The pokeFee role has no execution delay and can override the fee within a pool floor and cap for up to 72 hours. Calendar overrides are bounded in bytecode (forced closures per month, session length) and pause expires after at most 7 days. Upgrades are not possible: the contract is not proxied.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap
beforeInitialize: rejects non-dynamic-fee pools, pools not configured, and native-currency pools. beforeSwap: returns the resolved fee as an override fee only; it never modifies swap deltas or takes tokens.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: A restricted key can set the fee for any pool to the floor for up to 72 hours, pause deposits, claims, transfers and staking for up to 7 days, reconfigure floors, cap and calendar overrides, and redirect claim-fee and distributor revenue. The fast poke role has no delay. Principal withdrawal cannot be blocked by the admin.
Risk to user funds: The hook does not take principal from users: deposits move tokens into the PoolManager position and withdrawals return them to the chosen recipient without admin gating. Fees are collected as ERC-6909 claims. The admin can change fees, pause ops and redirect fee revenue but cannot seize principal.
Security findings
- [medium] Hot-key fee override: The poke role has no execution delay and can set a pool fee down to its configured floor and up to the cap, renewable every 72 hours. Bounded by a floor and a 50 percent discount cap, but still a hot key that can shift LP economics quickly.
- [low] Pausable ledger operations: pause can be applied at zero delay and blocks deposits, claims, staking, transfers and sweeps for up to 7 days, with renewals. Withdrawals and unstaking remain open.
- [low] Protocol fee take on LP earnings: Claim-fee and distributor revenue destinations are set by the restricted role and swept permissionlessly. Recipients are validated against the hook, distributor and each other, but the rate is adjustable up to 20 percent of LP fees.
- [info] Bounded admin levers: Protections are in code: session length and floors are bounded, pokes are bounded, day overrides are validated, and withdrawals read no admin state. No hook-level token custody of user funds beyond pool-held ERC-6909 claims.
Contract details
- Verified source
- Yes (FablesRWA)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 33,070 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc6909-claims, moves-currency, pausable, self-unlock
Pools using FablesRWA
- SPY / USDG (Dynamic fee) — 24h volume $1.76M, TVL $1.73M, 2,273 swaps today