This plugin allows your cordova app to communicate with a Trezor device using a single API on browser and Android
(Only for devices with OTG). The browser implementation uses the latest trezor-connect
minified bundle and the Android
implementation uses trezor-android
. Unfortunately there is no trezor API for iOS.
cordova-trezor-plugin registers itself as cordovaTrezor
in window.
Although the object is in the global scope, it is not available until after the deviceready
event.
cordova plugin add cordova-plugin-trezor
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
cordovaTrezor.manifest({
email: '[email protected]',
appUrl: 'https://your-app-url.com'
});
cordovaTrezor.getPublicKeys({
bundle: [{path: "m/49/0'/0'"}]
}).then((result) => {
if (result.success) {
console.log(result.payload);
}
});
};
- manifest
- getPublicKeys
PRs are welcome for more api implementations.
Calling this method before any access to the device is required on browser by trezor-connect; This method has no effect on Android.
Refer to types for inputs and outputs.
- Browser
This method accepts a bundle of paths and returns a Promise
with a payload of public keys.
Refer to types for inputs and outputs.
- Browser
- Android
-
The returned
path
array in Android is based on signed integer values and in browser it's based on unsigned 32 bit integer. So they are logically the same but they are different in representations. You can rely on serialized path for comparison purposes. -
TODO: The returned xpub value in "Android" should start with tpub for testnet and upub for bip49 testnet. But currently these are formatted as "xpub" and "ypub".
For more info about how Android implementation works you can refer to draw.io diagram