byoi

BYOI — Bring Your Own Identity

Made with TypeScript License: MIT PRs Welcome

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.

BYOI authentication demo


Problem statement

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?


Design goals

BYOI optimizes for the following constraints:

Non-goals (explicitly):


Core model

BYOI cleanly separates identity ownership from authentication verification.

Ownership

Authentication

In short:

Applications verify signatures. Users retain identity control.


System architecture

1. Browser Extension — Identity Agent

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


2. SDK — Application Verification Layer

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


Trust & threat model

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.


Why decentralization is used (and where it is not)

Decentralization is applied only where trust boundaries demand it.

This avoids the common failure mode of decentralizing everything and shipping nothing usable.


Intended use cases

BYOI is suitable when:

Examples:

Not optimized for:

These trade-offs are deliberate.


Implementation stack

All components rely on established, auditable web standards.


Repository structure

Detailed documentation lives alongside the code.


Project motivation

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.


Contributions

This project welcomes contributors interested in:

Discussion and critique are encouraged.