16 Oct 2026

  • CLA = 0x80
  • INS = 0xD0
  • P1 = key type
  • P2 = 0x00
  • Data = the key data
  • Response SW = 0x9000 on success, 0x6A80 if the format is invalid, 0x6A86 if P1 is invalid
  • Response Data = the key UID, defined as the SHA-256 of the public key
  • Preconditions: Secure Channel must be opened, user PIN must be verified
  • Capability: Key management

P1:

  • 0x01 = ECC SECP256k1 keypair
  • 0x02 = ECC SECP256k1 extended keypair
  • 0x03 = Binary seed as defined in BIP32
  • 0x04 = Binary seed in LEE mode (since 4.0)

Data:

If P1 is 0x01 or 0x02

  • Tag 0xA1 = keypair template
    • Tag 0x80 = ECC public key component (can be omitted)
    • Tag 0x81 = ECC private key component
    • Tag 0x82 = chain code (if P1=0x02)

If P1 is 0x03 or 0x04 a sequence of 16 to 64 bytes generated according to the BIP39 or SLIP39 specifications is expected. The master key will be generated according to the BIP32 specifications. This is only supported if the hardware supports public key derivation.

This command is used to load or replace the keypair used for signing on the card. Loading a key replaces the previous one completely; since there is no persistent key path on the card, the next command simply carries the path it wants to use.

P1 = 0x04 derives the LEE keytree from the seed alongside the BIP-32 one and puts the card in LEE mode, reported by the SELECT status byte and used by EXPORT LEE. Loading a seed with P1 = 0x03, or loading a plain keypair, clears the LEE keytree and leaves LEE mode. See the LEE specification for what the derived material is used for.

Before 4.0, loading a key also reset the pinless path. That concept no longer exists.

Last edited
16 Oct 2026