Custom Smart Card Development

JavaCard and JCOP Custom Development

JavaCard is the global standard for secure smart card applications, running on an estimated 15 billion cards worldwide. We develop on NXP JCOP 4.5 P71 — the most advanced JavaCard platform available.

Gradient Line

JavaCard: The Global Standard for Secure Smart Card Applications

JavaCard is a subset of the Java programming language tailored for resource-constrained smart cardhardware. It provides a portable, secure execution environment that isolates applets from each other andfrom the underlying hardware, making it the trusted foundation for identity, payment, and authenticationapplications worldwide.

The JavaCard architecture consists of three core components: the Java Card Virtual Machine (JCVM),which executes the compiled bytecode; the Java Card Runtime Environment (JCRE), which managesapplet lifecycle and inter-applet communication; and the JavaCard API, which exposes cryptographicprimitives, I/O channels, and security services to applet code.

Security is enforced at every layer. The JCVM’s bytecode verifier ensures that no applet can accessmemory outside its designated heap. The firewall mechanism prevents unauthorised sharing of objectsbetween applets. Cryptographic keys are stored in non-volatile memory and are never exported inplaintext — they are referenced only through opaque key handles within the applet’s own securitydomain.

The current specification, Java Card 3.1, introduced extended APDU support, improved multi-selectable
applet semantics, and extended the cryptographic API to include modern elliptic curve operations.
Cryptnox develops exclusively to Java Card 3.1 on the NXP JCOP 4.5 P71, which provides full compliance with this specification alongside significant hardware-level extensions.

15 Billion+

Cards worldwide running JavaCard across payment, identity, and authentication use cases

3 Components

JCVM, JCRE, and JavaCard API form the
complete runtime architecture

Java Card 3.1

Current specification — the platform we target
for every development engagement

Gradient Line

NXP JCOP 4.5 P71: The Platform We Build On

The NXP JCOP 4.5 P71 is the most capable secure element available on the commercial market. It is builton NXP’s P71 security controller, which combines an ARM SC300 processor core with the FAME3cryptographic coprocessor — a hardware accelerator supporting ECDSA, RSA, and symmetric operationsat speeds that make NFC-constrained transaction windows easily achievable.

The P71 carries an EAL6+ Common Criteria certification, the highest assurance level for commerciallyshipping secure elements. This certification covers the hardware, the JCOP operating system, and theGlobalPlatform implementation, giving integrators a complete security package without any additionalevaluation burden. The platform is compliant with EMVCo, FIDO2, and ISO/IEC 7816.

What distinguishes JCOP 4.5 from earlier generations is the SecureBox coprocessor environment, whichallows native C code to run inside the secure element alongside standard JavaCard applets. Thiscapability — unique to the P71 platform — allows Cryptnox to implement cryptographic algorithms thatare simply not available through the JavaCard API: Keccak-256, BLAKE2b, Poseidon, RedDSA, andBLS12-381 among others. The result is a platform that can address any cryptographic requirement,including the exotic primitives demanded by modern blockchain protocols.

JCOP 4.5 Extensions

JCOPX crypto extensions · ECCMath API · SecureBox environment

white-triangle

JavaCard 3.1 VM

Standard crypto API · GlobalPlatform 2.3 · Applet lifecycle

white-triangle

NXP P71 Hardware

ARM SC300 · FAME3 coprocessor · TRNG · EAL6+ certified

Gradient Line

When Standard JavaCard Is Not Enough: NXP SecureBox

The JavaCard API covers a well-defined set of cryptographic primitives that have been stable for years:RSA, AES, 3DES, ECDSA over NIST curves, and a handful of hash functions. This set is sufficient fortraditional applications — payment, identity, FIDO2 authentication — but it leaves an entire generation ofmodern cryptographic protocols unsupported.

NXP SecureBox is the answer. It is a native C execution environment embedded in the JCOP 4.5 P71’ssecure enclave that runs alongside the JavaCard VM. SecureBox modules are compiled C binaries thatexecute directly on the hardware, with access to the full cryptographic coprocessor and without theabstraction overhead of the Java layer. They are callable from JavaCard applets through a definedinterface, bridging the gap between standard JavaCard and custom hardware-level implementations.

Cryptnox has implemented and productionised SecureBox modules for the following algorithms, all ofwhich are unavailable through any standard JavaCard API on any other commercial platform. Theseimplementations have been tested against official test vectors and are running in deployed Cryptnoxhardware wallets today.

JavaCard JCOP feature highlight

Keccak-256

Ethereum address derivation and transaction signing. The original Keccak variant used by Ethereum, distinct from the NIST SHA-3 standardisation.

JavaCard JCOP feature highlight

BLAKE2b-512

Zcash protocol hashing as specified in RFC 7693. Used in the Zcash transaction commitment scheme and Sapling note commitments.

JavaCard JCOP feature highlight

Poseidon-Stark252

StarkNet zero-knowledge proof circuits. The specific Poseidon
instantiation used in StarkNet’s Cairo VM for on-chain state commitments.

JavaCard JCOP feature highlight

Poseidon-Mina/Kimchi

Mina Protocol on-chain state hashing. The Kimchi-instantiated Poseidon variant used in Mina’s recursive SNARK proof system.

JavaCard JCOP feature highlight

RedDSA/Pallas

