![npm](https://img.shields.io/npm/v/libp2p-noise) [![Build Status](https://travis-ci.com/NodeFactoryIo/js-libp2p-noise.svg?branch=master)](https://travis-ci.com/NodeFactoryIo/js-libp2p-noise)

Usage no npm install needed!

<script type="module">
  import achingbrainLibp2pNoise from 'https://cdn.skypack.dev/@achingbrain/libp2p-noise';



npm Build Status

Discourse posts

Noise libp2p handshake for js-libp2p

This repository contains TypeScript implementation of noise protocol, an encryption protocol used in libp2p.

Warning: Even though this package works in browser, it will bundle around 1.5Mb of code


Install with yarn add libp2p-noise or npm i libp2p-noise.

Example of using default noise configuration and passing it to the libp2p config:

import {NOISE, Noise} from "libp2p-noise"

//custom noise configuration, pass it instead of NOISE instance
const noise = new Noise(privateKey, Buffer.alloc(x));

const libp2p = new Libp2p({
   modules: {
     connEncryption: [NOISE],

Where parameters for Noise constructor are:

  • static Noise key - (optional) existing private Noise static key
  • early data - (optional) an early data payload to be sent in handshake messages


This module exposes a crypto interface, as defined in the repository js-interfaces.

ยป API Docs


Feel free to join in. All welcome. Open an issue!