Skip to content

authenticator meant to be used with Ledger and the Universal Authenticator Library

License

Notifications You must be signed in to change notification settings

EOSIO/ual-ledger

Repository files navigation

UAL for Ledger Authenticator

NOTE: Currently does not work in Chromium/Chrome due to a known U2F bug LedgerHQ/ledgerjs#306

This authenticator is meant to be used with Ledger and Universal Authenticator Library. When used in combination with them, it gives developers the ability to request transaction signatures through a Ledger device using the common UAL API.

EOSIO Labs

About EOSIO Labs

EOSIO Labs repositories are experimental. Developers in the community are encouraged to use EOSIO Labs repositories as the basis for code and concepts to incorporate into their applications. Community members are also welcome to contribute and further develop these repositories. Since these repositories are not supported by Block.one, we may not provide responses to issue reports, pull requests, updates to functionality, or other requests from the community, and we encourage the community to take responsibility for these.

Supported Environments

  • The Ledger Authenticator will only work with Desktop Browser Environments from sites with SSL (https) encryption

Getting Started

# Using yarn
yarn add ual-ledger

# Using npm
npm install ual-ledger --save

Dependencies

  • You must have the eos app installed on your ledger device. You can download it to your device using Ledger Live, if you do not already have it.

  • Use one of the UAL renderers below.

    • React - ual-reactjs-renderer

    • PlainJS - ual-plainjs-renderer

  • An HTTPS connection is required

  • Enable Arbitrary Data in the settings of your eos app

Basic Usage with React

import { Ledger } from 'ual-ledger'
import { UALProvider, withUAL } from 'ual-reactjs-renderer'

const exampleNet = {
  chainId: '',
  rpcEndpoints: [{
    protocol: '',
    host: '',
    port: '',
  }]
}

const App = (props) => (
  <div>{JSON.stringify(props.ual)}</div>
)

const AppWithUAL = withUAL(App)

const ledger = new Ledger([exampleNet])

<UALProvider chains={[exampleNet]} authenticators={[ledger]}>
  <AppWithUAL />
</UALProvider>

Known Limitations

  • The eos app installed on your ledger device can only deserialize the data of certain actions. If you submit an unknown action, the ledger will only display the contract, action, and a hex string of the data. You can view the eos app here https://github.com/LedgerHQ/ledger-app-eos/.
  • This libary has only been tested with the Ledger Nano S.

Contributing

Contributing Guide

Code of Conduct

License

MIT

Important

See LICENSE for copyright and license terms.

All repositories and other materials are provided subject to the terms of this IMPORTANT notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.

About

authenticator meant to be used with Ledger and the Universal Authenticator Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published