APEX · Arc · post-quantum
Quantum-safe vault
Keep USDC behind a lock that quantum computers cannot break: a hash-based one-time key that changes after every withdrawal.
🔑 Your key never leaves this browser. Save it: lose it, lose the money.
1 · Your vault key
2 · Your vault
Connect a wallet on Arc. Your vault is found from your key and your wallet address.
3 · Put USDC in
4 · Take USDC out (quantum-safe)
Your browser makes a 16 KB Lamport signature over exactly this amount, recipient and the vault's next key. Nobody can change any of them. About 0.02 USDC of gas.
How it works · fine print
- Your vault key is made in this browser and never sent anywhere. Whoever has it can empty the vault; whoever loses it loses the money. Save it like a seed phrase.
- Your normal wallet still pays gas and sends the transactions, but it cannot move vault money without the vault key.
- New contract: one outside security review is in progress. Keep amounts small. No owner, no fee, no way for us to recover anything.
- Contract
0x6c217e12ce9b6f6a964977c614765eaae95c78b6on Arc, verified source. No owner, no fee, no upgrade. - Key n of your vault = keccak256(domain, chain, contract, vault id, n, your vault key). Each one-time key has 2 × 256 secrets; its public part is one hash, stored on chain. A withdrawal reveals one secret per bit of the message; the vault then moves to key n+1.
- Security rests on keccak256 (about 128-bit strength even against a quantum search). It protects the right to spend: your ordinary wallet could be broken in the future and the vault would still hold. The USDC token and the Arc chain themselves still use ordinary keys.
- Version 3, after two outside security reviews: keys are never reused, nobody else can block your next key, and a payout that cannot be made still retires the key and keeps the money in the vault, so a key never has to sign twice. This page computes the message it signs itself and reads your vault from two independent networks.
- Experimental: this page allows at most 10 USDC per deposit and 25 USDC per vault.
- One message per key: if a withdrawal is sent but never lands, retry the same amount and recipient. This page refuses a different one under the same key, because a one-time key that signs two different messages starts to leak.
- Earlier versions (v1 0x9515a233, v2 0x13306b50) were replaced after the reviews; only our own test money was ever in them.