Developers
Getting Started
16 Oct 2026

This guide gets you from a blank card to a working development setup: initializing a Keycard, reinstalling applets for testing, and knowing which card hardware the applet runs on. Keycard ships with pre-installed applets, ready for initialization.

tip
Before integrating, skim Core Concepts for the card lifecycle and credentials model (PIN, PUK, the identity certificate). Once your card is set up, continue with the Keycard SDK — or the Keycard API if you're implementing the protocol directly. If you are migrating from an older integration, read Changes in 4.0 first.

For developers, the recommended path is Keycard CLI with a USB reader: it exposes every applet command, handles initialization, credential changes and key management, and the repository contains example scripts for common workflows.

For end-users, any wallet that integrates Keycard directly will handle initialization in-app — currently Status mobile (NFC), Status desktop and Sparrow (USB reader); see the full list.

Keycard applets are pre-installed. In some cases you might want to reset the applet status completely for testing purposes. This is done by reinstalling the applet, which can be accomplished using the Keycard CLI with a USB reader:

keycard install --applet-file PATH_TO_CAP_FILE

The repository contains example scripts for applet reinstallation. Since applet 4.0 the card also needs an identity certificate before it will respond — see Build Your Own Keycard.

The Keycard applet can be installed not only on our cards, but on any JavaCard that supports the required cryptographic algorithms — see the up-to-date list in the status-keycard README. All allocations, instantiations and checks are performed at installation time, so if installation succeeds, the applet will work fine.

After initialization, verify the firmware by checking the applet version via Keycard CLI. Ensure it matches the latest release (e.g., 4.0) on GitHub. A genuine card also reports a certificate signed by the Keycard CA, which is what the CLI and compatible wallets check to confirm the card was not tampered with.

Last edited
16 Oct 2026