{"schemaVersion":"programmable.module-mode-indexer.v1","chainId":4663,"sourceVersion":"module-native-v1","launchIdentityVersion":1,"guide":"https://programmable.market/developer-reference/module-mode-indexing","markdown":"https://programmable.market/developers/module-mode-indexing-v1.md","release":{"url":"https://programmable.market/api/module-mode","responsePath":"release","schemaVersion":"programmable.module-mode-source.v1","required":{"enabled":true,"status":"active","chainId":4663,"sourceVersion":"module-native-v1"},"addressPath":"contracts.launcher.address","runtimeHashPath":"contracts.launcher.runtimeCodeHash","startBlockPath":"startBlock","identityPath":"releaseDigest","sourceCommitPath":"sourceCommit","finalityPolicy":"robinhood-ethereum-finalized-v1"},"abi":[{"name":"ModuleNativeLaunched","type":"event","inputs":[{"type":"bytes32","name":"launchId","indexed":true},{"type":"address","name":"launchWallet","indexed":true},{"type":"address","name":"token","indexed":true},{"type":"bytes32","name":"poolId"},{"type":"bytes32","name":"recipeHash"},{"type":"address","name":"hook"},{"type":"address","name":"positionRecipient"},{"type":"uint256","name":"positionTokenId"},{"type":"uint256","name":"initialBuyNative"},{"type":"uint256","name":"initialBuyTokens"}]},{"name":"ModuleNativeProgramBound","type":"event","inputs":[{"type":"bytes32","name":"launchId","indexed":true},{"type":"bytes32","name":"launchKey","indexed":true},{"type":"address","name":"runtime","indexed":true},{"type":"bytes32","name":"fundingHash"},{"type":"uint256","name":"totalFunding"}]},{"name":"ModuleNativeConfigurationBound","type":"event","inputs":[{"type":"bytes32","name":"launchId","indexed":true},{"type":"bytes32","name":"metadataHash"},{"type":"bytes32","name":"creatorConfigurationHash"},{"type":"bytes32","name":"economicsHash"}]},{"name":"ModuleNativeTokenIdentityBound","type":"event","inputs":[{"type":"bytes32","name":"launchId","indexed":true},{"type":"bytes32","name":"creatorSalt"},{"type":"bytes32","name":"graffiti"}]},{"name":"getLaunch","type":"function","stateMutability":"view","inputs":[{"type":"address","name":"token"}],"outputs":[{"type":"tuple","components":[{"type":"bytes32","name":"launchId"},{"type":"address","name":"launchWallet"},{"type":"address","name":"token"},{"type":"bytes32","name":"poolId"},{"type":"bytes32","name":"recipeHash"},{"type":"address","name":"hook"},{"type":"address","name":"positionRecipient"},{"type":"uint256","name":"positionTokenId"},{"type":"uint256","name":"initialBuyNative"},{"type":"uint256","name":"initialBuyTokens"},{"type":"address","name":"runtime"},{"type":"bytes32","name":"launchKey"}]}]},{"name":"launchIdentityVersion","type":"function","stateMutability":"pure","inputs":[],"outputs":[{"type":"uint256"}]},{"name":"getLaunchIdentity","type":"function","stateMutability":"view","inputs":[{"type":"address","name":"token"}],"outputs":[{"type":"tuple","components":[{"type":"bytes32","name":"launchId"},{"type":"address","name":"launchWallet"},{"type":"address","name":"token"},{"type":"address","name":"poolManager"},{"type":"bytes32","name":"poolId"},{"type":"address","name":"hook"},{"type":"bytes32","name":"recipeHash"}]}]}],"events":[{"name":"ModuleNativeLaunched","topic0":"0x6570caeda0af26be073c30ae27c5f864331d28dab3bf14b31aa3e5bf64793e85","indexedInputs":["launchId","launchWallet","token"]},{"name":"ModuleNativeProgramBound","topic0":"0x218c252a7de1f7bded4bbfcdeb1c56e4889459ef1197006aea4c846ddaae5291","indexedInputs":["launchId","launchKey","runtime"]},{"name":"ModuleNativeConfigurationBound","topic0":"0x45e61a3c4095c5098682230fbe5c8e0644eec85069657ac88d0fd215bfed9a92","indexedInputs":["launchId"]},{"name":"ModuleNativeTokenIdentityBound","topic0":"0x862f0b1c2fa6225250ce728472cd982257cce63a76cb547926de3f2a55a72516","indexedInputs":["launchId"]}],"identities":{"token":["chainId","tokenAddress"],"pool":["chainId","poolManager","poolId"],"launch":["chainId","sourceAddress","launchId"],"event":["chainId","blockHash","transactionHash","logIndex"],"checkpoint":["chainId","sourceAddress","sourceReleaseDigest","blockNumber","blockHash"],"creator":"ModuleNativeLaunched.launchWallet"},"normalizedRecord":{"sourceKind":"module-native-v1","routerAddress":null,"stampHash":null,"requiredFields":["sourceKind","sourceAddress","sourceReleaseDigest","launchId","tokenAddress","hookAddress","creator","poolManager","poolId","recipeHash","runtime","launchKey","verificationDigest","modulePackageIds","moduleFamilyIds","transactionHash","blockNumber","blockHash","logIndex","launchedAt","name","symbol","decimals","routerAddress","stampHash"],"integerEncoding":{"blockNumber":"decimal-string","logIndex":"nonnegative-safe-integer","decimals":"integer"},"moduleIds":"Opaque bytes32 identifiers. Preserve their order and values; no module-name allowlist.","optionalEnrichment":["description","image","social links","module titles","configuration labels","icons","market data","trading support"]},"tokenMetadata":{"address":"tokenAddress","abi":[{"name":"metadata","type":"function","stateMutability":"view","inputs":[],"outputs":[{"type":"string","name":"description"},{"type":"string","name":"website"},{"type":"string","name":"image"},{"type":"bytes","name":"extraData"}]}],"functionName":"metadata","fields":["description","website","image","extraData"],"identity":"Read only after verifying the native launch identity. Missing or invalid metadata must not remove a verified launch.","commitment":"ModuleNativeConfigurationBound.metadataHash = keccak256(abi.encode(name, symbol, (description, website, image, extraData))).","image":{"defaultUrl":"https://programmable.market/brand/loop/programmable-module-token-default-v1.png","fallbackWhenMissing":true,"existingImages":"Preserve a valid token metadata image. The default applies only when no image was selected."},"socialLinks":{"website":"metadata.website","extraData":{"encoding":"UTF-8 JSON encoded as bytes","version":1,"versionField":"v","optionalKeys":["x","telegram","discord","github","gitbook"],"empty":"0x"},"mapping":{"website":"website","x":"twitter","telegram":"telegram","discord":"discord","github":"github","gitbook":"gitbook"},"formats":{"website":"public HTTPS URL","x":"x.com or twitter.com","telegram":"t.me or telegram.me","discord":"discord.gg or discord.com/invite","github":"github.com","gitbook":"public HTTPS URL, including GitBook custom domains"},"limitsBytes":{"website":2048,"socialUrl":512,"extraData":1200},"reader":"Ignore unsupported versions and invalid links. tokenURI does not include extraData; read metadata() for social links."}},"reads":{"websiteList":{"url":"https://programmable.market/api/explore/robinhood","purpose":"Website discovery with presentation filters; not a complete archival feed."},"creatorList":{"url":"https://programmable.market/api/profile/robinhood?account={launchWallet}","purpose":"Creator profile lookup; traverse all pages."},"archive":"Scan the bound launcher from release.startBlock to an independently verified finalized boundary. Persist a separate checkpoint for each release."},"source":"https://github.com/programmablehq/PROGRAMMABLE/blob/production/lib/module-mode/provenance.ts","versioning":"New modules within this source version use the same launch identity. A different source version requires its published adapter; preserve existing records while adding it."}