Passkey Identity.
Peer-to-Peer.

Create, replicate, use passkeys and UCANs peer to peer. Optionally backup and recover them from Storacha.

$ npm install p2pass

Everything You Need

P2P Device Linking

Link multiple devices directly over libp2p with an approval-based pairing protocol. OrbitDB becomes the shared registry for credentials, linked devices, and encrypted identity state.

Passkey DID Identity

WebAuthn biometric auth with auto-detection of hardware Ed25519, P-256, or worker-derived keys. PRF seed extraction gives each user a deterministic decentralized identity.

Optional Backup and Recovery

Use UCAN-delegated Storacha storage for encrypted backup and recovery. The live multi-device path is peer-to-peer; Storacha is there when you need durable restore.

p2p UCAN replication & delegations

Aggregate UCAN delegations between devices (coming soon).

How It Works

Authenticate

User taps biometric prompt. WebAuthn PRF seed derives an Ed25519 DID.

Start the P2P Stack

libp2p, Helia, and OrbitDB initialize locally. The current device joins the shared identity registry.

Link Another Device

Exchange peer info, approve the pairing request, and let the second device join the same OrbitDB-backed identity graph.

Add Backup if Needed

Optionally import a UCAN delegation and publish encrypted backup state to Storacha for recovery on a fresh device.

How UCAN delegation and replication works

Create UCAN delegation for other connected devices with a single click, no more copy pasting delegations.

Drop In, Ship It

Add the floating action button to your Svelte app in three lines.

// Svelte
import { P2Pass } from 'p2pass';

<P2Pass preferWorkerMode={true} />

// React
import { P2Pass } from 'p2pass/react';

<P2Pass preferWorkerMode={true} />