Dune Network + Trezor = ❤

Trezor model T support on Dune Network using Tezos App. Requires Trezor firmware 2.1.6. Firmware downgrade instructions are available here. This page will be available for the latest Trezor firmware once Dune Network is updated to Babylon+
eg. m/44'/1729'/0'/0'

What's this?

This page offers a secure way to transfer $DUN tokens from an address managed by a Trezor model T hardware wallet to another (eg. fresh) address. This solution uses Tezos support already provided by Trezor. As a consequence, you should use tz versions of the addresses to make your transactions on Dune Network.

Note that, since Dune Network is still running protocol 004, the solution requires Trezor firmware version 2.1.6. However, we plan to update this page to the latest firmware version once Dune Network is updated to protocol 005 (aka. Babylon+), scheduled for mid-January.

How to downgrade to trezor firmware 2.1.6?

If you don't want to wait for Babylon+ upgrade, firmware downgrade instructions are given on Trezor's wiki.

Is this method/page safe?

Yes/Yes!

The method is safe: It uses Trezor Connect facilities provided by Trezor and your model T hardware wallet to access your public key and to sign operations on demand. You'll never be asked for your mnemonics or your private key.

The page is safe: it's made of this HTML file that includes the following other resources:

  • An external Bootstrap 4.3.1 CSS file: https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css,
  • An external JavaScript file provided by Trezor developers that interfaces with Trezor Connect: https://connect.trezor.io/6/trezor-connect.js,
  • A small library rpc.js that wraps some useful Dune Network RPCs,
  • A JavaScript file data.js that contains the internal state of the App and provides different functions to access and/or modify this state,
  • A JavaScript file updater.js that: (1) forwards users requests to data.js, and (2) refreshes the HTML page when internal state in data.js is updated.

It's important to observe in these files that:

  • The only interactions with Trezor Connect in our code are located in data.js, and these interactions are legit:
    $ grep -i trezor *.js
    data.js:    TrezorConnect: window.TrezorConnect,
    data.js:    trezor_connect_version : 6, // version that works with protocol 004
    data.js:data.init_trezor = function (){
    data.js:    if (data.trezor_connect_version >= 7){
    data.js:        data.TrezorConnect.manifest({
    data.js:	    appUrl: 'https://dune.network/trezor'
    data.js:            console.log ("Trezor inited");
    data.js:                    data.TrezorConnect.tezosGetAddress({
    data.js:                            data.TrezorConnect.tezosGetPublicKey({
    data.js:        data.TrezorConnect.tezosSignTransaction(operation).then(function (res) {
    updater.js:    data.init_trezor();
  • The destination address your enter is the one forwarded to data.js and used to construct the transaction. This address is also displayed by your Trezor model T hardware wallet when you're asked to sign the transaction.

You have other questions?

Don't hesitate to contact us at: contact@dune.network, or to join our discussion platforms.