SettlePermissionHook on Robinhood Chain

Uniswap v4 Hook Contract 0xfef8e78090697c808116c56a9e81fc83d4f76000 on Robinhood Chain · Access control · Verified contract

Volume (24h)
$1.53
Value locked (TVL)
$873
All-time volume
$28.13K
Pools using this hook
38
Swaps (24h)
12 (1 traders)
Total swaps
11,867

What it does

This hook only lets a pre-approved settle adapter create new pools, and it does not change swap prices, fees or liquidity for traders and LPs once a pool exists.

This read was written for the hook 0x1c49…e000 on Robinhood Chain and reused here: the two run the same code.

How it works step by step

  • Enables only the beforeInitialize callback; all other hook callbacks revert with HookNotImplemented
  • Gates PoolManager.initialize so a pool can only be created when the settle adapter has armed that exact PoolKey hash via authorize
  • Consumes each pending authorization on use (one-shot), emitting InitConsumed
  • Leaves liquidity addition, removal, swaps and donations unrestricted once a pool exists
  • Binds the settle adapter once via setSettleAdapter, callable only by the deployer
Swap behaviour
No swap callbacks.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee.
Owner & admin controls
The deployer can set the settle adapter exactly once; after that the adapter is fixed with no pause, upgrade or parameter-change path. The settle adapter can arm pool initializations via authorize. The contract has no owner-transfer or upgrade functions.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize is used to check that the pool's PoolKey hash was pre-authorized by the settle adapter and to consume that authorization before the pool is initialized; all other callbacks are present but revert.

Security & trust assessment

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

Who controls it: The settle adapter alone decides which pools can be initialized through this hook, and it has no way to block or alter swaps or liquidity for existing pools. The deployer can only bind the adapter once.

Risk to user funds: The hook never holds, moves or blocks user tokens and returns no deltas. It only affects whether a new pool can be initialized, so existing liquidity and swaps are not exposed through it.

Security findings

  • [info] Pool creation gated by a single adapter: Only the settle adapter, set once by the deployer, can arm initializations, so only it can create pools through this hook.
  • [info] Adapter is set once and cannot be changed: setSettleAdapter reverts once an adapter is set, so a compromised or buggy adapter cannot be replaced without redeploying the hook.
  • [low] Deployer address check: The deployer is the constructor owner_ argument and is only used for the one-time setSettleAdapter call; if it is set incorrectly the adapter binding cannot be fixed.

Contract details

Verified source
Yes (SettlePermissionHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
1,796 bytes
Upgradeable proxy
No

Pools using SettlePermissionHook