In this paper, Matthew Weidner et al. propose a protocol that provides secure group messaging in decentralized networks that have no central authority.
The reference implementation for these protocols is in Java and can be found here: https://github.com/trvedata/key-agreement
This repo represents my attempt to understand the proposed protocol implementing key elements in TypeScript.