GM Protocol
Pre-release (Alpha/Preview) v00.01.00

Your Web3 Communications Stack.

We're building an open source stack for sufficiently decentralized real-time communications between people and entities autheniticated through Web3 wallets.

Public Good

The protocol plans to operate as a non-profit foundation and explore web3 incentives.

Performant and Secure

Low-latency P2P chat, screenshare, and voice in your browser with end-to-end encryption via WebRTC and decentralized identity powered by Ethereum and ENS.

For Perfectionists with deadlines

Add p2p communications into your existing app or build a new experience altogether, save time & focus on your customer experience instead of boilerplate.

Getting Started

Source will be published soon. In the interim, here's an example. In these 11 lines of code, the example app:

  • Connects a user's web3 wallet (e.g., Metamask), authenticates via Sign-in with Eth (EIP-4361), and creates a session
  • Connects to peers in the given channel (& awaits incoming connection requests from new peers)
  • Sends a message to all connected peers (& displays messages from connected peers)

import { GMClient } from 'gmclient';

const serverUri = 'https://your-gmserver-uri' // or 'https://gms.gmprotocol.org:----';
const client = new GMClient(serverUri);

client.connect();

client.on('message', (message, peer) => {
	console.log(`received from ${peer.name}: ${message}`);
});

client.join('my-channel');

client.sendPeers('my-channel', 'message', 'GM, world!', (message) => {
	console.log(`sent: ${message}`);
});