Holochain Architecture
How Flowsta uses Holochain for decentralized, zero-knowledge identity.
Three-DNA Architecture
Flowsta separates public, private, and signing data into three Holochain DNAs:
Identity DNA (Public)
| Field | Description |
|---|---|
| Display name | User's chosen display name |
| Profile picture | URL or hash of profile picture |
| Agent public key | Ed25519 public key |
| Agent links | IsSamePersonEntry attestations from agent linking |
The Identity DNA is publicly readable. Any participant in the network can query another user's public profile and verify agent-link attestations - no one in between.
Signing DNA (Public)
The Sign It DNA carries publicly verifiable document signatures:
| Field | Description |
|---|---|
| Signature records | SHA-256 file hash + Ed25519 signature + timestamp |
| Content rights | License, AI-training policy, contact preference |
| Perceptual hashes | Image/audio/video fingerprints for fuzzy matching |
| Revocations & amendments | Signatures can be revoked or superseded by their author |
Signatures live on Flowsta's tamper-proof network, built on Holochain - anyone can verify a signature against a file without asking Flowsta.
Private DNA (Legacy)
Earlier Flowsta accounts kept encrypted private records (email, recovery-phrase backup, session data, activity logs) in a per-user private cell, encrypted client-side so that not even the cell's hosts could read the plaintext. This cell is being superseded by device-sealed records: private data sealed on the user's own device (in Flowsta Vault) that never gossips anywhere. New integrations should not depend on the Private DNA.
Encrypted Public Entries (Third-Party Apps)
Third-party Holochain apps can also store private data on the public DHT using client-side encryption. Entries are encrypted with lair's xsalsa20poly1305 crypto_box (256-bit X25519 key exchange) before being committed. Peers replicate the ciphertext for resilience, but only the author can decrypt.
This pattern is used for:
- Vote rationales - private notes explaining why a user voted
- Draft content - encrypted until the user publishes
- Any user-owned private data - the entry type hint is always
"private"to prevent metadata leakage
See Encrypted Entries on Public DHT for implementation details.
Infrastructure
Flowsta-Operated Nodes
Flowsta operates infrastructure across three regions:
- Americas (Iowa) - the API node, which also runs a full conductor
- Europe - a DHT-only node
- Asia-Pacific (Singapore) - a DHT-only node
- A dedicated bootstrap/relay server - helps peers discover each other and traverse NATs
Community DHT Nodes
Community-run nodes are live today - anyone can run one. The flowsta-dht-node repository has a step-by-step README that takes you from a fresh machine to a gossiping DHT node.
A community node can also serve as an independent bootstrap/relay, giving the network discovery and relay paths that don't depend on Flowsta's infrastructure at all. Every community node strengthens the network's resilience: the network keeps running even if our cloud provider goes down.
Flowsta Vault (Local)
When users install Flowsta Vault, it runs a local Holochain conductor that joins the same network. This means:
- The user's public data is replicated locally
- Agent linking attestations and signatures gossip across the network
- The network becomes more resilient with each Vault install
Key Derivation
Every user's keypair is deterministically derived from their recovery phrase. This means:
- Same phrase always produces the same identity
- Users can restore their identity on any device
- No key escrow or central key server needed
Holochain Version
Flowsta runs on Holochain 0.6.x with the kitsune2 networking layer and Iroh-based peer connectivity.
Next Steps
- Identity & DIDs - W3C Decentralized Identifiers
- For Holochain Developers - Integration guide for Holochain devs
- Agent Linking - Identity attestations on your own DHT
- Zero-Knowledge Architecture - Encryption details
- Vault Overview - Local conductor and key management