JS-Waku Docs #

The js-waku library has recently been refactored to achieve a number of production readiness goals. Hence, the code snippets present in this documentation are outdated.

Until the doc is updated, the best way to learn how to use js-waku is to check out the examples repository.

Learn more about the refactoring here.

Waku is a family of protocols designed to provide censorship-resistant, privacy preserving, surveillance prone and portable communication.

The Waku software suite enables you to add communication features to your dApp in a decentralized manner, ensuring to your users that they will not be censored or de-platformed.

Waku can be used for chat purposes and for many machine-to-machine use cases. You can learn more about Waku at

JS-Waku is the TypeScript implementation of the Waku protocol, built for browser environment.

The quick start presents an easy way to send and receive messages using js-waku. The FAQ lists frequently asked questions.

If you prefer video content, check out the presentations.

If you are looking for inspiration, check out the use cases Waku can enable.

The guides explain specific js-waku features and how it can be used with popular web frameworks.

The js-waku-examples repository also holds a number of examples. They are working Proof-of-Concepts that demonstrate how to use js-waku. Check out the example list to see what usage each example demonstrates.

The examples are also deployed:

  • web-chat: A simple public chat (docs).
  • eth-pm: End-to-end encrypted private messages (docs).
  • rln-js: Demonstration of RLN, an economic spam protection protocol that rate limit using zero-knowledge for privacy preserving purposes.

If you want to play with examples, please, use one of the following commands to easily bootstrap an example:

  • yarn create @waku/app <project-dir>
  • npx @waku/create-app <project-dir>

Finally, if you want to learn how Waku works under the hoods, check the specs at

Bugs, Questions & Support #

If you encounter any bug or would like to propose new features, feel free to open an issue.

For general discussion, get help or latest news, join #js-waku on Vac Discord or the Waku Telegram Group.