What you get
End-to-end encryption keys
Request
e2ee:symmetric for a per-user AES-256 key, or e2ee:asymmetric for a keypair plus public-key lookup so users can encrypt for each other.Passkey accounts
Passwordless sign-in, account recovery, and multiple identities per account. Your app never handles credentials.
Standard OAuth 2.0 and OIDC
Authorization code flow with PKCE, ID tokens, refresh token rotation, discovery, and JWKS.
Your app's structure
Ave gives you a verified identity. Workspaces, membership, roles, and billing stay in your app.
How an encrypted app uses Ave
1
Register your app
Create an app at devs.aveid.net and register its callback URL. Every integration uses a registered client ID.
2
Ask for an encryption scope
Add
e2ee:symmetric or e2ee:asymmetric to the scopes you request at sign-in. The consent screen tells the user that your app is end-to-end encrypted.3
Receive the key with the tokens
completeOAuthCallback from @ave-id/sdk/client or the onTokens callback in @ave-id/embed hands you the tokens and the key together. The key comes from the URL fragment, not from the token endpoint.4
Encrypt on the client
Encrypt user data with the key before it leaves the device. Your backend stores ciphertext and uses the verified
id_token to decide who can read which rows.Hosts
Where to go next
Quickstart
Register an app, request an encryption key, and sign a user in.
Encryption model
Where keys are generated, how they are wrapped, and what Ave can and cannot see.
Public clients and PKCE
Browser, desktop, and mobile apps without a client secret.
Convex and Expo
Framework guides for common Ave setups.
