Skip to content

Zero-Knowledge Architecture

Your keys and your private data live on your device. Flowsta physically cannot access them - and neither can anyone in between.

There is no password anywhere in this system. Your identity is a set of cryptographic keys derived from your 24-word recovery phrase, held on your device in Flowsta Vault. Flowsta's server never sees the phrase, never sees the keys, and stores nothing it could decrypt.

What Only You Hold

Everything sensitive stays on your device:

DataWhere it lives
24-word recovery phraseWith you - written down, never transmitted
Ed25519 device keysDerived on-device from the phrase via HMAC-SHA256
Private recordsSealed (encrypted) on your device in Flowsta Vault
App data backupsStored locally by the Vault

Sealed private records do not gossip to Flowsta or to anyone else. They never leave your device unless you export them yourself.

What Flowsta Can See

Flowsta's server stores only what it needs to route sign-ins:

DataPurpose
Email hashLook up your account at sign-in - a one-way SHA-256 hash, not your address
Lookup metadataRecovery lookup hash, agent public key, DID
Display name & profile picturePublic profile (you chose to make these public)
OAuth consent recordsAudit trail of which apps you authorized

What Flowsta does not hold: no password hash (no password exists), no keys, no recovery phrase, no private records. There is nothing on Flowsta's servers that could decrypt your data - not for staff, not for attackers, not for anyone.

Public, Verifiable Data

Two kinds of data are public by design, on Flowsta's tamper-proof network, built on Holochain:

Identity DNA (Public)

Your public profile:

  • Display name
  • Profile picture
  • Agent public key
  • Agent links (identity attestations)

Your DID never changes for the life of your account.

Signing DNA (Public)

Signatures created by Sign It:

  • Ed25519 signatures over SHA-256 file hashes
  • Signing intent (Authorship, Approval, Witness, Receipt, Agreement)
  • Content rights manifests (license, AI training policy)
  • Perceptual hash bands (for fuzzy matching of modified files)
  • Revocation entries (signed by the original signer)

Signatures are public and permanent by design - that's how verification works. Nothing on this DNA contains PII. See Sign It for details.

How Sign-In Works Without a Password

Signing in is a cryptographic proof, not a shared secret:

  1. Your device requests a one-time challenge: POST /auth/vault/challenge
  2. Flowsta Vault signs the challenge with your device key - the key derived from your recovery phrase, which never leaves the device
  3. Your device submits the signature: POST /auth/vault/token
  4. The server verifies the signature against your public key and issues a JWT plus the flowsta_session SSO cookie

The server learns that you control your key. It learns nothing else. There is no credential to phish, reuse, or leak from a database breach.

Encryption flow showing keys and sealed private records held on the user's device in Flowsta Vault, a challenge-signature sign-in, and Flowsta's server holding only an email hash it cannot decrypt

Key Derivation

Key derivation from the 24-word BIP39 recovery phrase through HMAC-SHA256 to an Ed25519 keypair producing the agent public key, DID, and signing key

Your 24-word BIP39 recovery phrase deterministically generates your keypair via HMAC-SHA256. That means:

  • Your recovery phrase restores your identity on any device - install Flowsta Vault, enter the phrase, and your keys and DID come back exactly as they were
  • No key escrow or key recovery service is needed (or possible)
  • Flowsta never sees the phrase - derivation happens entirely on your device

Why This Matters

Most identity providers sit between you and everything you do: they hold your password hash, your session keys, and often your data. A breach of the provider is a breach of you.

Flowsta is built so there is no one in between - not even Flowsta. The server can't be compelled, hacked, or tempted to reveal what it never had. Your keys prove who you are; your device holds what's yours; the public network verifies what you choose to publish.

Implications for Developers

When you receive user data through OAuth:

  • Public data (display name, username, DID, agent public key) is readable by Flowsta
  • Email is shared only if the user explicitly grants the email scope
  • No data mining - Flowsta cannot analyze user private data for any purpose, because it never has it

Next Steps

Documentation licensed under CC BY-SA 4.0.