Wallet authentication as a serviceClerk-like DX for Web3
HAID - Web3 Authentication, powered by wallets.
Let any app authenticate users using MetaMask (or any EVM wallet) by signing a challenge message. You control policy (domains, chains), UX (theme/button text), and session strategy (local vs production cookies).
Secure Challenge + Verify
Server issues nonce-based challenge, client signs, server verifies signature and prevents replay.
Project-based Config
Each project has keys + settings stored in MySQL, editable from the dashboard.
Cookie Sessions for Prod
Production mode uses HttpOnly cookies with /auth/me and /auth/logout endpoints.
How authentication works
- Integrator app requests a challenge from your API.
- User signs the message in MetaMask.
- Your API verifies signature + nonce (replay protection).
- API creates a session (token local / cookie production).
- Integrator app calls /v1/auth/me to get user details.
What developers configure
- Allowed Domains (origin allowlist)
- Allowed Chain policy (managed: Hardhat/Sepolia or custom chain)
- Session TTL + Nonce TTL
- Custom sign-in message template
- Theme color + button label
- Environment mode: local vs production cookie strategy
Ready to demo?
Create a project, copy the integration snippet, run the integrator app and authenticate with MetaMask.