TREZOR Communication Daemon aka TREZOR Bridge (written in Go)
go build
./trezord-go -h
Prerequisites:
go get github.com/karalabe/xgo
docker pull karalabe/xgo-latest
- make sure
xgo
anddocker
are in$PATH
cd release && make all
; the installers are ininstallers
Prerequisites:
go get github.com/karalabe/xgo
docker pull karalabe/xgo-latest
Compiling for officially supported platforms:
$GOPATH/bin/xgo -targets=windows/amd64,windows/386,darwin/amd64,linux/amd64,linux/386 github.com/trezor/trezord-go
trezord-go
starts a HTTP server on http://localhost:21325
. AJAX calls are only enabled from trezor.io subdomains.
Server supports following API calls:
url method |
parameters | result type | description |
---|---|---|---|
/ POST |
{version : string} |
Returns current version of bridge and info about configuration. See /configure for more info. |
|
/enumerate POST |
Array<{path : string, session : string | null}> |
Lists devices.path uniquely defines device between more connected devices. It might or might not be unique over time; on some platform it changes, on others given USB port always returns the same path.If session is null, nobody else is using the device; if it's string, it identifies who is using it. |
|
/listen POST |
request body: previous, as JSON | like enumerate |
Listen to changes and returns either on change or after 30 second timeout. Compares change from previous that is sent as a parameter. "Change" is both connecting/disconnecting and session change. |
/acquire/PATH/PREVIOUS POST |
PATH : path of devicePREVIOUS : previous session (or string "null") |
{session : string} |
Acquires the device at PATH . By "acquiring" the device, you are claiming the device for yourself.Before acquiring, checks that the current session is PREVIOUS .If two applications call acquire on a newly connected device at the same time, only one of them succeed. |
/release/SESSION POST |
SESSION : session to release |
{} | Releases the device with the given session. By "releasing" the device, you claim that you don't want to use the device anymore. |
/call/SESSION POST |
SESSION : session to callrequest body: JSON { type : string, message : object} |
{type : string, body : object} |
Calls the message and returns the response from TREZOR. Messages are defined in this protobuf file. type in request is, for example, GetFeatures ; type in response is, for example, Features |