Smart Cards
Java Cards and Smart Card OS Explained
Quick answer
Java Card is the stripped-down Java platform behind over 20 billion secure chips — SIMs, bank cards, ID badges — running in as little as 2 KB of RAM. This guide explains how a smart-card OS thinks, how applets are compiled, converted and loaded over GlobalPlatform secure channels, and how to spec the exact OS-and-chip pair (JCOP 4 vs 5, memory SKUs and all) on a purchase order.
- Java Card is Java on a strict diet — a stripped-down platform that runs on secure microcontrollers and lets several independent applets share one chip without pickpocketing each other's secrets.
- GlobalPlatform is the bouncer: applet installation, personalization, locking and deletion all travel over encrypted SCP02/SCP03 secure channels, so nobody sneaks code onto the card.
- Buyers get rare portability — an applet developed for one manufacturer's chip can usually be deployed on another's with minimal porting effort. Just order by OS-and-chip pair (e.g. JCOP 4 P71 144K), never 'a Java Card'.
At a glance
Use these short answers to decide whether this page matches the project before moving into the detail.
Key takeaway
Java Card is Java on a strict diet — a stripped-down platform that runs on secure microcontrollers and lets several independent applets share one chip without pickpocketing each other's secrets.
What is a smart card operating system?
Right now, without giving it a second thought, you are carrying a small fleet of computers you have never once tried to reboot: the SIM in your phone, the chip on your b...
Next step
Ready to move forward? Start your inquiry to get specific answers for this project.
Discuss Java Card projectsWhat is a smart card operating system?
Right now, without giving it a second thought, you are carrying a small fleet of computers you have never once tried to reboot: the SIM in your phone, the chip on your bank card, the secure element in your transit pass, possibly the page in your passport. Each runs a tiny operating system built on one faintly insulting assumption — the person holding the card may well be the one trying to break into it. That assumption is the whole personality of the field, and it is why smart-card software is its own engineering discipline and not just 'embedded programming with extra steps.' The OS manages the card's secure storage, cryptographic coprocessor, communication interface and application lifecycle — all in a space that makes a smartwatch look like a data center: as little as 2 KB of RAM, 64 KB of ROM and 32 KB of EEPROM. Your microwave has more memory and considerably better working conditions.
Not every card OS is equally open about its inner workings. Proprietary platforms — JCOP, MULTOS, BasicCard — sit at various points on the 'will it tell you how it works' spectrum. Java Card Open Platform (JCOP), developed originally by IBM and now maintained by NXP, is the dominant commercial Java Card OS and runs on NXP's SmartMX and Infineon's SLE78 secure microcontrollers. MULTOS is the plucky competitor, with a particularly strong presence in EMV payment cards.
A few house rules define what it's like to write software for one of these things:
- Java, with most of the fun surgically removed — Java Card OS exposes a subset of the Java language: no floating-point, no multi-threading and, on most implementations, no garbage collection.
- Everything is a conversation in hex — applets communicate with the host via APDU (Application Protocol Data Unit) command-response pairs defined in ISO 7816-4. Think very terse pen-pal letters between card and reader.
- Applets are built to ignore each other — the card's secure element provides hardware-enforced isolation, so one applet cannot access another's data without an explicit shareable interface both sides agreed to open.
- Real cryptography, on board — card OSes implement on-card cryptographic services including AES, 3DES, RSA, ECC and SHA-family hashing, so the math happens in a tamper-resistant vault rather than in software someone could poke at.
What Java Card platform editions exist?
Oracle publishes the Java Card specification in several editions, and — like phone software updates — each one adds features while quietly changing what the hardware underneath must support. Before you fall in love with a vendor, check which edition they actually implement: that single number decides which API tricks are on the menu.
Read the table bottom to top and you are watching the smart card grow up: from 'select an applet and do basic crypto' all the way to 'run TLS, keep monotonic counters and manage keys for a 5G SIM.' Newer is not automatically better — it is better if your use case actually needs the toys it adds.
| Edition | What it brought to the party | Typical chip targets |
|---|---|---|
| Java Card 2.2.x | The baseline: AID-based applet selection, basic crypto, T=0/T=1 contact | Legacy SIM cards, basic ID cards |
| Java Card 3.0.1 Classic | Contactless (ISO 14443) support, extended APDU, biometric API | Dual-interface cards, ePassports, national ID |
| Java Card 3.0.4 Classic | SCP03 secure channel, ECC support, key agreement | EMV payment, transit, high-security access |
| Java Card 3.0.5 Classic | TLS 1.2 on-card, enhanced ECC curves, IoT profiles | IoT device identity, cloud-connected secure elements |
| Java Card 3.1 | Timers, monotonic counters, extended key management | Next-gen SIM (5G), automotive, eIDAS |
How do applet development and deployment lifecycle work?
Writing for Java Card looks like normal Java development until the very end, when things take a turn for the ceremonial. The compiled applet is converted to a CAP file, escorted onto the card through an encrypted secure channel, then installed and made selectable through GlobalPlatform commands. In other words: you write ordinary-ish code, and a small ritual guarded by cryptography decides whether the card will let it in.
The journey begins with Java source code written against the Java Card API subset. The standard javac compiler produces class files; the Java Card converter tool turns those into a CAP (Converted Applet) file; and a GlobalPlatform-compliant tool such as GPShell, GlobalPlatformPro or the vendor's personalization software does the actual loading.
- Every applet gets a name tag — an AID (Application Identifier), a 5–16 byte identifier registered with the ISO 7816-5 registry or built from a proprietary prefix.
- The secure channel is non-negotiable — GlobalPlatform SCP02 and SCP03 secure channels encrypt and MAC-protect all card-management APDUs, preventing unauthorized applet installation.
- Installing means claiming space — on-card installation allocates EEPROM for the applet's persistent data and registers the applet's AID with the card manager.
- Deleting is not the same as shredding — applet deletion frees the allocated EEPROM but may not zero-fill the memory. Truly secure deletion requires explicit data-wiping logic in the applet itself. 'Emptied the trash' is not 'shredded the documents.'
- Cards can be updated from afar — over-the-air (OTA) applet management is standard for SIM-based Java Cards in telecom, using SMS-PP or HTTPS bearer channels. It is how your SIM learns new tricks without a trip to the store.
What's the difference between contact and contactless vs dual-interface Java Cards?
Java Cards come in three flavours: contact-only (ISO 7816), contactless-only (ISO 14443) and dual-interface — the 'why not both' option. For B2B applications, dual-interface is quietly becoming the default, because one credential can handle both the insert-and-wait and the tap-and-go moments of life without issuing two cards.
- Contact is the reliable workhorse — high-throughput communication (up to 921 kbps at T=1) and the interface of choice for initial card personalization and high-security key injection, where you really don't want anyone eavesdropping over the air.
- Contactless is the sprinter — operating at 13.56 MHz with typical data rates of 106–848 kbps, it delivers the sub-second taps that transit gates and access-control doors demand.
- Dual-interface shares one brain — both interfaces talk to a single secure element, so an applet installed via the contact interface is automatically available via contactless, and vice versa. Load once, tap or insert forever.
- Some doors stay contact-only on purpose — certain Java Card implementations restrict specific cryptographic operations to the contact interface, because security policy occasionally prefers the wire to the airwaves.
How do you handle B2B use cases for Java Card technology?
Java Card's multi-application architecture is exactly why it wins converged-credential programs — the ones where a single card is supposed to be your keys, your login, your lunch money and your print release all at once. The appeal is consolidation: one credential in place of the small fistful of cards and fobs currently colonizing your lanyard. And because the applet firewall keeps every application sealed in its own vault, the cafeteria applet never gets to browse the PKI applet's keys.
- The everything-badge — corporate identity badges combining physical access (DESFire applet), logical access (PKI applet), cashless vending and secure print-release on one card, so IT stops fielding 'I lost three of my four cards' tickets.
- National ID, done properly — government programs use Java Card for biometric storage, digital signature and ePassport ICAO MRTD compliance.
- Transit that moonlights — fare-collection systems running a Calypso or CIPURSE applet alongside a general-purpose loyalty applet.
- Healthcare credentials — professional badges carrying on-card X.509 certificates for ePrescription signing and facility access.
JCOP 4 vs JCOP 5 vs Java Card 3.1 — what changed and why it matters
NXP's JCOP family is the most widely deployed Java Card operating system in payment, government ID and high-assurance access control — and the 4-to-5 jump, together with the parallel Java Card 3.1 specification update, is not a fresh coat of paint. It re-platforms the cryptographic library, the secure-channel protocol stack and the certifiable footprint that procurement teams must verify on every purchase order. Skim this section if you like; your procurement team cannot.
'Just order a Java Card' is roughly as useful as 'just order a computer.' The magic words on the purchase order are the OS-and-chip pair plus the memory SKU — get those three right and re-certification nightmares (9-18 months and $200K-$1M a pop) stay comfortably hypothetical.
- JCOP 4 (Java Card 3.0.5 + GlobalPlatform 2.3) — currently shipping on the NXP SmartMX3 P71 secure microcontroller; the backbone of EMV cobranded payment, MIFARE Plus + DESFire bundled applets, USIM/SIM, transit and government eID. Supports RSA up to 4096-bit, ECC NIST P-256/P-384/P-521 + Brainpool, AES-256, 3DES, SHA-256/512. Common Criteria EAL6+ augmented (composite certification with the SmartMX3 hardware).
- JCOP 5 (Java Card 3.1 features + GlobalPlatform 2.3.1) — adds extended length APDUs (up to 32 KiB payload), an expanded elliptic-curve suite (Curve25519 / Ed25519), post-quantum-ready key agreement frameworks and the SCP11 ECDH-based secure channel for key loading. Aimed squarely at FIDO2 authenticators, eID/eMRTD with biometric ICAO 9303, and the new wave of digital identity wallets, including EUDI Wallet and mDL ISO/IEC 18013-5.
- Java Card 3.1 reference highlights — logical channels become mandatory, supplementary security domains support per-applet access control, and the new 'Sensitive Result' API allows applets to return cryptographically-tagged results that resist fault injection. Best part: backward compatibility is preserved — a Classic 2.2.2 applet CAP file still loads and runs on a Java Card 3.1 card without recompilation.
- The hardware is half the certificate — a Java Card OS only achieves its certified security level when paired with the certified secure microcontroller it was evaluated on. JCOP 4 P71 is certified on NXP P71D320; JCOP 4.7 SE051 on the SE051 IoT secure element; G+D Sm@rtCafe 7.0 on Infineon SLE 78. Always cite the OS-and-IC pair (e.g. 'JCOP 4 P71 144K') in the PO, not just 'Java Card'.
- Do the memory math before you order — a typical JCOP 4 P71 144K card holds 144 KB of EEPROM available to applets. A single payment applet (Visa VSDC, Mastercard M/Chip 4) consumes 30-60 KB, a transit applet (CIPURSE, Calypso) 20-40 KB, an eID applet (PIV, ICAO MRTD LDS) 80-120 KB. Plan the PO around the SKU SAS variant (J3R110/J3R150/J3R200/J3R300/J3R350) that fits the applet bundle plus 20% headroom for keys, certificates and audit logs.
Picking a Java Card vendor and applet ecosystem in 2026
The Java Card market has quietly consolidated around four implementations, but the applet ecosystem and certification depth vary enormously. If you are running a multi-application program — campus ID + payment + transit + access — you are not really choosing an OS. You are choosing a catalogue of certified applets available off-the-shelf and the personalisation toolchain that comes with it.
- NXP JCOP 4 / 5 (SmartMX3) — the big catalogue. Largest certified applet lineup, including MIFARE Plus, DESFire EV3 emulation, Visa, Mastercard, AmEx, JCB, Discover/PULSE payment applets; PIV, ICAO MRTD, German nPA, Estonian eID; FIDO2/WebAuthn. Tooling: NXP MIFARE SDK, JCOP Tools, ATR Editor. The default for multi-application bank-and-government cards.
- G+D (Giesecke+Devrient) Sm@rtCafe Expert — the transit and bureau specialist. Sm@rtCafe Expert 7.0 / 8.0 on Infineon SLE 78/Atos secure element. Deep transit specialisation (Calypso, CIPURSE, NFC mobile credentials), payment, German GeldKarte, Brazilian COMPE, and a strong personalisation-bureau footprint in Europe and Latin America.
- Thales Gemalto IDPrime / TOP DL — the enterprise PKI pick. TOP DL family on Infineon Integrity Guard secure controllers; the IDPrime MD line for enterprise PKI smart cards (PIV, CAC, .NET smart card emulation), strong for federal government and large enterprise deployments. ID Confirm and IDCore 3110 for banking.
- Infineon SECORA — the single-supplier route. Infineon's Java Card stack on its own SLE 78 / SLE 97 secure controllers; targets payment, transit and eID with very high write endurance (1M write cycles per page) and long retention (25 years). Often selected when a single supplier across IC and OS is a procurement requirement.
- Open-source applet stacks worth knowing — javacardio.com and crocs-muni/javacard-curated-list catalogue mature open-source applets including IsoApplet (PKCS#15), GidsApplet (Microsoft GIDS), OpenSC compatible cards, the OpenPGP card applet, the FIDO2 Salty Crypto applet and YubiKey-compatible OATH-HOTP/TOTP. Brilliant for prototypes and developer tokens; not a substitute for a certified bureau-personalised card in production.
Useful next pages
Use these linked product, guide and comparison pages to keep the next click specific and practical.
Java Card products
Java Card smart cards and dual-interface cards for multi-application identity and access-control deployments.
Smart card development tools
Readers and SDKs for Java Card applet development, testing and personalization.
Java Card and Global Platform standards
Authoritative specifications and developer references for Java Card OS, GlobalPlatform applet management and JCOP.
FAQ
Do I need to know Java to develop Java Card applets?
Basic Java knowledge is sufficient to start, but Java Card speaks a heavily restricted dialect of the language. There is no String class, no floating-point, no multi-threading and no standard Java collections. Most applet logic is low-level byte-array wrangling in APDU buffers — closer to careful accounting than to building a web app.
Can I run multiple applets on a single Java Card?
Yes — multi-application support is the whole point of the platform. Each applet is isolated in its own security context and is selected by the host using the applet's AID. The practical limit is available EEPROM and RAM, not the applet count.
What is the difference between JCOP and Java Card?
Java Card is the specification published by Oracle defining the API, runtime and virtual machine. JCOP (Java Card Open Platform) is NXP's commercial implementation of that specification on their SmartMX secure microcontrollers. Every JCOP card is a Java Card; not every Java Card is JCOP. All thumbs are fingers, and so on.
How secure is a Java Card compared to MIFARE DESFire?
Java Cards with Common Criteria EAL5+ certified secure elements generally offer higher security than DESFire EV2/EV3. They run on-card RSA, ECC and AES with hardware-protected key storage. DESFire is a fixed-function product optimized for speed and simplicity; Java Card is a programmable platform for custom security applications. Different tools, different jobs.
Can Java Card applets be updated after deployment?
Yes. GlobalPlatform defines a complete applet lifecycle — load, install, update and delete — over authenticated, encrypted secure channels (SCP02/SCP03) using MAC-protected APDU commands. Over-the-air (OTA) management is standard in telecom SIM deployments, which is why your SIM occasionally learns new tricks without you doing anything.
Why do payment networks (Visa, Mastercard, EMVCo) require Java Card and not just any smart card OS?
Because re-certifying on a different OS typically costs 9-18 months and $200K-$1M per platform. EMVCo certification of a payment applet (Visa VSDC, Mastercard M/Chip 4, AmEx ExpressPay, Discover D-PAS) is granted to the applet on a specific Java Card OS on a specific secure microcontroller — a 'composite certification' under Common Criteria EAL5+ or EAL6+, with the cryptographic library, secure messaging, fault-injection countermeasures, side-channel resistance and applet firewall all in scope. Java Card became the de-facto payment platform because NXP, G+D, Thales, Idemia and Infineon all maintain certified payment applet portfolios that issuers can mix and match.
How is a Java Card different from a SIM/eSIM and from MIFARE DESFire?
A SIM card is a Java Card with a specific applet loaded — the USIM applet, plus optional ISIM, CSIM or OTA-managed applets. The OS underneath is typically JCOP, Sm@rtCafe or G+D STARCOS, the same platforms that go into bank cards; eSIM/eUICC adds remote provisioning per GSMA SGP.22. MIFARE DESFire is a different paradigm entirely: a fixed-function file-system smart card OS (DESFire EV3 is NXP's proprietary file-system OS) where you create AID-scoped applications and files via APDUs but cannot upload arbitrary code. DESFire trades programmability for cost and certification simplicity; Java Card trades cost and footprint for full applet flexibility.
Proud Tek is a Shenzhen-based RFID & NFC manufacturer supplying hotel chains, transit operators, event venues and retail brands worldwide. Every order includes free samples, RF testing and dedicated project support.
Get a Quick Quote
Tell us about your project and we'll respond within one business day. Fields marked (asterisk) are required.
