{"rewardSnapshot":null,"merkleRoot":null,"claims":null,"id":"76fe1985-1f08-416b-88da-6aa5a21eaa4e","launchNumber":2251,"kind":"evm_contracts","status":"live","chainId":4663,"sourceRepoUrl":"https://github.com/identity-md-launches/launch-2251-deploy-audited-imd-vault","sourceCommit":"1ba921a5d3f218861bfd44e8f71cf7fd8398a64b","parkedReason":null,"artifactCount":1,"manifestHash":"7a7abd7f1ed16c595b62bfa905d346bbb1f02ae616306dff456a7d2ab2853d16","attestationHash":"c758e6b90cb039a1ad14ad8abfe0dd0b6301e472ec3656a34a05fcba2da34fe1","attestation":{"treeHash":"0f9c8c9cfd4c7c1c60a7edcc8bbaf204395e9279","verifierVersion":"0.1.0+6a374fcd","verifierKey":"68249df1f422fa72f61ca7f0ddaf9b62043959c5c134498441d5e552a9921782","toolchain":{"solc":"0.8.26","forge":"forge Version: 1.8.3","viaIR":false,"optimizer":true,"evmVersion":"cancun","bytecodeHash":"none","optimizerRuns":200},"contracts":[{"name":"TreasuryVault","path":"src/TreasuryVault.sol","abiHash":"50aa5eb65dcc85a5bd5253799b6d0b441015f5e57689fff1aca36e7d73449803","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"46a6abc27c92c5844d83c57ee04d65620ca3ef150030b093b3b8eff8085a58b1","creationCodeHash":"2975f50562cecfa9392dc92cd57017cd96648110e468dc8e619ecf9f1b364c3d","deployedCodeHash":"c590a393c66678f70cfc71c0760b9a9debccb85ff8410ec0636cd29620fc2f7d","creationCodeBytes":9673,"deployedCodeBytes":8587},{"name":"VaultFactory","path":"src/VaultFactory.sol","abiHash":"e44c83fbef4c82df4e45290b627d0cfa9dd415fd75f1653357322473db934685","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"f45ea592d218d178ff0359672bcef8a337bf0eb037edc2284a80eaafd4b7b840","creationCodeHash":"7f96d29e6e38003c98c3f9407fa870615739caa2f8c3b25cbc2f11196668d650","deployedCodeHash":"5add850a4c51e9cc9e31a1cfcbd8263b74b77c9746a4dc64d2b963d91c34fc9d","creationCodeBytes":19030,"deployedCodeBytes":18760},{"name":"VaultFactoryNoFee","path":"src/VaultFactoryNoFee.sol","abiHash":"132df679a2442911b35d20dda49d9691a60bd41a45bd9ac0ac2a120e8f46019c","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"33c5f5110afe04bb004e5e2278eeabe4f5f642150ebfff51b4754a76a3068770","creationCodeHash":"7769cf7e0d41d592d1d1b89dcd897ee84b069314b9cc33c67cc19b90bc1d72fd","deployedCodeHash":"5add850a4c51e9cc9e31a1cfcbd8263b74b77c9746a4dc64d2b963d91c34fc9d","creationCodeBytes":18842,"deployedCodeBytes":18760},{"name":"VestingVault","path":"src/VestingVault.sol","abiHash":"fd702f2c43a3c1b37d0982a3dab0fe864b98f16a4a0196ba3db5d0cce5ce123b","opcodes":{"callcode":false,"delegatecall":false,"selfdestruct":false},"metadataHash":"a0150c4a85827f7820211b2b23a6c50ddbbc01ec7cf580e194f2f3f5ad9e2da2","creationCodeHash":"009e2e145e3401aed13952313e7fef847efed20ddb5fb7c9175550c9dd5a9429","deployedCodeHash":"55a228c472c12f1717f8315dcb8f0c6737b9d9d8a1fa7746f72c692b6275b5ba","creationCodeBytes":5355,"deployedCodeBytes":4672}],"manifest":{"kind":"evm_contracts","notes":"Robinhood Chain (chain id 4663) copy of the audited IMD Vault factory, Ethereum launch 2244 (VaultFactory at 0xdbaff609cd0500527a2a102f5cbbbbc70fd2ff5b). The brief's deployment is src/VaultFactory.sol with imd_ = 0x0000000000000000000000000000000000000000 and feeRecipient_ = 0x0000000000000000000000000000000000000000. The manifest schema refuses the zero address as a constructor word, so the accepted tree deploys it as VaultFactoryNoFee (src/VaultFactoryNoFee.sol): a zero-argument subclass whose constructor is exactly VaultFactory(IERC20(address(0)), address(0)) and which adds and overrides nothing. Its deployed runtime is byte for byte that of new VaultFactory(IERC20(address(0)), address(0)), with the same immutables and constants (test_NoFeeFactoryIsTheAuditedFactoryWithZeroArguments, test_NoFeeFactoryCreatesVaultsAndTakesNoFeeOnRobinhood). src/VaultFactory.sol is unchanged. With imd zero the factory charges no fee here and its creation paths never call a token; projects pay their one-time 5 IMD on the Ethereum factory with payFor(4663, token or vault), and payFor reverts NoFeeOnThisChain on this copy. The factory has no owner, admin, pause, upgrade or emergency withdrawal, stores no msg.sender or tx.origin, and holds no funds; the constructor is nonpayable, stores two zero words and calls no contract, so it deploys on an empty chain. It deploys VestingVault and TreasuryVault itself with new (no proxies, DELEGATECALL, CALLCODE or SELFDESTRUCT in the factory or either vault; runtime 18,984 bytes). Checked before this manifest: forge build and the full suite (118 tests, FOUNDRY_FUZZ_SEED as the verifier's) pass, and a scratch rehearsal of the protected floor (create2 of VaultFactoryNoFee with empty constructor args from a factory contract on chain 4663, then one open vesting vault and one open treasury) passes the runtime size and opcode checks. Vault rules, unchanged: open vesting vaults (createLaunchVesting) and treasuries created with projectToken zero use their own address as the fee key and can be named as a launch's remainderTo; an open vesting vault vests every token it receives on the same schedule, accounted per token, with the unlock starting at the later of start plus cliff and the token's recorded arrival. Vesting duration is at least 28 days after the cliff, so no schedule unlocks more than 25% in a week, and the duration can only grow; a new beneficiary takes over after 7 days. Treasury withdrawals are queued by the manager, execute after the delay (at least 24h, at most 30 days) and before a fixed expiry, only to an allowed destination, and at most rateBps (25% ceiling) of an asset's balance leaves per fixed 7-day epoch (43.75% across an epoch boundary, as documented). Delay can only grow, rate only shrink, destinations only be removed, and a pending manager waits the current delay. The registry records creatorOf each vault and the creation events carry the creator and the amount actually received. Nothing needs to be called after deployment.","contracts":[{"contract":"VaultFactoryNoFee","constructorArgs":[]}]},"manifestError":null},"attestationFailure":null,"deployFailure":null,"policyVersion":28,"economics":null,"poolFee":null,"requester":"0x75df3d2e7a1d23021e5d7ef06312d13009e9bbb8","admissionChecks":[{"name":"provenance","detail":"9 node(s) accepted at 1ba921a5","status":"passed"},{"name":"findings","detail":"9 accepted submission(s), no unresolved blocking findings","status":"passed"},{"name":"independent_review","detail":"1 independent review(s)","status":"passed"},{"name":"bytecode","detail":"4 contract(s) clean and reproducible","status":"passed"},{"name":"manifest","detail":"1 application contracts; no protocol token or pool","status":"passed"},{"name":"protected_invariants","detail":"invariants-9c691c05ee3c: Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.51ms (4.35ms CPU time)","status":"passed"},{"name":"economics","detail":"policy explicitly selects no on-chain contributor rewards","status":"passed"}],"assurances":[],"logo":null,"seeded":null,"createdAt":"2026-10-19T17:48:00.172Z","updatedAt":"2026-10-19T17:48:51.457Z","jobs":[{"id":"64ce1d7b-85d2-42cf-a196-0dea01c6cb65","objective":"Deploy the audited IMD Vault factory on Robinhood Chain, unchanged. This is the exact code audited and deployed on Ethereum mainnet in launch 2244 (VaultFactory at 0xdbaff609cd0500527a2a102f5cbbbbc70fd2ff5b). Deploy exactly src/VaultFactory.sol with constructor arguments: imd_=0x0000000000000000000000000000000000000000, feeRecipient_=0x0000000000000000000000000000000000000000. With imd_ zero this copy charges no fee on Robinhood; projects pay their one-time 5 IMD on the Ethereum factory with payFor(4663, token or vault). Do not change any source file: the audit is done; only confirm it builds, its tests pass, and deploy it.","state":"completed","attachedAt":"2026-10-19T17:48:00.172Z"}],"artifacts":[{"role":"other","name":"VaultFactoryNoFee","address":"0x349056e0e8f333ce3300df09afe44dd8160ba8dd","creationCodeHash":"7769cf7e0d41d592d1d1b89dcd897ee84b069314b9cc33c67cc19b90bc1d72fd","txHash":"0xa8195965dc33e601c2568d809236152d5b83d2f67c5b6cbabd79d83ecce67703","blockNumber":92803082,"verifiedAt":"2026-10-19T17:49:08.805Z","verifyFailure":null}],"allocations":[]}