libp2p WebRTC over QR

Two browsers connect directly as libp2p peers — no relay, no signaling server. The WebRTC offer and answer travel out-of-band as signed QR codes: one device scans the code off the other screen.

1 Start browser peer

Creates a libp2p node with a fresh key pair. Its Peer ID signs every payload you show.

Your peer identity

This is not what you send to anyone - it is the key your invite links are signed with.

not started

2 Connect to someone

Two ways in, and they end up in the same place: send an invite link, or scan a code. You only ever do one of the two boxes below - whichever matches what you have.

I want to invite someone

Someone sent me a link

Opening their link does everything by itself. Only paste here if tapping the link did not work.

3 Send data over libp2p

Once the handshake completes, messages travel over a libp2p protocol stream on the WebRTC data channel. Files go through Helia: the sender adds the bytes and announces the CID, the receiver pulls them with bitswap over the same connection.

Not connected
Drop a file here or click to choose one — it is added to Helia and its CID is sent over the chat stream