Keep funds in a Q-Vault
Every Solana wallet address is an Ed25519 public key. A Q-Vault holds your SOL and tokens under two keys: your wallet's Ed25519 key for everyday spending, and a Falcon-512 key, a post-quantum signature scheme, that you keep offline. The vault names a trigger rung. When that rung reads Solved, the vault stops accepting Ed25519 for good, and only the Falcon-512 key can move funds.
The two paths
| Ed25519 (your wallet) | Falcon-512 (your key file) | |
|---|---|---|
| Before the trigger falls | Instant spends up to the instant budget; larger spends wait out the delay | Spends at any time; cancels any queued Ed25519 spend |
| After the trigger falls | Rejected, permanently | Spends at any time |
| Assets | The vault's one instant asset (SOL in the app) | SOL, USDC and other supported tokens |
1. Create your Falcon-512 key
On Q-Vault, choose Generate a key. The key is made in your browser and held only in that page's memory. Choose Save the secret file and keep the file offline: it is the only way to move funds once the trigger rung falls. The app never stores or sends it. To use the key later, choose Load a key file.
| Size | |
|---|---|
| Falcon-512 public key | 897 bytes |
| Falcon-512 signature | 666 bytes |
2. Create the vault
With a key loaded, set:
- Trigger rung: the rung whose fall closes the Ed25519 path. A lower rung closes it earlier.
- Delay: how long a larger Ed25519 spend waits before it can execute. During the delay your Falcon-512 key can cancel it.
- Instant budget: how much SOL Ed25519 may spend at once without waiting.
Choose Create and confirm the key. The wallet approves eight transactions at once: the vault, the key written in chunks, and a Falcon-512 signature over the vault that proves you hold the key. A vault whose key is not confirmed can't take Falcon spends, so the app does both in one go. Fund the vault only after it shows Falcon Confirmed.
3. Deposit
Pick SOL or USDC, enter an amount and choose Deposit.
4. Spend with Ed25519
Enter an amount and a recipient and choose Spend with Ed25519.
- Within what is left of the instant budget, the spend goes out at once.
- The budget refills only after a full delay passes with no instant spend. A stolen wallet key can take at most one budget's worth before you notice.
- A spend larger than the instant limit is queued. It shows under the vault with the time it unlocks; choose Execute after that time. Until then, Cancel with Falcon stops it.
- A spend within the limit but above what is left of the budget waits until the budget refills.
- Ed25519 moves only the vault's instant asset. Other assets, USDC included, move with the Falcon-512 key.
5. Spend with Falcon-512
Load your key file, enter an amount and a recipient, and choose Spend with Falcon. The wallet approves four transactions: the signature is staged on chain in chunks, then the spend executes. A Falcon spend needs no delay and works before and after the trigger falls.
Each Falcon signature covers the exact action (the vault, the asset, the amount, the recipient), a nonce and the vault's own instance salt, so it can't be replayed, retargeted or reused on another vault or network.
When the trigger falls
The moment the trigger rung reads Solved, the vault refuses every Ed25519 spend, including queued ones. Trip records that permanently in the vault; anyone can call it, and the app offers it on any vault whose trigger has fallen. From then on, only your Falcon-512 key spends.
The vault program also lets the owner lock a vault at any time with its lockdown instruction, which has the same effect.
Keeping the key safe
- Keep the secret file offline, and keep a second copy.
- Load it only into the Canary app, only when you spend.
- The vault program supports rotating to a new Falcon-512 key: the current key signs the rotation and the new key proves you hold it.
- Before the trigger falls, your wallet can always move the vault's SOL, its instant asset, through the instant budget and the queue. USDC and other assets move only with the Falcon-512 key, so keep the second copy of the file somewhere separate.