Skip to main content
Zondax Github LinkZondax Github Link
Theme SwitchTheme Switch

Edgeware App

General structure

The general structure of commands and responses is as follows:

Commands

FieldTypeContentNote
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID
P1byte (1)Parameter 1
P2byte (1)Parameter 2
Lbyte (1)Bytes in payload
PAYLOADbyte (L)Payload

Response

FieldTypeContentNote
ANSWERbyte (?)Answerdepends on the command
SW1-SW2byte (2)Return codesee list of return codes

Return codes

Return codeDescription
0x6400Execution Error
0x6982Empty buffer
0x6983Output buffer too small
0x6986Command not allowed
0x6D00INS not supported
0x6E00CLA not supported
0x6F00Unknown
0x9000Success

Command definition

GET_VERSION

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x00
P1byte (1)Parameter 1ignored
P2byte (1)Parameter 2ignored
Lbyte (1)Bytes in payload0

Response

FieldTypeContentNote
TESTbyte (1)Test Mode0xFF means test mode is enabled
MAJORbyte (2)Version Major0..65535
MINORbyte (2)Version Minor0..65535
PATCHbyte (2)Version Patch0..65535
LOCKEDbyte (1)Device is locked
SW1-SW2byte (2)Return codesee list of return codes

INS_GET_ADDR_ED25519

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x01
P1byte (1)Request User confirmationNo = 0
P2byte (1)Parameter 2ignored
Lbyte (1)Bytes in payload(depends)
Path[0]byte (4)Derivation Path Data0x80000000
Path[1]byte (4)Derivation Path Data0x80000000
Path[2]byte (4)Derivation Path Data?
Path[3]byte (4)Derivation Path Data?
Path[4]byte (4)Derivation Path Data?

Response

FieldTypeContentNote
PKbyte (32)Public Key
ADDRbyte (??)address
SW1-SW2byte (2)Return codesee list of return codes

INS_GET_ADDR_SR25519

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x11
P1byte (1)Request User confirmationNo = 0
P2byte (1)Parameter 2ignored
Lbyte (1)Bytes in payload(depends)
Path[0]byte (4)Derivation Path Data0x80000000
Path[1]byte (4)Derivation Path Data0x80000000
Path[2]byte (4)Derivation Path Data?
Path[3]byte (4)Derivation Path Data?
Path[4]byte (4)Derivation Path Data?

Response

FieldTypeContentNote
PKbyte (32)Public Key
ADDRbyte (??)DOT address
SW1-SW2byte (2)Return codesee list of return codes

INS_SIGN_ED25519

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x02
P1byte (1)Payload desc0 = init
1 = add
2 = last
P2byte (1)----not used
Lbyte (1)Bytes in payload(depends)

The first packet/chunk includes only the derivation path

All other packets/chunks contain data chunks that are described below

First Packet
FieldTypeContentExpected
Path[0]byte (4)Derivation Path Data44
Path[1]byte (4)Derivation Path Data523
Path[2]byte (4)Derivation Path Data?
Path[3]byte (4)Derivation Path Data?
Path[4]byte (4)Derivation Path Data?
Other Chunks/Packets
FieldTypeContentExpected
Messagebytes...Message to Sign

Response

FieldTypeContentNote
SIGbyte (65)Signature
SW1-SW2byte (2)Return codesee list of return codes

INS_SIGN_SR25519

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x12
P1byte (1)Payload desc0 = init
1 = add
2 = last
P2byte (1)----not used
Lbyte (1)Bytes in payload(depends)

The first packet/chunk includes only the derivation path

All other packets/chunks contain data chunks that are described below

First Packet
FieldTypeContentExpected
Path[0]byte (4)Derivation Path Data44
Path[1]byte (4)Derivation Path Data523
Path[2]byte (4)Derivation Path Data?
Path[3]byte (4)Derivation Path Data?
Path[4]byte (4)Derivation Path Data?
Other Chunks/Packets
FieldTypeContentExpected
Messagebytes...Message to Sign

Response

FieldTypeContentNote
SIGbyte (65)Signature
SW1-SW2byte (2)Return codesee list of return codes

INS_ALLOWLIST_GET_PUBKEY

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x90
P1byte (1)Request User confirmationNo = 0
P2byte (1)Parameter 2ignored
Lbyte (1)Bytes in payload0

Response

FieldTypeContentNote
PUBKEYbyte (32)Master pubkey
SW1-SW2byte (2)Return codesee list of return codes

INS_ALLOWLIST_SET_PUBKEY

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x91
P1byte (1)Request User confirmationNo = 0
P2byte (1)Parameter 2ignored
Lbyte (1)Bytes in payload32
PUBKEYbyte (32)Master pubkey

Response

FieldTypeContentNote
SW1-SW2byte (2)Return codesee list of return codes

INS_ALLOWLIST_GET_HASH

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x92
P1byte (1)Request User confirmationNo = 0
P2byte (1)Parameter 2ignored
Lbyte (1)Bytes in payload0

Response

FieldTypeContentNote
HASHbyte (32)Public Key
SW1-SW2byte (2)Return codesee list of return codes

INS_ALLOWLIST_UPLOAD

Command

FieldTypeContentExpected
CLAbyte (1)Application Identifier0x94
INSbyte (1)Instruction ID0x93
P1byte (1)Payload desc0 = init
1 = add
2 = last
P2byte (1)----not used
Lbyte (1)Bytes in payload(depends)

Packets/chunks contain data chunks that are described below

Chunks/Packets
  • Chunk idx = 0 (init is expected to be empty)
FieldTypeContentExpected
Chunkbyte (?)Allow List...
Allow List Structure
FieldTypeContentExpected
Noncebytes (4)Monotonically increasing number
Item Count (N)bytes (4)Number of items in the list
Signaturebytes (64)Ed25519 Signature
Item x Nbytes (32) * NPubkeys to allow

Response

FieldTypeContentNote
SW1-SW2byte (2)Return codesee list of return codes