A user-owned, passwordless authentication system built on decentralized identifiers and device-native cryptography.
BYOI explores a simple but under-examined idea:
Identity should be owned by the user, not issued or controlled by the application.
Instead of passwords, OAuth brokers, or centralized identity providers, BYOI enables authentication using self-owned cryptographic identity, verified via Decentralized Identifiers (DIDs) and WebAuthn-backed device authentication.

Most authentication systems fail not because of poor implementation, but because of structural assumptions:
These are not bugs. They are properties of centralized identity models.
BYOI was built to explore an alternative boundary:
What if identity were cryptographically user-owned, portable by design, and verifiable without delegating trust to a central authority — while remaining usable in real systems?
BYOI optimizes for the following constraints:
Non-goals (explicitly):
BYOI cleanly separates identity ownership from authentication verification.
In short:
Applications verify signatures. Users retain identity control.
The browser extension acts as a user-controlled identity agent, not a password manager.
Responsibilities:
Trust boundary:
Chrome Web Store Distribution: https://chromewebstore.google.com/detail/bring-your-own-identity-b/eaoknlfgonfekahpfdpmafpipfdnejji
The SDK exists to keep applications out of identity complexity.
Responsibilities:
Applications never:
They only verify signatures against a DID.
NPM Package Distribution: https://www.npmjs.com/package/byoi
| Aspect | Traditional Auth | BYOI |
|---|---|---|
| Identity authority | Central provider | User |
| Secret storage | Server-side | Device-local |
| Authentication | Knowledge-based | Possession + biometrics |
| Breach impact | High | Limited |
| Portability | Low | Native |
| Vendor lock-in | Common | Avoided |
BYOI intentionally minimizes server trust while maintaining verifiability.
Decentralization is applied only where trust boundaries demand it.
This avoids the common failure mode of decentralizing everything and shipping nothing usable.
BYOI is suitable when:
Examples:
Not optimized for:
These trade-offs are deliberate.
All components rely on established, auditable web standards.
/extension — identity agent architecture, flows, and security decisions/sdk — integration API, verification logic, and developer abstractionsDetailed documentation lives alongside the code.
BYOI is not a product pitch.
It is an engineering exploration of what modern web identity could look like if we stop assuming centralized ownership is inevitable.
If it leads to better systems, better abstractions, or better conversations — it has succeeded.
This project welcomes contributors interested in:
Discussion and critique are encouraged.