Skip to content
Docs · Security

Security

hApp Auth is how people sign in across the Holochain web, so a flaw in it is a flaw on every site that uses it. If you find one, tell us first.

Report a vulnerability

Write to [email protected] in English or Turkish. Say what you found, how to reproduce it and what it lets someone do. You get an acknowledgement and a status, and credit if you want it; anything that affected people is published as an advisory. Test against your own account and your own sites, never against another person’s account.

The same contact is published at /.well-known/security.txt.

What we hold

  • Your account: passkeys (their public keys), verified email addresses, a linked GitHub account.
  • Which sites and agents you allowed, and when they last used it, so you can see and revoke them.
  • Bindings between your account and agent keys you chose to link, and the attestations issued for them.
  • An audit log of your account’s events: sign-ins, a new passkey, a new key, a new connection, a refresh token reused.

What we never hold, and never do

  • We never hold, generate, back up or escrow an agent key or seed.
  • Nothing of ours signs bytes the caller chooses. Every signature is over a domain-prefixed message we construct, and remembering a site never skips the prompt that shows what is being signed.
  • We never push code that runs with a person’s key: no remote update, plugin or hot-swap reaches anything that signs. Every release of something that touches a key ships with a signed tag, a reproducible build, and its hash published somewhere other than the server that serves it.
  • No model call on any hApp Auth endpoint. Sign-in is deterministic.
  • No fallbacks. If GitHub or mail is down, that path fails plainly and alerts us; it never quietly weakens a proof.
  • We never share or sell sign-in history or use it for behavioural profiling. Third-party sites get pairwise identifiers. Optional Proofs sharing is in development: it will disclose only the statement you choose to the recipient and purpose you approve.

The numbers

  • No passwords and no magic links. The ways in are a passkey, GitHub and an email code.
  • A GitHub sign-in never attaches to an existing account by matching email; linking needs you signed in on both sides.
  • Authorization codes work once; access tokens live 5 minutes; refresh tokens rotate, and reusing one revokes the family.
  • Every third-party site gets a pairwise identifier for you.

Coming Account actions on happauth.com needing a passkey within the last 15 minutes; a seven-day hold on account actions after an email recovery; signing keys rotated quarterly by schedule; attestation roots held offline, in hardware; an external review of the authorization server and the binding and attestation protocols before the first third-party client.