Encryption demo live Wallet delivery in devnet beta

Sealed for one wallet.

Qapsule encrypts files in your browser with hybrid post-quantum cryptography. Only the recipient's key opens them, and they're built to stay closed even if someone stores them until quantum computers can attack them.

How it works

One file, four moves.

  1. 01

    Your file

    You drop a file or write a message. Nothing leaves your device while it's still readable.

  2. 02

    Two key exchanges

    A new file key is wrapped with the recipient's public key using X25519 and ML-KEM-768 together. An attacker has to break both.

  3. 03

    The seal closes

    The file is encrypted with ChaCha20-Poly1305 in your browser. The file name goes inside, and one changed bit makes it fail to open.

  4. 04

    Delivered to a wallet

    The sealed file goes to public storage, and a signed record on Solana reaches the recipient's inbox. Devnet beta for now.

The problem

Encrypted today, readable later.

Anyone can copy encrypted data now and keep it. That attack is called harvest now, decrypt later. Waiting costs little, and sensitive files can stay sensitive for decades.

Today If large quantum computers arrive

Classical key exchange only

The contract is signed. Payment goes out Friday.

Shor's algorithm could break the key exchange, so the old copy could be opened.

Qapsule's hybrid

k7Vq2mXe+Rb0/zNf8sUa1YcHt4LwP9dGj3oKiE6nTr==

An attacker would also have to break ML-KEM-768, which was designed to resist that attack.

An illustration of the idea, not a measurement.

Live demo

Try the encryption. It's real.

This is the actual hybrid cryptography, running on your device. This page's security policy blocks it from making network requests, so what you enter isn't sent anywhere. Keys vanish on reload, so don't use it for anything you need to keep.

Waiting for keys

1

Create the recipient's keys

2

Seal something for them

Or choose a file, up to 25 MB.
3

Try to open it

Nothing opened yet.

Under the hood

Standard cryptography, nothing invented.

Key exchange

X25519 + ML-KEM-768

Hybrid: an attacker has to break both. ML-KEM is the NIST standard FIPS 203.

File format

age v1

An open format for file encryption, rather than a custom one.

Implementation

age-encryption

The TypeScript age library, built on the noble cryptography libraries.

On Solana

Memo program

Records use a standard program that already exists, so no custom contract holds funds or state.

Storage

Irys

Sealed files and public keys, with their hashes recorded on Solana and checked on download.

A choice worth explaining

Why your key isn't derived from your wallet

Deriving it from a wallet signature would be easier, and it would quietly break the protection. Solana's Ed25519 signatures are deterministic, so anyone who recovers a wallet's private key could repeat the signature and rebuild the derived key. Qapsule generates its key separately.

Private and public

Where each piece lives.

PieceWhereWho can read it
Original fileSender's and recipient's devicesPrivateOnly those two
Private keyA password-protected file you keepPrivateOnly you
Public keyPublic storage, with its hash signed on SolanaPublicEveryone, by design
Sealed filePublic storage, with its hash on SolanaPublicAnyone can download it, only the recipient can open it
Sender, hashed recipient, time, sealed sizeSolanaPublicAnyone who knows a wallet can check its inbox

Security, plainly

What it protects, and what it doesn't.

Protects

  • The contents of a sealed file, against today's attacks and stored-for-later quantum attacks on the key exchange
  • The integrity of the file: a changed bit fails to open
  • Your funds, by staying away from them: Qapsule is designed never to hold or move them

Doesn't protect

  • Your wallet or your SOL, which still rely on Ed25519
  • Who sent to which wallet, when, and how large: delivery metadata is public
  • A lost private key: it can't be recovered, and neither can the files sealed to it
  • Files you want gone: a sealed file on permanent storage can't be deleted
  • Future deliveries after a wallet key is broken: an attacker could replace the registered key, though older files stay sealed

Not audited yet. Neither Qapsule nor its post-quantum dependency has had an independent security audit, and JavaScript can't guarantee constant-time execution. Please don't rely on it for high-stakes secrets yet.

Status

What exists, and what's next.

Live

  • Hybrid encryption in the browser
  • Text and files up to 25 MB

Devnet beta

  • Wallet connection
  • Keys published and signed on Solana
  • Sending to a wallet address, and an inbox

Next

  • Mainnet
  • Published source code
  • .sol names and several recipients
  • Private links with no public inbox

Seal your first file.