Upload
Sending files into blockchain via Aetrna
Allows you to upload and efficiently store any type of file inside Ethereum with multiple options such as:
Encryption — symmetrical (password) and asymmetrical (ECIES / MLKEM):
To avoid the exposure of private keys during decryption, MLKEM is a safer alternative -- allows you to generate a separate keypair and declare it on-chain for future use (effectively binding your Ethereum address with MLKEM keypair). We also provide a standalone open source tool for offline decryption.
Password (Argon2id -> AES-256) encryption is also implemented, will require to share the decryption keys off-chain.
Networks -- L1 for permanent storage, impossible to censor, more expensive than L2 (or about the same if you use blobs). L2 is faster and cheaper, but can be easily censored or wiped out - generally not good for permanent storage.
Blobs (EIP-4844) -- cheap temporary storage with all benefits of L1 for 18 days (4096 epochs) in Consensus Layer.
NFT mint -- adds a shortcut to Metamask, the NFT will contain the permanent download key in the metadata, so you can reconstruct / access the files even if the app goes offline.
Relayer (EIP-2771) -- upload files by backend, so you dont have to accept dozens of Metamask popups and potentially break the wallet extension (see known bugs below).
Doc certification -- allows to make documented agreements or contracts with others on-chain, the document itself will contain the signatures of both parties.
Simulation — allows to simulate the uplad for a specific file with specific options to get a near-perfect estimation for the gas costs. It is done via Tenderly.
After upload, the Download key is generated, which essentially mirrors the content of the contract for convenience and is used as a shortcut to reconstruct the file from the blockchain later.
Upload steps
On high level (as of July 2025), the system does the following:
Metadata addition in format:
file_name+separator ::+file_content(If enabled) Encryption with Password, ECIES or MLKEM (this will have a separate page due to complexity).
Data is split into words
Upload routes:
Relayer route — asks for initialization signature via Metamask and then does the meta-transactions (per EIP-2771) on behalf of the user
Metamask routedeprecated
After the process is done, the system collects a
download keywhich could be minted in ERC-1155 token aka NFT, but also is accessible in the contract storage for later use
Example of such NFT is here,
The explaination of Download key will be in Download feature page
Last updated