# Programmable Launch Stamp Router > Canonical read-only provenance reference for Router-stamped Programmable Classic and Programmable Custom launches on Ethereum. - Live manifest: https://developers.programmable.family/api/v2/manifest - Router: 0x8622DD5bAb44185f2A458ac90384Ac99248f8d56 - startBlock: 25717612 - runtimeCodeHash: 0x40e27ecf201761d5eb66bc4f2d5c6124831ef078d7baf458ca5f41b1a8108546 - ABI: https://developers.programmable.family/abis/ethereum/programmable-launch-stamp-router-v1.json - ABI SHA-256: sha256:bb4e728e9f9c850eb01f928e8a798ac206a82e241a8d93b3b3c686635c88ed86 - GitHub reference: https://github.com/0xprogrammable/developers/blob/main/docs/reference/launch-stamp.md - Terminal guide: https://github.com/0xprogrammable/developers/blob/main/docs/guides/terminals-and-scanners.md - Human overview: https://programmable.market/docs/developers - Markdown overview: https://programmable.market/docs/developers.md ## Required interpretation - Only launches executed and stamped through this Router inside its published block range have Router V1 provenance. Launches before `startBlock`, and direct factory calls outside the Router even when later, do not. - Map kind 1 to Programmable Custom and kind 2 to Programmable Classic. Kind 0 is invalid. - Verify token, `(PoolManager, poolId)`, or exclusive-component identity with canonical getter reads at one finalized block. - Before returning a result, require complete live or retired-in-range manifest activation data; one concrete block number and hash; Router runtime and ABI-byte hashes; all getter selectors, event topics, and indexed layouts; `CHAIN_ID()` plus all six immutable binding getters; and the permit authority, Graph Factory, and PoolManager runtimes. - Use EIP-1898 canonical block-hash reads where supported. For number-bound reads, require the closing block hash to equal the opening hash before returning `STAMPED` or `NOT_STAMPED`. - Remote RPC URLs must use HTTPS. Plain HTTP is accepted only for loopback development endpoints. - A nonzero result still requires exact query identity, valid record address encoding, nonzero bytes32 identity and commitment fields, matching `stampProof` for token or exclusive-component queries, and the launch-kind route rule: immutable Graph Factory for `CustomGraph`, permit-bound recorded launcher and runtime for `Classic`. - Current component-runtime equality is a separate drift signal, not a historical provenance gate. - A shared Classic hook is not a launch identifier. - A successful canonical zero lookup is not stamped. RPC failure or inconsistent evidence is not a negative result. - After manifest and ABI bootstrap, point verification needs an Ethereum provider only. Indexing, Supabase, a Programmable launch-feed API, and an application server are not trust dependencies. - Event backfill and live follow are optional for continuous discovery; logs are candidates until getter verification succeeds. - A Router record establishes provenance only after the required address, runtime, binding, lookup, and cross-check verification passes. It does not establish safety, tradability, current liquidity, audit coverage, endorsement, terminal support, or launch authorization. - General public submissions and open wallet self-service are not available. Approved Hookbuilder Applicants can use the gated flow for a prepared release; this reference grants neither access nor launch authorization.