BlockAuth
Open-source Web2 and Web3 authentication for Django
Published September 17, 2026
The problem
Any product spanning mainstream and crypto-native users hits the same wall. Mainstream users expect email and password, social login, two-factor authentication and increasingly passkeys. Crypto-native users expect to sign with their wallet and nothing else.
Most teams solve this by running two authentication systems side by side. That produces two user records for the same person, a linking flow nobody enjoys building, and a permanent source of subtle bugs. The deeper problem is onboarding: requiring a wallet before first use excludes every user who does not already have one.
What we built
Web2 authentication
JWT sessions, OAuth 2.0 social login, TOTP two-factor, and WebAuthn passkeys.
Web3 authentication
Ethereum wallet login by signature, integrated into the same user model rather than parallel to it.
Key derivation
A KDF-based key management system that gives a user a blockchain wallet derived from their email address, no seed phrase, no prior crypto knowledge, no wallet installation.
Delivery
Taken from requirements through to versioned public releases, with Docker deployment, an automated test suite and developer documentation.
Outcome
- One authentication system covering mainstream and crypto-native users, with one user model
- Wallet onboarding removed as a precondition to using a product
- Released under MIT, anyone evaluating Quorix can read the actual code rather than take a claim on trust
- Shipped as a versioned, documented, containerised package rather than a repository dump
