mycrypto-trezor.js

High-level Javascript API for Bitcoin Trezor

Usage no npm install needed!

<script type="module">
  import mycryptoTrezorJs from 'https://cdn.skypack.dev/mycrypto-trezor.js';
</script>

README

trezor.js

Build Status

Javascript API for Bitcoin TREZOR.

Use this library if you want deeper integration of TREZOR into your node app, including electron.

If you are including the library in web app, try trezor.js package.

Install with npm

npm install --save trezor.js

We use some ES6 methods (Array.find etc), that aren't in all browsers as of now, so if you are targetting older browsers/mobile browsers, you have to add babel polyfill. See https://www.npmjs.com/package/babel-polyfill and https://babeljs.io/docs/usage/polyfill/

Examples

Example of usage is on example-browser/, example-node/ and example-electron-webpack/ on github.

Flow

trezor.js is annotated with Flow types; if you want to use Flow and use the previous setup, it will use the right types. Note that you might have to set up .flowconfig to include all the modules and interface files in our flowconfig

to run flow use make flow

Build

to build production bundle run make build

eslint

make eslint

Using trezor.js in a web app

If you are using trezor.js in a web app, the end user has to install one of our transport layers. Also, the web app's URL has to be whitelisted specifically by SatoshiLabs.

Transport layers

We have two transport layers. The user needs to install one of them.

One is TREZOR Chrome extension for the users that have Chrome and want an easier, one-click installation.

Other is TREZOR bridge (or trezord) that works cross-browser.

Whitelisting

You cannot connect to transport layers from anywhere on the internet. Your URL needs to be specifically whitelisted by SatoshiLabs.

localhost is specifically whitelisted, so you can experiment on http://localhost/*. If you want to add your url in order to make a TREZOR web application, make a pull request to this file.

trezor.js API

API is explained in API.md