Open the app

Contracts and addresses

Every deployed address, the linked libraries, the upstream dependencies, the wiring read back from the chain, and the registry identifiers.

Every address on this page is live on Robinhood Chain, chain id 4663. The Hookr addresses hold the deployed release; the upstream addresses are Uniswap's own deployments.

Every Hookr address, id and share below is rendered from the deployment record the app ships, the same file published as deployments/robinhood-4663.v2.json in the public contracts repository. None of them is typed into this page. The source commit behind the deployed code is 8db7fc940938f811f508ba9cb0c8f2d3f24c9a25.

Explorer: Robinhood Blockscout. Machine-readable ABIs: ABIs.

Mainnet Deployments

Robinhood Chain: 4663

The contracts, in deployment order.

The root hook's address is mined by CREATE2 so its low fourteen bits equal 0x28cc. See Hook permissions.

Linked Libraries

HookrMarketCoordinatorV5, HookrSwapAccountingKernelV3 and HookrModularHookV6 link libraries. Each is compiled without them: the addresses below are written into the __$…$__ placeholders in the compiled bytecode, so the deployed code carries the metadata of a library-free compilation. Three of these libraries already stood on chain holding the same runtime code, apart from the immutable each one keeps for its own address, and are linked where they stand. HookrMarketCoordinatorTokenDeployerV3 holds different code at the address it could have been linked from, so it has one of its own.

LibraryLinked intoAddress
HookrMarketCoordinatorTokenDeployerV3HookrMarketCoordinatorV50x7A2821F7Ea0e4d0C5a409D479cd457d5B34F9399
HookrMarketCoordinatorKernelReservationLibV1HookrMarketCoordinatorV50x8C2E208eDFf0eF7535B20AE8F13dfBF71133521d
HookrStatefulSettlementLibV1HookrSwapAccountingKernelV30xde7Ae40c713D5C9EC2C8e2E28810C6C7Eb791706
HookrModularCorrectionLibV2HookrModularHookV60xd2832D5F64C7116bE2c7B32D8c06d60023b479D8
HookrMarketCoordinatorInitialBuyLibV4HookrMarketCoordinatorV50xE12f58f1662293B8b4fF3f0227384bD9D2a6e382
HookrNativeMechanicsCoordinatorLibV2HookrMarketCoordinatorV50xafC0a7656DF8B1aA5A173d04612a9661C4b9c7E2

The CREATE2 factory the root hook is mined through is HookrReleaseCreate2FactoryV1 at 0xBc54e888C1A5B71744B035DfeC5611B4DC69ccDe. Its authorizedDeployer() is the deployer address below, and only that address can deploy through it.

Upstream Dependencies

These are live and independently verified on chain 4663.

The Universal Router address on chain 4663 has two conflicting official sources. Uniswap's deployment registry gives 0x06afBA43fd06227fA663b0dAeCF536F6eaA6BF99; the rendered deployments page gives 0x8876789976dEcBfCbBbe364623C63652db8C0904. The fork evidence behind this documentation used 0x8876789976dEcBfCbBbe364623C63652db8C0904, and swaps settled correctly through it.

Both addresses hold a deployed router, both are 24,546 bytes, and both report the same poolManager(). Their runtime code hashes differ, so they are not the same build:

AddressRuntime code hash
0x06afBA43fd06227fA663b0dAeCF536F6eaA6BF990xbe8e8191bb42d843c2e948a5a55772eaab864ce01e54dcd47c9d089170b302d5
0x8876789976dEcBfCbBbe364623C63652db8C09040x2ce6aaaf9f4151f5e1cbf774668772f17f532ae11b15e9284fd0a072a8b0fbde

Nothing in the Hookr graph pins either one: the hook accepts any caller, and a pool's trusted-router slot holds HookrKernelRouterV3, not a Universal Router. The choice belongs to whoever routes through this hook. Pin the address you tested against, record its runtime code hash alongside the evidence, and say which one you pinned. This documentation does not choose for you.

Tokens on Chain 4663

NFLX and AAPL are Robinhood tokenized stocks. Read RWA and ERC-20 quotes before pairing one.

Wiring, Read Back From the Chain

Every one-shot bind and every pinned address, as the chain reports them.

ReadValue
HookrStackRegistryV2.coordinator()0x53A192A3fCeE94Da77916B461E0cCa2Dd6402442
HookrMarketCoordinatorV5.treasuryBeneficiary()0x9BB7c01571ef6e59a8834A6a89A6b024822BAf6f
HookrNativeMechanicsBlockV2.protocolRecipient()0x9BB7c01571ef6e59a8834A6a89A6b024822BAf6f
HookrTreasuryForwarderV1.nativeBlock()0xD700492b504ba5A72D7de28dDe11Cd7985a7F1ae
HookrTreasuryForwarderV1.target()0xF4Ab4698554D5c95874986d5e956c62e5E6aB3eE
HookrModuleCatalogV1.canonicalStatefulModule()0xD700492b504ba5A72D7de28dDe11Cd7985a7F1ae
HookrMarketCoordinatorV5.defaultProtocolShareBps()2000
HookrMarketCoordinatorV5.marketOpeningPaused()false (the owner unpaused it after deployment, so both lanes are open to any caller; read 2026-09-08)
HookrKernelRouterV3.integrationVersion()3
HookrKernelQuoterV1.integrationVersion()1
HookrReleaseCreate2FactoryV1.authorizedDeployer()0xF4Ab4698554D5c95874986d5e956c62e5E6aB3eE

The coordinator, the registry, the catalog and the forwarder are all owned by the deployer. The forwarder's target is the same address today; rotating it is the one payout change that does not touch a pinned address. See Immutability and ownership.

Registry Identifiers

The values registerModule, registerIntegration, registerKernel and sealRootProfile returned, which an integrator reads back rather than recomputing.

IdentifierValue
Module id0x961091565aaf4eaa4996296fda9772957e61d18d90b965111a59ded2bbb5e774
Router integration id0xc9ddc18b51d83cdafa6da985c67b4db41895dcde37b719597bdda9db6396c455
Quoter integration id0x6e5a5b6aa6d141ccaf3b9f25f60e87919fc7a724cc845d146581eb49c079a9a9
Kernel id0x1be0c118b1c6520d97de31ee9f0c33069f0e715ffcdcb16c87a343752bb5be14
Root profile manifest hash0x74f018eb9afa65dcf38eb682397a21937b8568572c9884faa12465833bbcf213
Kernel family id0x8b1849873123e8aae0521342fa900a748f6ac5f572800cddb1e71027474213b0
Module key0xb7e3f7cb75273b57fec1d1eec0c8e7c59568c1537ce2135df897d1f14ef74304
Root profile id0x460f3441e5dc6f26fe4729ecb80ad7aa9ba896af54bed88a47f1218588129d72

The last three are hashes of fixed strings and read back off the contracts that hold them: the kernel family id is HookrKernelRouterV3.KERNEL_FAMILY_ID and HookrKernelQuoterV1.KERNEL_FAMILY_ID, both keccak256("HOOKR_SWAP_DELTA_V1"); the module key is HookrNativeMechanicsBlockV2.MODULE_KEY, keccak256("HOOKR_NATIVE_MECHANICS"); the root profile id is keccak256("HOOKR_LAUNCH_V2_MIN_ROOT_PROFILE"), the permanent identity of the sealed profile.

Verification

Every contract above holds verified source on Blockscout as a full match, and Sourcify holds the same 16 addresses as exact matches. Verification records the build settings and the address-by-address comparison.