Custom pricing hook on Robinhood Chain
Uniswap v4 Hook Contract 0x64a28591a926f0efaa4d43830cc33c999474e040 on Robinhood Chain · Custom pricing
- 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
This hook gates which pools can be initialized with its canonical key and runs post-swap logic tied to an external vault, but the decoded code does not show it changing fees or swap amounts, so its effect on traders and LPs cannot be confirmed from the bytecode alone.
How it works step by step
- Exposes immutable-style getters for VAULT, POOL_MANAGER, USDG, ORO, GENESIS, TICK_SPACING and LP_FEE, suggesting it is wired to a specific vault and token pair
- beforeInitialize checks the pool key against a canonical configuration (NotCanonicalKey error) before a pool is created
- openingSqrtPrice maps a uint256 input to a starting sqrt price, used when initializing the pool
- afterSwap is a view-declared callback that reads swap parameters and performs logic tied to an external band() oracle-style call and extsload reads
- Reverts with NotGenesis when called outside the expected genesis context
- Swap behaviour
- afterSwap is present and reads swap parameters; decoded bytecode does not show it modifying balances or returning deltas, so trader-facing effects cannot be fully determined.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee; LP_FEE is exposed as a getter but the decoded code does not show dynamic fee logic.
- Owner & admin controls
- No admin controls found.
Enabled Uniswap v4 callbacks
beforeInitialize, afterSwap
beforeInitialize gates pool creation by validating the canonical pool key; afterSwap is enabled to run post-swap logic that reads external state (band, extsload).
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Without source, no owner or admin key is visible; any privileged role would be encoded in the external dependencies (vault, band, genesis) and cannot be confirmed.
Risk to user funds: No evidence in the decoded bytecode that the hook takes custody of tokens or alters swap deltas; exposure depends on the vault and external contracts it reads from.
Security findings
- [info] Pool initialization gated by canonical key: beforeInitialize reverts with NotCanonicalKey on non-canonical keys, restricting which pools can be created with this hook.
- [medium] Dependence on external state: afterSwap and related paths call band() and extsload, so behaviour depends on external contracts whose correctness was not verified.
- [low] Genesis-gated access: Functions revert with NotGenesis, implying a privileged or one-time setup phase whose completion conditions are not visible in the input.
Contract details
- Verified source
- No
- Bytecode size
- 4,115 bytes
- Upgradeable proxy
- No
- Detected patterns
- liquidity-management
Pools using Custom pricing hook
- HZSD / USDG (0.30% fee) — 24h volume $0, TVL $0, 0 swaps today