NPM Modules for proving and verifying using TLSNotary in the browser.
The prover requires a notary-server and a websocket proxy.
Important
The primary purpose of tlsn-js
is to support the development of the TLSNotary browser extension.
Please do not treat this as a public API (yet).
Important
tlsn-js
is developed for the usage of TLSNotary in the Browser. This module does not work in nodejs
.
This repository is licensed under either of
at your option.
tlsn-js
can be used in many different modes, depending on your use case.
The ./demo
folder contains three demos of tlsn-js
:
react-ts-webpack
: create an attestation with a Notary and render the result.interactive-demo
: prove data interactively to a Verifier.web-to-web-p2p
: prove data between two peers, in the browser.
In the demos, we attest data from the https://swapi.dev
website. Because the browser does not allow for TCP connections, you need to set up a websocket proxy:
-
Install websocat:
Tool Command cargo cargo install websocat
brew brew install websocat
source https://github.com/vi/websocat -
Run a websocket proxy for
https://swapi.dev
:
websocat --binary -v ws-l:0.0.0.0:55688 tcp:swapi.dev:443
npm install tlsn-js
# make sure you have rust installed
# https://www.rust-lang.org/tools/install
npm install
# this serves a page that will execute the example code at http://localhost:3001
npm run dev
npm install
npm run build
- Create a new
new-test.spec.ts
file in thetest/
directory. - Add your spec file to the entry object in
webpack.web.dev.config.js
. - Add a new
div
block totest/test.ejs
like this:<div>Testing "new-test":<div id="new-test"></div></div>
. Thediv
id must be the same as the filename.