Mainnet submission record

Every declared contract and qualifying transaction, with its mainnet evidence source.

Network is SN_MAIN. Every row is independently checkable with one RPC call, and every one was read back off the chain rather than copied from a deployment log.

ContractSTRK20 pool — StarkWare’s, not ours0x040337b1af3c663e86e333bab5a4b28da8d4652a15a69beee2b677776ffe812a ↗packages/protocol/src/constants.tsContractMarkets v1 — ours (historical qualifying emitter)0x7905ba4e7535a3e7c1f9f4045762cc7ce83cfb120fe916f97a0dc512d72a783 ↗evidence/submission-chain-sweep.jsonContractMarkets v2 — ours (current)0x30b487e6b15d65fae30482fd07dcbfaa47b5b07e5133c0cdb10d8e49a3c702 ↗evidence/submission-chain-sweep.jsonContractLaunch — ours (current)0x3fc07897f657b184ff9b0dab28939bb5a175d7cff9290406a1bd4b3d032eb54 ↗evidence/submission-chain-sweep.jsonContractGovernance v1 — ours (historical qualifying emitter)0xdbe265829e0f1c859f3a8c1bd8fcfb0a774836b9e07191c6a624a59e37f9bf ↗evidence/submission-chain-sweep.jsonContractGovernance v2 — ours (current)0x731207e62d01d80632e9d6e911072bb5a3eeaf86232123d2ab9fc50654babc5 ↗evidence/submission-chain-sweep.jsonContractMailbox — ours (current)0x675196bd1c2df73c85acdf3ac97a5baffce476f0915006ca8187e00c80bba5a ↗evidence/submission-chain-sweep.jsonContractVesuEarn — ours (current)0x3ce7a79c53685ab178bcf36960099bf37bbd16035f0f7e2defefa5153204157 ↗evidence/submission-chain-sweep.jsonContractPragma oracle — read live by Markets0x2a85bd616f912537c50a49a4076db02c00b29b2cdc8a197ce92ed1837fa875b ↗evidence/markets-launch-deployment.jsonTxQualifying pool transaction · MarketsV10x77fceec7b1dab186b6f6121db07aca62c727dedae35b3a9db22c17b9716f978 ↗evidence/submission-chain-sweep.jsonTxQualifying pool transaction · MarketsV10x16933dd6edd5ade29c3b3cb3954da2c3b5bb806f85040fe42810f73acd72523 ↗evidence/submission-chain-sweep.jsonTxQualifying pool transaction · Launch0x84a59651f14c6c995eac59ce0598e9cb58a7b1d02334870db9494acf3871d4 ↗evidence/submission-chain-sweep.jsonTxQualifying pool transaction · MarketsV10x15eb0939a124cbe8fc6a0e5825004f665f031e0d6abb80088bab0a8466561c0 ↗evidence/submission-chain-sweep.jsonTxQualifying pool transaction · GovernanceV10x448ed7fc67b968b829d0e5cf8f7946fbb0fc47ef48903b33b8cd7be4dd6e7df ↗evidence/submission-chain-sweep.jsonTxQualifying pool transaction · MarketsV20x22f0d0a0ae52be2a04213f536b0f922fc2add07e472b17804e9acbf3884d1c6 ↗evidence/submission-chain-sweep.jsonTxQualifying pool transaction · Launch0x2ce4fa1571a30dc6986ba0acccc4aaf973e8d735aaef468170a3161199a3d27 ↗evidence/submission-chain-sweep.jsonTxSponsored registration, via our relayer0x4fbbf9aa7992a95d313554bc17b2fff311b35a5974271defc6672f57abfe27d ↗evidence/sponsored-registration.jsonTxMarkets v2 deploy0x1496deac5edd622cc635177fe565b2dcf67e44df80afd4c54fa230b0705a20a ↗evidence/markets-launch-deployment.jsonTxLaunch deploy0x3caf6752205721633f683a299d1c8fab20d3ad634d7b9f3f4b63785476edf57 ↗evidence/markets-launch-deployment.json

App contracts read back off the chain at block 14,389,663. Every row opens on Voyager.

The seven rows labelled Qualifying pool transaction are the hashes in strk20.json. Each receipt is SUCCEEDED, finalized on L1, and contains events from both the STRK20 pool and the named app contract. The sweep also found successful setup, creation, resolution and tally transactions; those remain in evidence/submission-chain-sweep.json but are not declared because they emit no pool event and therefore do not meet the sprint validator.

Why each row names a file

A table of hex strings retyped out of a deployment log stays green forever, including on the day it starts naming a contract nobody deployed. These rows are derived from the evidence/*.json files the deploy scripts wrote and the verifier read back — so a redeploy that rewrites those files rewrites this page, and a reader who does not trust it can diff it against the repository.

"Succeeded" versus "is there"

"The transaction succeeded" is a weaker claim than "the class is there now".

The first is a statement about the past that nobody can re-check. The second is a statement about current chain state that anyone can. Every address above was verified the second way.

The pool class hash is pinned on purpose

The STRK20 pool is upgradeable with zero delay and can be paused. If the running pool's class hash stops matching the one the app was built against, the app says so and stops rather than guess — an upgraded pool is a different contract, and continuing against it would mean acting on assumptions that have expired.

Audit status

The OpenZeppelin audit of the underlying protocol covers commit c5e2fb5 (May 2026). Everything newer, including this repository, is unaudited. The pool is StarkWare's and audited; the product around it is ours and is not.

On this page