Zcash Orchard shielded transactions. The RedDSA signature scheme over
the Pallas curve used in Zcash’s Orchard protocol.

JavaCard JCOP feature highlight

BLS12-381

Ethereum 2.0, Filecoin, and Chia signatures. Pairing-friendly elliptic curve used for threshold signatures and proof aggregation.

Gradient Line

Our JavaCard Development Services

Applet Design & Architecture

APDU protocol design, command and response structure definition, security domain configuration, and non-volatile memory layout planning for optimal performance and longevity.

Cryptographic Protocol Implementation

ECDSA, EdDSA, ECDH, SCP03 key agreement, certificate parsing and generation, key derivation schemes, and secure channel establishment over standard and extended APDU.

GlobalPlatform Integration

Security domain setup, SCP02 & SCP03 channel configuration, applet lifecycle management, delegated & authorised management, & multi-provider deployment architectures.

Performance Optimisation

Hardware accelerator utilisation, NFC transaction timing analysis, APDU batching optimisation,
EEPROM write minimisation, and power budget profiling for contactless use cases.

Testing & Verification

Test vector validation against NIST & protocolspecifications, integration testing with PC/SC & NFC readers, stress testing under realistic transaction loads, & timing analysis for side-channel resistance assessment.

Gradient Line

Smart Card Operating System Customisation

In addition to applet-level development, Cryptnox offers operating system level customisation of theJCOP 4.5 environment. OS customisation sits below the JavaCard layer and governs how the cardmanager, security domains, and lifecycle states are configured before any applets are loaded. Theseconfigurations are permanent and cannot be altered after card issuance, making correct initialspecification critical.

We work directly with NXP’s configuration toolchain to define root security domain key sets, establish thesecurity domain hierarchy, configure lifecycle state transition policies, and build personalisation scriptsfor production key injection. This service is typically required by enterprise customers who need tomaintain full operational control over issued cards, independent of any third-party applet provider.

Card Manager Configuration

Root security domain key definition, initial authentication mechanism selection, and card manager privilege assignments that govern all subsequent applet loading and management operations.

Security Domain Architecture

Multi-provider application isolation through supplementary security domains, delegated management privilege chains, and authorised management configurations for
controlled third-party applet deployment.

Lifecycle Management

Per-state operation policies defining which commands are permitted in OP_READY, INITIALISED, SECURED, and LOCKED card states, with transition triggers appropriate
to the deployment model.

Personalisation Scripts

Production key injection sequences, card profile data personalisation, initial applet pre-loading, and post-issuance lock-down procedures for batch card manufacturing
workflows.

Gradient Line

Frequently Asked Questions

What is the difference between JavaCard development and NXP SecureBox development?

JavaCard development uses the high-level Java Card 3.1 API — well-documented, portable across JavaCard-compliant chips, and ideal for standard cryptography (RSA, ECDSA on P-256/P-384, AES, SHA-2/3) plus applet business logic. NXP SecureBox is a native C runtime, JCOP-specific, that exposes lower-level access to the FAME3 cryptographic coprocessor. SecureBox is the right choice when you need cryptography outside the JavaCard API — exotic curves (Pallas, BLS12-381), custom hash functions (Poseidon, BLAKE2), or signature schemes that have no JavaCard primitive. Most real projects are a hybrid: JavaCard for the applet shell and standard operations, SecureBox for the protocol-specific cryptography.

Can a custom JavaCard applet be installed on Cryptnox's existing hardware wallet products?

Yes. Cryptnox hardware wallet cards run on the same JCOP 4.5 P71 platform and support multi-application loading. A custom applet can coexist with the wallet applet, sharing the secure element’s tamper-resistance while staying isolated by GlobalPlatform secure channels. This is a common pattern for enterprises that want both a hardware wallet and a custom signing applet (document signing, identity attestation, or domain-specific tokens) on the same card.

How long does a typical JavaCard applet development engagement take?

Standalone JavaCard applets: 3–6 months from kickoff to production. Hybrid JavaCard + SecureBox projects: 6–9 months. Variation depends on the complexity of the applet logic, the host-side integration scope, and whether Common Criteria evaluation is required (add 6–12 months for the certification lab).

Does Cryptnox provide the physical cards for custom development projects?

Yes. We supply JCOP 4.5 P71 cards in development quantities (50–100) for engineering and integration testing, then production quantities (1,000+) for rollout. Cards are available in dual-interface (contact + NFC) form factor with optional MIFARE DESFire EV2 4K coexistence. Custom artwork, embossing, and personalization are handled in the production phase.

Ready to Build Your JavaCard Applet?

Contact our engineering team to discuss your JCOP development project.

Gradient Line

Continue Exploring Our Smart Card Development Services

Overview of our development capabilities on NXP JCOP 4.5 P71. Learn more →

NXP JCOP P71 secure element integration for IoT, payments, identity, and blockchain. Learn more →

White-label hardware wallet cards for any blockchain protocol — including non-standard cryptography. Learn more →

Card-form-factor FIDO2 keys for enterprise authentication and passkey deployments. Learn more →

Dual-interface NFC smart cards for access, identity, supply chain and multi-application use cases. Learn more →

Real-world SecureBox / JavaCard projects on NXP JCOP P71 — verified on production hardware. Learn more →