Open the app

Verification

Read the exact build settings, the explorer verification status of every deployed address, and how to rebuild and compare one yourself.

Every deployed Hookr contract holds verified source on Blockscout, and every one is a full match: the explorer recompiles the source and gets the deployed bytes back, CBOR metadata trailer included. None is a partial match, which is what the explorer reports when the code agrees and the trailer does not. Sourcify holds the same 16 addresses on chain 4663 as exact matches, creation and runtime bytecode both (https://sourcify.dev/server/v2/contract/4663/<address>).

The build is Solidity v0.8.26+commit.8a97fa7a through via-IR, the optimizer at 200 runs, evm_version = cancun, bytecode_hash = ipfs, CBOR metadata appended. The contract repository's foundry.toml is that profile, with its ten remappings written out rather than detected, because a contract's metadata records them and the metadata is hashed into the trailer.

To rebuild and compare a contract against its address:

git submodule update --init --recursive
forge build
cast code <address> --rpc-url https://rpc.mainnet.chain.robinhood.com

out/<file>.sol/<Contract>.json holds the runtime object to compare. For a contract that links libraries, write the addresses from the linked-library table into the placeholders that deployedBytecode.linkReferences locates; pinning the addresses in the compiler profile instead changes the metadata and the trailer stops matching. Zero the spans in deployedBytecode.immutableReferences on both sides, because those hold values fixed at construction rather than compiled bytes.

ContractAddressRuntimeImmutablesRebuiltBlockscout
HookrModuleCatalogV10x6a3561d5B6305E2229F30EDF66702e8Bc4fA19D16,448 Bnoneidenticalverified, full match
HookrStackRegistryV20x5b7f1A117A83aaac15B0698Aa4eB9D53fE5f5BA323,307 B9 slotsidentical once maskedverified, full match
HookrTreasuryForwarderV10x9BB7c01571ef6e59a8834A6a89A6b024822BAf6f3,272 B2 slotsidentical once maskedverified, full match
HookrNativeMechanicsCoordinatorLibV20xafC0a7656DF8B1aA5A173d04612a9661C4b9c7E23,713 B1 slotidentical once maskedverified, full match
HookrMarketCoordinatorInitialBuyLibV40xE12f58f1662293B8b4fF3f0227384bD9D2a6e3822,209 B1 slotidentical once maskedverified, full match
HookrMarketCoordinatorTokenDeployerV30x7A2821F7Ea0e4d0C5a409D479cd457d5B34F939910,541 B1 slotidentical once maskedverified, full match
HookrMarketCoordinatorV50x53A192A3fCeE94Da77916B461E0cCa2Dd640244222,865 B26 slotsidentical once maskedverified, full match
HookrSwapAccountingKernelV30x530523DEcC9523dDF8A87842fFBBD24a59C7E06023,965 B19 slotsidentical once maskedverified, full match
HookrKernelRouterV30xf0E528c39f33F565876cbaa7e0DFaCa38Df966E910,178 B10 slotsidentical once maskedverified, full match
HookrKernelQuoterV10x5Ba8FBbB4aB20Ff6Daf0ecDEBe3784f869BcB1B55,412 B5 slotsidentical once maskedverified, full match
HookrNativeMechanicsBlockV20xD700492b504ba5A72D7de28dDe11Cd7985a7F1ae16,889 B12 slotsidentical once maskedverified, full match
HookrModularHookV60xb3cA29cF721380CEe8b8e4755F3865Ebc68Fe8cC8,474 B12 slotsidentical once maskedverified, full match
HookrMarketCoordinatorKernelReservationLibV10x8C2E208eDFf0eF7535B20AE8F13dfBF71133521d483 B1 slotidentical once maskedverified, full match
HookrStatefulSettlementLibV10xde7Ae40c713D5C9EC2C8e2E28810C6C7Eb7917062,715 B1 slotidentical once maskedverified, full match
HookrModularCorrectionLibV20xd2832D5F64C7116bE2c7B32D8c06d60023b479D83,063 B1 slotidentical once maskedverified, full match
HookrReleaseCreate2FactoryV10xBc54e888C1A5B71744B035DfeC5611B4DC69ccDe972 B2 slotsidentical once maskedverified, full match

The last four rows predate the rest and carry the metadata of a build that embeds the source text instead of its hash, so reproducing their trailers takes use_literal_content = true. Their code is identical either way. The single immutable in each of the three libraries is its own address, which is how a library refuses a direct call.