NIP-AC proposes a protocol for peer-to-peer voice and video calls over Nostr. The spec uses Nostr events for call signaling (offers, answers, ICE candidates) and WebRTC for the actual media transport, keeping the call setup decentralized while using standard browser APIs for audio and video.

How It Works

A caller publishes a call offer event containing a WebRTC Session Description Protocol (SDP) offer, tagged with the callee’s pubkey. The callee responds with an SDP answer event. Both parties exchange ICE candidate events to negotiate the network path. Once the WebRTC connection is established, media flows directly between peers without relay involvement.

The signaling events are encrypted so relays cannot observe who is calling whom. The call state machine handles offer, answer, reject, busy, and hangup transitions.

Implementations

  • Amethyst is building NIP-AC support with a call state machine test suite and stale call offer handling.

Primary sources:

Mentioned in:

See also: