You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The general structure of commands and responses is as follows:
Commands
Field
Type
Content
Note
CLA
byte (1)
Application Identifier
0x00
INS
byte (1)
Instruction ID
P1
byte (1)
Parameter 1
P2
byte (1)
Parameter 2
L
byte (1)
Bytes in payload
PAYLOAD
byte (L)
Payload
Response
Field
Type
Content
Note
ANSWER
byte (?)
Answer
depends on the command
SW1-SW2
byte (2)
Return code
see list of return codes
Return codes
Return code
Description
0x6400
Execution Error
0x6700
Wrong buffer length
0x6982
Empty buffer
0x6983
Output buffer too small
0x6984
Data is invalid
0x6986
Command not allowed
0x6987
Tx is not initialized
0x6B00
P1/P2 are invalid
0x6D00
INS not supported
0x6E00
CLA not supported
0x6F00
Unknown
0x6F01
Sign / verify error
0x9000
Success
Command definition
Some commands contain two different possible INS values.
Such implementation is to allow for backwards compatibility with the original Kadena App.
See Legacy Command definition for more details.
GET_DEVICE_INFO
Command
Field
Type
Content
Expected
CLA
byte (1)
Application Identifier
0xE0
INS
byte (1)
Instruction ID
0x01
P1
byte (1)
Parameter 1
0x00
P2
byte (1)
Parameter 2
0x00
L
byte (1)
Bytes in payload
0x00
Response
Field
Type
Content
Note
TARGET_ID
byte (4)
Target Id
OS_LEN
byte (1)
OS version length
0..64
OS
byte (?)
OS version
Non terminated string
FLAGS_LEN
byte (1)
Flags length
0
MCU_LEN
byte (1)
MCU version length
0..64
MCU
byte (?)
MCU version
Non terminated string
SW1-SW2
byte (2)
Return code
see list of return codes
GET_VERSION
Command
Field
Type
Content
Expected
CLA
byte (1)
Application Identifier
0x00
INS
byte (1)
Instruction ID
0x20
P1
byte (1)
Parameter 1
ignored
P2
byte (1)
Parameter 2
ignored
L
byte (1)
Bytes in payload
0
Response
Field
Type
Content
Note
TEST
byte (1)
Test Mode
0xFF means test mode is enabled
MAJOR
byte (2)
Version Major
0..65535
MINOR
byte (2)
Version Minor
0..65535
PATCH
byte (2)
Version Patch
0..65535
LOCKED
byte (1)
Device is locked
TARGET_ID
byte (4)
Target Id
SW1-SW2
byte (2)
Return code
see list of return codes
INS_GET_ADDR
Command
Field
Type
Content
Expected
CLA
byte (1)
Application Identifier
0x00
INS
byte (1)
Instruction ID
0x21
P1
byte (1)
Request User confirmation
No = 0 / Yes = Any Other
P2
byte (1)
Parameter 2
ignored
L
byte (1)
Bytes in payload
20
Path[0]
byte (4)
Derivation Path Data
0x80000000 | 44
Path[1]
byte (4)
Derivation Path Data
0x80000000 | 626
Path[2]
byte (4)
Derivation Path Data
?
Path[3]
byte (4)
Derivation Path Data
?
Path[4]
byte (4)
Derivation Path Data
?
Response
Field
Type
Content
Note
PK
byte (32)
Public Key
SW1-SW2
byte (2)
Return code
see list of return codes
INS_SIGN
Command
Field
Type
Content
Expected
CLA
byte (1)
Application Identifier
0x00
INS
byte (1)
Instruction ID
0x22
P1
byte (1)
----
First packet = 0x00 / More packets coming = 0x01 / Last packet = 0x02
P2
byte (1)
----
not used
L
byte (1)
Bytes in payload
(depends)
For the new app, the first packet/chunk includes only the derivation path.
All other packets/chunks contain data chunks that are described below.
First Packet (New)
Field
Type
Content
Expected
Path[0]
byte (4)
Derivation Path Data
0x80000000 | 44
Path[1]
byte (4)
Derivation Path Data
0x80000000 | 626
Path[2]
byte (4)
Derivation Path Data
?
Path[3]
byte (4)
Derivation Path Data
?
Path[4]
byte (4)
Derivation Path Data
?
Other Chunks/Packets
Field
Type
Content
Expected
Message
byte (?)
Message to Sign
hexadecimal string (utf8)
Response
Field
Type
Content
Note
SIG
byte (64)
Signature
SW1-SW2
byte (2)
Return code
see list of return codes
INS_SIGN_HASH
Command
Field
Type
Content
Expected
CLA
byte (1)
Application Identifier
0x00
INS
byte (1)
Instruction ID
0x23
P1
byte (1)
----
First packet = 0x00 / More packets coming = 0x01 / Last packet = 0x02
P2
byte (1)
----
not used
L
byte (1)
Bytes in payload
(depends)
For the new app, the first packet/chunk includes only the derivation path
All other packets/chunks contain data chunks that are described below
First Packet
Field
Type
Content
Expected
Path[0]
byte (4)
Derivation Path Data
0x80000000 | 44
Path[1]
byte (4)
Derivation Path Data
0x80000000 | 626
Path[2]
byte (4)
Derivation Path Data
?
Path[3]
byte (4)
Derivation Path Data
?
Path[4]
byte (4)
Derivation Path Data
?
Other Chunks/Packets
Field
Type
Content
Expected
Hash
byte (32)
Tx Hash to Sign
Response
Field
Type
Content
Note
SIG
byte (64)
Signature
SW1-SW2
byte (2)
Return code
see list of return codes
INS_SIGN_TRANSFER
Command
Field
Type
Content
Expected
CLA
byte (1)
Application Identifier
0x00
INS
byte (1)
Instruction ID
0x24
P1
byte (1)
----
First packet = 0x00 / More packets coming = 0x01 / Last packet = 0x02
P2
byte (1)
----
not used
L
byte (1)
Bytes in payload
(depends)
For the new app, the first packet/chunk includes only the derivation path
All other packets/chunks contain data chunks that are described below