Ship auth that
can't leak what
you never held.
Every service gets its own scoped ID. Ask a question, get a zero-knowledge answer, store nothing. Passwordless sign-in, attestation checks and E2E messaging behind three calls.
The integration path, in order
The user-facing approval stays light. The trust-sensitive part stays typed, signed, and verified server-side.
Host a Direct Login challenge
server creates an expiring, provider-owned challenge and QR surface.
Wait for holder approval
The holder signs locally in U-net. Your service receives only its scoped account and public key.
Exchange the approved session
server verifies the account signature, prevents replay, and lets your backend create its own HTTP-only session.
Add proof requests when needed
Layer verification sessions on top when a checkout or workflow needs a specific attested predicate.
Packages
Everything ships typed, and every package targets the same public trust-plane contracts as the U-net demos.
@u-net/serverHost Direct Login V2, provider sessions, manifests, inboxes, and aggregate metrics.
@u-net/issuerIssue, deliver, renew, replace, and revoke Ledger V2 credentials.
@u-net/web-loginCreate and poll provider-hosted Direct Login V2 challenges in browsers.
@u-net/reactReact hooks and components for Direct Login V2 and verification.
@u-net/verificationRequest privacy-preserving attestation checks.
@u-net/clientResolve verified services and read exact Ledger V2 state.
@u-net/contractsGenerated TypeScript contracts for current public V2 APIs.
@u-net/setupGenerate provider-owned keys and registration bundles locally.
Building the check into a real product?
See what it changes for the person approving it, or the business deciding what to ask for.