A permanent place for your data
Store your files forever, verifiably, onchain.
Read /skill.md and store this file permanently with ChainKeep.A safe place for your agent’s memory. Permanent, encrypted storage your agent can use in one call.
Everything a file needs to last
Your file goes onchain once and stays there: encrypted on your device, checkable byte for byte, and yours to share.
Stored for good
Pay once and your file is written onchain in chunks. No subscription, no server to keep running, nothing to renew.
Encrypted before it leaves
Files are sealed with AES-256-GCM in your browser. Only the recovery key opens them, and it never reaches a server.
Check every byte
Each file’s SHA-256 is recorded on the chain. Opening it hashes the bytes again, so you know nothing was swapped or lost.
Share with a link
Send a link to a public file, or include the key for an encrypted one. The key stays after the # and is never sent to a server.
1Choose
A file or a whole folder. Pick anything up to 100 MB. A folder of up to 1,000 files is zipped into one archive, with a manifest listing every file, so it is stored and opened as one.
2Encrypt
Sealed on your device. If you turn on encryption, your browser seals the file with AES-256-GCM before anything is sent. The chain only ever sees ciphertext.
3Split
Cut into 120 KiB chunks. The file is split into equal chunks, sized so one chunk and its proof fit in a single transaction.
4Commit
One fingerprint for the whole file. Every chunk is hashed with SHA-256 and the hashes are folded into a Merkle root. That root goes onchain first, together with your one-time payment.
5Write
Chunk by chunk, into blocks. Each chunk is sent in its own transaction with a proof. The contract checks it against the root, so a wrong or tampered chunk is rejected, and notes which block holds it.
6Read back
Reassembled and checked. To open a file, ChainKeep looks up which blocks hold its chunks, reads them back in order and hashes the result. It only opens if every byte matches.
What people store
One permanent home for files, backups and agent memory — verified on the way in and on the way out.
- Agent memoryKeep an agent’s decisions and context across sessions, encrypted
- Encrypted backupsDocuments and configs only your recovery key can open
- NFT collectionsServe images and metadata from one uploaded folder
- Direct linksUse a public file as an image src or a download link
- Whole foldersUp to 1,000 files stored and verified as one upload
- Proof of existenceThe block a file landed in shows when it was stored
- Verified downloadsEvery byte checked against its onchain Merkle root
- DatasetsResearch and training data up to 100 MB, unchangeable once stored
- Records that lastReceipts, reports and logs nobody can edit or delete
- Private sharingSend a link with the key after the #, never seen by a server
- Smart accountsUniversal Profiles and multisigs can own files
- AutomationThree calls from a script or an agent, one payment each
Questions
How onchain storage compares, what it costs, and what it can and cannot promise.
Is my file really onchain?
Yes. Every chunk is sent in a transaction to the ChainKeep contract and recorded in the chain’s history as an event log. The contract keeps the file’s Merkle root, its size and the block that holds each chunk. There is no pinning service or separate storage network behind it.
How is this different from IPFS?
IPFS finds files by their hash, but a file only stays available while some node keeps hosting (“pinning”) it. When a pinning service closes or a project stops paying, the file can disappear even though links to it still exist. ChainKeep writes the bytes to the chain itself and you pay once, so nothing depends on someone renewing a plan.
Why do NFT images go missing, and how does this help?
Most NFTs keep only the token onchain; the image and metadata live elsewhere, usually behind a pinned IPFS hash or a company’s server. When that hosting goes, the token remains but shows a broken image. Upload a collection here and its images and metadata are stored onchain too, served at a direct link for marketplaces and wallets.
Is it permanent?
As permanent as the chain’s history. The bytes live in event logs, which archive nodes, block explorers and most public RPCs serve today; some clients plan to drop old history over time. The fingerprint and block pointers stay in contract storage, the relayer keeps a verified copy, and anyone holding the bytes can serve them again, checked against the chain.
Why does it cost more than cloud storage?
You pay network gas once for every byte, instead of a monthly fee. That makes it a fit for small, valuable data: agent memory, configs, records, NFT metadata and art, rather than video libraries. You see the exact price before you sign, and there is nothing to renew.
Who can read my files?
Encrypted files are sealed in your browser with AES-256-GCM and a fresh key, so only someone holding the recovery key can open them. The chain is public, so the file’s size, owner address and upload time are visible. Unencrypted files can be read by anyone.
What if I lose my recovery key?
The file cannot be opened again. The key never leaves your device, so nobody, including us, can recover it. Download it or copy it somewhere safe before you leave the upload page.
Should my agent store all of its memory here?
Usually not. Keep scratch notes and recent chat on a fast local store, and checkpoint what must survive: summaries, preferences, decisions and skills. Those are small, valuable and worth keeping verifiable for years.
What happens if ChainKeep shuts down?
Your files stay on the chain. The contract has no delete function and no upgrade switch, so nobody can remove or change a completed file. Anything that can query the chain can read it back with its file ID and check it against the onchain fingerprint.
Give your agent a memory
Paste the prompt into your agent, or let it run the CLI.
Read /skill.md and store this file permanently with ChainKeep.