Passwordless auth for modern apps
Drop-in authentication with Ed25519 challenge-response, passkeys, TOTP, and multi-tenant isolation. Ship auth in minutes, not months.
$ npm install @wardauth/sdk-js
// 3 lines to passwordless auth
import { createClient } from "@wardauth/sdk-js"
const auth = createClient({
baseUrl: "https://api.wardauth.com",
apiKey: "wardauth_live_..."
})
const session = await auth.signIn("alice@acme.com")Everything you need for auth
Production-ready authentication infrastructure so you can focus on your product.
Passwordless by default
Ed25519 challenge-response authentication. No passwords to leak, no credentials to phish.
MFA built-in
TOTP authenticator apps, WebAuthn passkeys, and recovery codes. All out of the box.
Multi-tenant isolation
Each tenant gets isolated users, API keys, and audit logs. Zero cross-tenant data leakage.
Sub-second auth
Redis-backed sessions, JWT access tokens with 15-min expiry, and automatic refresh rotation.
Refresh token rotation
Atomic token rotation with reuse detection. Compromised tokens revoke the entire session family.
Tenant subdomains
Each tenant gets their own login portal at slug.wardauth.com with custom branding support.
How it works
From zero to passwordless auth in under 10 minutes.
Create a tenant
Sign up on the admin dashboard. Get your API key in seconds.
Install the SDK
npm install @wardauth/sdk-js — works with React, Next.js, Vue, or vanilla JS.
Register users
Users generate an Ed25519 key pair on their device. The public key is registered with WardAuth.
Authenticate
Challenge → Sign → Verify. No passwords. Tokens are issued with automatic refresh rotation.
Developer-first API
Clean REST API with SDKs for JavaScript, React, and more coming soon.
import { WardAuthProvider, useAuth }
from "@wardauth/sdk-js/react";
<WardAuthProvider
baseUrl="https://api.wardauth.com"
apiKey="wardauth_live_..."
>
<App />
</WardAuthProvider>
const { signIn, user } = useAuth()curl -X POST api.wardauth.com/v1/register
-H "X-API-Key: wardauth_live_..."
-d '{"email":"alice@acme.com",
"publicKey":"base64..."}'
curl -X POST api.wardauth.com/v1/challenge
curl -X POST api.wardauth.com/v1/challenge/verifySimple, transparent pricing
Start free. Scale as you grow.
Free
For side projects and prototypes
Get started- 5,000 monthly active users
- Email + password auth
- Passwordless (Ed25519)
- Magic link
- Audit log (7 days)
- Community support
Pro
For growing applications
Contact sales- 25,000 monthly active users
- Everything in Free
- MFA (TOTP + WebAuthn)
- Webhooks
- Audit log (90 days)
- Custom CORS origins
- Priority support
Enterprise
For large-scale deployments
Contact sales- Unlimited MAU
- Everything in Pro
- SSO / SAML
- Custom domains
- Dedicated infrastructure
- Audit log (1 year)
- SLA 99.99%
- Dedicated support engineer