{"id":"8e88e523-cec3-48c1-b784-daa1e7c8671a","objective":"MNEMO. Tagline: \"Your AI's memory, sealed on chain\".\nToken: name \"Mnemo\", symbol \"MNEMO\", fixed supply, plain transfers, no tax, no mint. The launch pool pairs MNEMO with IMD.\n\nWhat it is\nYour AI remembers you, and so does whoever runs its servers. MNEMO keeps the memory yourself: notes are encrypted in your browser with a key only your wallet can derive, stored on Ethereum as ciphertext, and loaded into any model you choose. Switch from Claude to GPT to a local model and your AI still knows you. Nobody else can read a word. Every note you seal burns MNEMO.\n\nWhat each contract does\nMnemoVault stores sealed notes as events, burns the stamp, tracks each wallet's key epoch, and records which agent wallets a user has granted access to. No contract ever sees plaintext or keys.\n\nWho can call what\nAnyone with MNEMO: write(bytes[] notes, uint32 epoch) for their own vault.\nA note's owner: forget(uint256[] ids), rotate().\nA vault owner: grant(address agent, bytes sealedKey), revoke(address agent). revoke also rotates the owner's epoch.\nA granted agent: writeFor(address owner, bytes[] notes, uint32 epoch), paying the stamp from its own MNEMO.\nAnyone: register(bytes32 x25519PublicKey) so others can grant it access.\nOwner (launch owner, Ownable2Step, renounce disabled): setStamp(uint256) within 100 to 100,000 MNEMO per note, for future writes only. No pause, no upgrade, no other powers.\n\nNumbers the contracts enforce\nStamp: 2,000 MNEMO per note at launch, sent to 0x000000000000000000000000000000000000dEaD in the same call.\nA note is at most 2,048 bytes; at most 16 notes per call; epoch must equal the writer's current epoch for that vault.\nNote ids count up per contract from 1. Events: Noted(owner, id, epoch, ciphertext), Forgotten(owner, id), Rotated(owner, epoch), Granted(owner, agent, epoch, sealedKey), Revoked(owner, agent), KeyRegistered(account, key), StampChanged(old, new).\nViews: epochOf(owner), isGranted(owner, agent), notesTotal(), burnedTotal().\n\nOutside services and values\nNone on chain. In the browser: @noble/hashes HKDF-SHA256, @noble/ciphers XChaCha20-Poly1305 and @noble/curves x25519, all bundled. The vault key is HKDF(personal_sign(\"MNEMO vault key v1 for {address}\"), epoch); EOAs only, said plainly in the UI. Chat requests go straight from the browser to the provider the user picks (Anthropic, OpenAI, any OpenAI-compatible endpoint, or a model server on the user's own computer whose address the user types in); the site never proxies them. The site ships no private or local addresses of its own.\n\nWhat the site shows\nStatic IPFS site, label mnemo, title \"MNEMO\", public RPCs with fallback, no backend, no analytics, every script and font bundled.\nHome: the tagline, one line under it, \"Open your vault\", and one canvas centrepiece: drifting dots that gather into a sealed capsule when the vault opens.\nChat: provider picker, API key kept in memory unless the user ticks \"Remember on this device\", the conversation, and a side panel \"What MNEMO remembers\" with the decrypted notes. After a reply the site proposes notes to remember; the user edits, approves and seals them in one transaction with the MNEMO cost shown first.\nAgents: register a key, grant or revoke an agent wallet, and docs with llms.txt plus a 40-line script that reads and writes a vault.\nNumbers: network totals only (notes sealed, MNEMO burned, vaults opened). Never list other wallets or their notes.\nFAQ: what is on chain (ciphertext only), who sees prompts (the provider you pick, nobody with a local model), what forget and rotate do (old ciphertext stays on chain but rotation makes later notes unreadable to revoked agents), EOAs only.\n\nWhat a connected wallet can do\nOpen the vault with one signature, chat, seal, edit, forget and rotate notes, grant and revoke agents, buy and sell MNEMO in the launch pool, and export its decrypted notes as a JSON file.\n\nLook and feel\nLight sky paper #E9F1F7, ink #0F1A26, one signal accent #FF5B2E. Newsreader for headlines, Spline Sans Mono for everything else. Square buttons with a hard 2px ink shadow, no gradients, no glow, no pills. Notes appear as ciphertext that unscrambles into words when the vault opens; that is the only other animation.\n\nToken name: Mnemo\nToken symbol: MNEMO","status":"completed","waitingForHosting":false,"failure":null,"chainId":1,"createdAt":"2026-10-18T03:19:42.276Z","updatedAt":"2026-10-18T04:25:14.969Z","contracts":{"id":"9529361a-3e73-4fbe-8297-2ced47e49a86","state":"completed","failure":null,"repoUrl":"https://github.com/identity-md-launches/launch-2136-workflow-contract-stage-context","commit":"02949a294df5425b4ebe8d4d25b68063c8934968"},"frontend":{"id":"6897884c-22dc-41cc-accf-063cac692ead","state":"completed","failure":null,"repoUrl":"https://github.com/identity-md-launches/launch-2137-workflow-frontend-stage-context","commit":"2f34afe8358a8351a4f677aab475f26826c2ad04"},"frontendPlan":{"skill":"frontend-for-contract","objective":"MNEMO. Tagline: \"Your AI's memory, sealed on chain\".\nToken: name \"Mnemo\", symbol \"MNEMO\", fixed supply, plain transfers, no tax, no mint. The launch pool pairs MNEMO with IMD.\n\nWhat it is\nYour AI remembers you, and so does whoever runs its servers. MNEMO keeps the memory yourself: notes are encrypted in your browser with a key only your wallet can derive, stored on Ethereum as ciphertext, and loaded into any model you choose. Switch from Claude to GPT to a local model and your AI still knows you. Nobody else can read a word. Every note you seal burns MNEMO.\n\nWhat each contract does\nMnemoVault stores sealed notes as events, burns the stamp, tracks each wallet's key epoch, and records which agent wallets a user has granted access to. No contract ever sees plaintext or keys.\n\nWho can call what\nAnyone with MNEMO: write(bytes[] notes, uint32 epoch) for their own vault.\nA note's owner: forget(uint256[] ids), rotate().\nA vault owner: grant(address agent, bytes sealedKey), revoke(address agent). revoke also rotates the owner's epoch.\nA granted agent: writeFor(address owner, bytes[] notes, uint32 epoch), paying the stamp from its own MNEMO.\nAnyone: register(bytes32 x25519PublicKey) so others can grant it access.\nOwner (launch owner, Ownable2Step, renounce disabled): setStamp(uint256) within 100 to 100,000 MNEMO per note, for future writes only. No pause, no upgrade, no other powers.\n\nNumbers the contracts enforce\nStamp: 2,000 MNEMO per note at launch, sent to 0x000000000000000000000000000000000000dEaD in the same call.\nA note is at most 2,048 bytes; at most 16 notes per call; epoch must equal the writer's current epoch for that vault.\nNote ids count up per contract from 1. Events: Noted(owner, id, epoch, ciphertext), Forgotten(owner, id), Rotated(owner, epoch), Granted(owner, agent, epoch, sealedKey), Revoked(owner, agent), KeyRegistered(account, key), StampChanged(old, new).\nViews: epochOf(owner), isGranted(owner, agent), notesTotal(), burnedTotal().\n\nOutside services and values\nNone on chain. In the browser: @noble/hashes HKDF-SHA256, @noble/ciphers XChaCha20-Poly1305 and @noble/curves x25519, all bundled. The vault key is HKDF(personal_sign(\"MNEMO vault key v1 for {address}\"), epoch); EOAs only, said plainly in the UI. Chat requests go straight from the browser to the provider the user picks (Anthropic, OpenAI, any OpenAI-compatible endpoint, or a model server on the user's own computer whose address the user types in); the site never proxies them. The site ships no private or local addresses of its own.\n\nWhat the site shows\nStatic IPFS site, label mnemo, title \"MNEMO\", public RPCs with fallback, no backend, no analytics, every script and font bundled.\nHome: the tagline, one line under it, \"Open your vault\", and one canvas centrepiece: drifting dots that gather into a sealed capsule when the vault opens.\nChat: provider picker, API key kept in memory unless the user ticks \"Remember on this device\", the conversation, and a side panel \"What MNEMO remembers\" with the decrypted notes. After a reply the site proposes notes to remember; the user edits, approves and seals them in one transaction with the MNEMO cost shown first.\nAgents: register a key, grant or revoke an agent wallet, and docs with llms.txt plus a 40-line script that reads and writes a vault.\nNumbers: network totals only (notes sealed, MNEMO burned, vaults opened). Never list other wallets or their notes.\nFAQ: what is on chain (ciphertext only), who sees prompts (the provider you pick, nobody with a local model), what forget and rotate do (old ciphertext stays on chain but rotation makes later notes unreadable to revoked agents), EOAs only.\n\nWhat a connected wallet can do\nOpen the vault with one signature, chat, seal, edit, forget and rotate notes, grant and revoke agents, buy and sell MNEMO in the launch pool, and export its decrypted notes as a JSON file.\n\nLook and feel\nLight sky paper #E9F1F7, ink #0F1A26, one signal accent #FF5B2E. Newsreader for headlines, Spline Sans Mono for everything else. Square buttons with a hard 2px ink shadow, no gradients, no glow, no pills. Notes appear as ciphertext that unscrambles into words when the vault opens; that is the only other animation.\n\nToken name: Mnemo\nToken symbol: MNEMO","acceptanceCriteria":[]},"launch":{"id":"059e79a0-45ab-4175-80b9-2370dcae1668","status":"live"},"validation":{"status":"passed","attempts":1,"startedAt":"2026-10-18T04:24:59.322Z","deadlineAt":"2026-10-19T04:24:59.322Z","nextAttemptAt":null,"report":{"scope":"Read-only HTTP checks of the named and immutable entrypoints, declared static asset hashes and HTML references, published deployment configuration and ABI hashes, and operator-RPC chain/code existence. Does not execute JavaScript, prove the app consumes the configuration, test browser/wallet interactions, validate quotes or simulate/broadcast swaps.","checks":[{"id":"deployment-config","detail":"Published launch, chain, source, attestation and exact contract configuration match the trusted handoff.","status":"passed"},{"id":"static-assets","detail":"All 17 declared assets are reachable and match their SHA-256 digests.","status":"passed"},{"id":"html-assets","detail":"Parsed entrypoint resource references stay within the declared relative export.","status":"passed"},{"id":"named-entrypoint","detail":"The named website did not answer yet; ENS points the name at this CID, and the site is live on IPFS as verified above.","status":"passed"},{"id":"named-assets","detail":"Served from the verified CID; the named website is not required for the site to be live.","status":"passed"},{"id":"contract-abis","detail":"Every published contract ABI matches its attested canonical Keccak hash.","status":"passed"},{"id":"chain-state","detail":"The operator RPC reports the expected chain and nonempty bytecode at every deployed contract address.","status":"passed"}],"status":"passed","summary":"Published site availability, declared assets, deployment configuration, ABIs and chain/code checks passed.","version":1,"checkedAt":"2026-10-18T04:25:04.411Z","retryable":false}},"brief":"# Approved workflow\n\nMNEMO. Tagline: \"Your AI's memory, sealed on chain\".\nToken: name \"Mnemo\", symbol \"MNEMO\", fixed supply, plain transfers, no tax, no mint. The launch pool pairs MNEMO with IMD.\n\nWhat it is\nYour AI remembers you, and so does whoever runs its servers. MNEMO keeps the memory yourself: notes are encrypted in your browser with a key only your wallet can derive, stored on Ethereum as ciphertext, and loaded into any model you choose. Switch from Claude to GPT to a local model and your AI still knows you. Nobody else can read a word. Every note you seal burns MNEMO.\n\nWhat each contract does\nMnemoVault stores sealed notes as events, burns the stamp, tracks each wallet's key epoch, and records which agent wallets a user has granted access to. No contract ever sees plaintext or keys.\n\nWho can call what\nAnyone with MNEMO: write(bytes[] notes, uint32 epoch) for their own vault.\nA note's owner: forget(uint256[] ids), rotate().\nA vault owner: grant(address agent, bytes sealedKey), revoke(address agent). revoke also rotates the owner's epoch.\nA granted agent: writeFor(address owner, bytes[] notes, uint32 epoch), paying the stamp from its own MNEMO.\nAnyone: register(bytes32 x25519PublicKey) so others can grant it access.\nOwner (launch owner, Ownable2Step, renounce disabled): setStamp(uint256) within 100 to 100,000 MNEMO per note, for future writes only. No pause, no upgrade, no other powers.\n\nNumbers the contracts enforce\nStamp: 2,000 MNEMO per note at launch, sent to 0x000000000000000000000000000000000000dEaD in the same call.\nA note is at most 2,048 bytes; at most 16 notes per call; epoch must equal the writer's current epoch for that vault.\nNote ids count up per contract from 1. Events: Noted(owner, id, epoch, ciphertext), Forgotten(owner, id), Rotated(owner, epoch), Granted(owner, agent, epoch, sealedKey), Revoked(owner, agent), KeyRegistered(account, key), StampChanged(old, new).\nViews: epochOf(owner), isGranted(owner, agent), notesTotal(), burnedTotal().\n\nOutside services and values\nNone on chain. In the browser: @noble/hashes HKDF-SHA256, @noble/ciphers XChaCha20-Poly1305 and @noble/curves x25519, all bundled. The vault key is HKDF(personal_sign(\"MNEMO vault key v1 for {address}\"), epoch); EOAs only, said plainly in the UI. Chat requests go straight from the browser to the provider the user picks (Anthropic, OpenAI, any OpenAI-compatible endpoint, or a model server on the user's own computer whose address the user types in); the site never proxies them. The site ships no private or local addresses of its own.\n\nWhat the site shows\nStatic IPFS site, label mnemo, title \"MNEMO\", public RPCs with fallback, no backend, no analytics, every script and font bundled.\nHome: the tagline, one line under it, \"Open your vault\", and one canvas centrepiece: drifting dots that gather into a sealed capsule when the vault opens.\nChat: provider picker, API key kept in memory unless the user ticks \"Remember on this device\", the conversation, and a side panel \"What MNEMO remembers\" with the decrypted notes. After a reply the site proposes notes to remember; the user edits, approves and seals them in one transaction with the MNEMO cost shown first.\nAgents: register a key, grant or revoke an agent wallet, and docs with llms.txt plus a 40-line script that reads and writes a vault.\nNumbers: network totals only (notes sealed, MNEMO burned, vaults opened). Never list other wallets or their notes.\nFAQ: what is on chain (ciphertext only), who sees prompts (the provider you pick, nobody with a local model), what forget and rotate do (old ciphertext stays on chain but rotation makes later notes unreadable to revoked agents), EOAs only.\n\nWhat a connected wallet can do\nOpen the vault with one signature, chat, seal, edit, forget and rotate notes, grant and revoke agents, buy and sell MNEMO in the launch pool, and export its decrypted notes as a JSON file.\n\nLook and feel\nLight sky paper #E9F1F7, ink #0F1A26, one signal accent #FF5B2E. Newsreader for headlines, Spline Sans Mono for everything else. Square buttons with a hard 2px ink shadow, no gradients, no glow, no pills. Notes appear as ciphertext that unscrambles into words when the vault opens; that is the only other animation.\n\nToken name: Mnemo\nToken symbol: MNEMO\n\nThe requester chose this release: source code published to GitHub, website hosted on IPFS, contracts deployed on chain.\n\nMNEMO. Tagline: \"Your AI's memory, sealed on chain\".\nToken: name \"Mnemo\", symbol \"MNEMO\", fixed supply, plain transfers, no tax, no mint. The launch pool pairs MNEMO with IMD.\n\nWhat it is\nYour AI remembers you, and so does whoever runs its servers. MNEMO keeps the memory yourself: notes are encrypted in your browser with a key only your wallet can derive, stored on Ethereum as ciphertext, and loaded into any model you choose. Switch from Claude to GPT to a local model and your AI still knows you. Nobody else can read a word. Every note you seal burns MNEMO.\n\nWhat each contract does\nMnemoVault stores sealed notes as events, burns the stamp, tracks each wallet's key epoch, and records which agent wallets a user has granted access to. No contract ever sees plaintext or keys.\n\nWho can call what\nAnyone with MNEMO: write(bytes[] notes, uint32 epoch) for their own vault.\nA note's owner: forget(uint256[] ids), rotate().\nA vault owner: grant(address agent, bytes sealedKey), revoke(address agent). revoke also rotates the owner's epoch.\nA granted agent: writeFor(address owner, bytes[] notes, uint32 epoch), paying the stamp from its own MNEMO.\nAnyone: register(bytes32 x25519PublicKey) so others can grant it access.\nOwner (launch owner, Ownable2Step, renounce disabled): setStamp(uint256) within 100 to 100,000 MNEMO per note, for future writes only. No pause, no upgrade, no other powers.\n\nNumbers the contracts enforce\nStamp: 2,000 MNEMO per note at launch, sent to 0x000000000000000000000000000000000000dEaD in the same call.\nA note is at most 2,048 bytes; at most 16 notes per call; epoch must equal the writer's current epoch for that vault.\nNote ids count up per contract from 1. Events: Noted(owner, id, epoch, ciphertext), Forgotten(owner, id), Rotated(owner, epoch), Granted(owner, agent, epoch, sealedKey), Revoked(owner, agent), KeyRegistered(account, key), StampChanged(old, new).\nViews: epochOf(owner), isGranted(owner, agent), notesTotal(), burnedTotal().\n\nOutside services and values\nNone on chain. In the browser: @noble/hashes HKDF-SHA256, @noble/ciphers XChaCha20-Poly1305 and @noble/curves x25519, all bundled. The vault key is HKDF(personal_sign(\"MNEMO vault key v1 for {address}\"), epoch); EOAs only, said plainly in the UI. Chat requests go straight from the browser to the provider the user picks (Anthropic, OpenAI, any OpenAI-compatible endpoint, or a model server on the user's own computer whose address the user types in); the site never proxies them. The site ships no private or local addresses of its own.\n\nWhat the site shows\nStatic IPFS site, label mnemo, title \"MNEMO\", public RPCs with fallback, no backend, no analytics, every script and font bundled.\nHome: the tagline, one line under it, \"Open your vault\", and one canvas centrepiece: drifting dots that gather into a sealed capsule when the vault opens.\nChat: provider picker, API key kept in memory unless the user ticks \"Remember on this device\", the conversation, and a side panel \"What MNEMO remembers\" with the decrypted notes. After a reply the site proposes notes to remember; the user edits, approves and seals them in one transaction with the MNEMO cost shown first.\nAgents: register a key, grant or revoke an agent wallet, and docs with llms.txt plus a 40-line script that reads and writes a vault.\nNumbers: network totals only (notes sealed, MNEMO burned, vaults opened). Never list other wallets or their notes.\nFAQ: what is on chain (ciphertext only), who sees prompts (the provider you pick, nobody with a local model), what forget and rotate do (old ciphertext stays on chain but rotation makes later notes unreadable to revoked agents), EOAs only.\n\nWhat a connected wallet can do\nOpen the vault with one signature, chat, seal, edit, forget and rotate notes, grant and revoke agents, buy and sell MNEMO in the launch pool, and export its decrypted notes as a JSON file.\n\nLook and feel\nLight sky paper #E9F1F7, ink #0F1A26, one signal accent #FF5B2E. Newsreader for headlines, Spline Sans Mono for everything else. Square buttons with a hard 2px ink shadow, no gradients, no glow, no pills. Notes appear as ciphertext that unscrambles into words when the vault opens; that is the only other animation.\n\nToken name: Mnemo\nToken symbol: MNEMO\n","handoff":{"chainId":1,"poolKey":{"fee":12500,"hooks":"0x784ff9a3ac5d88a30bfff6f7f2a270161fbe6000","currency0":"0x1d60094204ddc52ef1bd35df43c16fb38afcee7c","currency1":"0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7","tickSpacing":60},"repoUrl":"https://github.com/identity-md-launches/launch-2136-workflow-contract-stage-context","version":1,"launchId":"059e79a0-45ab-4175-80b9-2370dcae1668","manifest":{"kind":"evm_project","pool":{"fee":12500,"tickSpacing":60,"initialPrice":"79228162514264337593543950336","pairedCurrency":"0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7"},"notes":"MnemoVault records ciphertext note events, tracks key epochs and agent permissions, and sends an initial stamp of 2,000 MNEMO per note to the burn address. The launch owner may adjust the stamp within the contract's fixed bounds. Ownership transfers require acceptance and renunciation is disabled. Both contracts are configured by their constructors; no initialization calls are required.","token":{"name":"Mnemo","symbol":"MNEMO","contract":"LaunchToken","decimals":18},"contracts":[{"contract":"MnemoVault","constructorArgs":["$token","$owner"]}]},"contracts":[{"name":"LaunchToken","txHash":"0x56de8648185b20a75af49efe375c72ca053918b85a058bc07f20385a7a386845","abiHash":"f36d2fe28b62f817a4fba0b78bb501b41895eada3982280273c063ad8183f577","address":"0x1d60094204ddc52ef1bd35df43c16fb38afcee7c","blockNumber":26216887,"creationCodeHash":"3daa9fd2b09a354c37d48f64c8e5f96cfea77dbc8faf93bcf1e25da757331bc0"},{"name":"MnemoVault","txHash":"0x56de8648185b20a75af49efe375c72ca053918b85a058bc07f20385a7a386845","abiHash":"7f163276daddde296bb5daaf1114a3c12657d057b212a24aef8c4217ba3e7aae","address":"0xeeef849fe7708207c33c8160f854fddcb4e71f28","blockNumber":26216887,"creationCodeHash":"cfb4ef0aa8e81c4dee1452db217646a312f8525080780abd1413dcde9cd2fb03"}],"sourceCommit":"02949a294df5425b4ebe8d4d25b68063c8934968","abiInstructions":"Build ABIs from this exact source commit; compare canonicalKeccak(abi) with abiHash. Verify deployed code on the stated chain before enabling transactions.","attestationHash":"6b98ccbb616f8c47b7d64ca27a12848aa5379caa975d93666e95b475afea1d70"},"site":{"status":"named","cid":"bafybeieslmvq4lvgdgcdwq5vcrpev6ch3cfavorzkxmd3swv6bxtfq5i5q","ensName":"mnemo.site.identitymd.eth","failure":null}}