# NIP-100 ## WebRTC `draft` `optional` `author:jacany` This NIP defines how to do WebRTC communication over nostr ### Broadcasting that you are present Announces that you are here, and ready to connect to others. The connection ID is inferred from the provided pubkey. ```json { "kind": 25050, "pubkey": "", "tags": [ ["type", "connect"] ] } ``` ### Closing ```json { "kind": 25050, "pubkey": "", "tags": [ ["type", "disconnect"] ] } ``` ### Offering to connect Used when responding to a `type:connect`. Offering to connect to that peer. ```json { "kind": 25050, "pubkey": "", "tags": [ ["type", "offer"], ["p", ""] ], "content": { "offer": "", "type": "offer" } } ``` ### Answering an Offer ```json { "kind": 25050, "pubkey": "", "tags": [ ["type", "answer"], ["p", ""] ], "content": { "sdp": "", "type": "answer" } } ``` ### Broadcasting ICE Candidate ```json { "kind": 25050, "pubkey": "", "tags": [ ["type", "answer"], ["p", ""] ], "content": { "candidate": "", } } ``` Essentially, just directly feed what comes out of the WebRTC functions straight into the `content` field. It makes things cleaner and easier.