/ Labs · QR companion-device handoff
Anti-injection · co-presence proof

Verify on your phone. Bind it to this screen.

A virtual webcam can fake this desktop's camera — so we don't use it. Scan the rotating QR with your phone, pass the face challenge there, and the proof is cryptographically bound to this session, right now. The QR nonce rotates every 5 seconds; a screenshot of it is useless.

session · QR refreshes in s
Creating session…

How this defeats injection

  1. Scan the QR with your phone. It encodes a one-time nonce valid ≤10 s — proving the phone is in front of this screen now, not a relay.
  2. Face challenge runs on the phone. Stock iOS/Android can't run virtual-webcam software; the camera feed is real hardware.
  3. Server binds everything — face person-key + device + session + moment — and signs an Ed25519 receipt. It also compares against the previous verified session: same human, or substitution.
📱 Phone camera needs a secure context: open this page via HTTPS or your Mac's LAN IP with the phone's browser flag unsafely-treat-insecure-origin-as-secure. For same-machine testing, just open the phone view in a new tab.
Person-key
Device
Liveness challenge
Continuity match
Co-presence
Signature key

    
Demo of Tier-B continuity from the Manav identity-continuity architecture: rotating HMAC nonce (5 s windows, stateless), one-time claim token (2 min), server-side vector normalisation and matching, Ed25519-signed receipt verifiable offline. In production the phone step is a device-bound passkey assertion (WebAuthn hybrid already includes Bluetooth proximity) and embeddings are computed server-side.