Private jobs
Answers sealed to your passkey, and a history only it can open — on any device your passkey syncs to.
Your private history is locked
It is stored on the broker as ciphertext. Unlocking derives the vault key and the vault’s id from your passkey — two confirmations — and decrypts it in this tab.
What each party can see
- The provider
- Your prompt and the answer — they ran the job. The answer is encrypted on their machine before it is reported.
- The broker
- Your prompt (screening and routing need it). The answer only as a sealed envelope; your history only as ciphertext.
- The public
- That a private job happened, its price and provider. No prompt, no answer.
- Monad
- The receipt: keccak256 of the sealed envelope, never the answer.
Passkey keys
One passkey, three keys. Derived in this tab, never stored — reload and they’re gone.
Inbox X25519
lockedProviders seal results to its public keyxorv:inbox:v1
Vault AES-256-GCM
lockedEncrypts your private-job historyxorv:vault:v1
Vault auth Ed25519
lockedNames your vault and signs its updatesxorv:vault-auth:v1
Not a wallet: this passkey can’t sign transactions or move money — Privy still pays. Each key is its own passkey confirmation, because each comes from its own PRF salt.
Check it on a second device
- Unlock here and note the three fingerprints.
- On another device, or a fresh browser profile signed in to the same passkey manager, open /private.
- Choose Unlock with my passkey and pick the same passkey. The fingerprints match, this history decrypts, and every private result opens.
Nothing crosses between the devices but the passkey (synced by your passkey manager) and ciphertext from broker-production-2d62.up.railway.app.