Host card emulation

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Host Card Emulation (HCE) is the presentation of a virtual and exact representation of a smart card using only software. Prior to the HCE architecture, NFC transactions were mainly carried out using the Secure Element. HCE enables the following: merchants to offer payment cards solutions more easily through mobile, closed-loop contactless payment solutions, real time distribution of payment cards and, more tactically, allows for an easy deployment scenario that does not require them to change the software inside the terminal.


HCE was a term created by the founders of SimplyTapp,[citation needed] Doug Yeager and Ted Fifelski, in 2011 to describe the ability to transact with remotely operated smart cards in Android devices. At that time RIM had played around with a similar functionality, calling it virtual target emulation; it was supposed to be available through the BB7 operating system, which was run by the Blackberry Bold 9900 device. Prior to HCE, card emulation only existed in physical space, meaning that a card could be replicated with multiple-purpose Secure Element hardware that is typically housed inside the casing of a smart phone.

The first public implementation of HCE was released and cited in the Engadget[1][not in citation given] publication August 29, 2012 by a company called SimplyTapp, Inc. when they launched their Tapp near-field communication payment wallet for the CyanogenMod Android community.

After the adoption of HCE by Android, Google had hoped that by including HCE in the world's largest mobile operating system (which by that time covered 80% of the market[citation needed]), it would offer the Android payments ecosystem a chance to grow more rapidly while also allowing Google themselves to deploy their Google Wallet more easily across the mobile network operator ecosystem.

However, even with the inclusion of HCE in Android 4.4, the banks still needed the major card networks to support HCE. Four months later, at Mobile World Congress 2014, both Visa and MasterCard made public announcements placing their support behind HCE.[2][3]

On December 18, 2014, less than ten months after Visa and Mastercard announced their support for HCE, Royal Bank of Canada (RBC) became the first North American financial institution to launch a commercial implementation of mobile payments using the HCE technology.[4]


NFC has faced adoption issues due to lack of infrastructure (terminals) and the Secure Element approach preventing organizations with the desire to participate in mobile payments from doing so due to the high up-front capital costs and complex partner relationships.

By supporting HCE in Android 4.4, Google enabled any organization that can benefit from the NFC technology to do so at a relatively low cost. Some areas the new HCE architecture can support include payments, loyalty programs, card access and transit passes.


Host Card Emulation is the ability for Near Field Communication information transfer to happen between a terminal configured to exchange NFC radio information with an NFC card and a mobile device application configured to act or pretend to emulate the functional responses of an NFC card. HCE requires that the NFC protocol be routed to the main operating system of the mobile device instead of being routed to a local hardware-based Secure Element (SE) chip configured to respond only as a card, with no other functionality.[5]

Since the release of Android 4.4, Google has implemented HCE within the Android operating system.[6] Google introduced platform support for secure NFC-based transactions through Host Card Emulation (HCE), for payments, loyalty programs, card access, transit passes, and other custom services.[5] With HCE, any app on an Android 4.4 device can emulate an NFC smart card, letting users tap to initiate transactions with an app of their choice. Apps can also use a new Reader Mode so as to act as readers for HCE cards and other NFC-based transactions.

The first known mobile handset to support anything like HCE outside of the Android family was the Blackberry bold 9900 that was first available in Thailand. released together with Blackberry 7 OS.[7]

CyanogenMod operating system was the next known mobile device operating system to support HCE [7] through the effort of modifying the NXP NFC stack known as libnfc-nxp, the NFC service manager, and operating system APIs by Doug Yeager. The OS APIs were adapted to include two new tag types that were called ISO_PCDA and ISO_PCDB which are also known terminal or PCD standards. This would imply that you could "read" a tag in the same manner that you could read a terminal..


HCE is used to allow transactions between mobile devices and other credential acquiring devices. Those devices may include other mobile devices, contactless point-of-sale terminals, transit turnstiles, or a variety of access control touch pads. For example, Android developers can leverage HCE to create specific payment experiences, such as using HCE to enable a mobile application as a transit card.[8]


  1. ^ Dent, Steve (2012-08-29). "CyanogenMod releases SimplyTapp NFC payment app for CM9, launches CM9.1". Retrieved 2014-06-20. 
  2. ^ "Visa Inc.". Retrieved 2 October 2014. 
  3. ^ "MasterCard to Use Host Card Emulation (HCE) for NFC-Based Mobile Payments". MasterCard Social Newsroom. Retrieved 2 October 2014. 
  4. ^ "RBC First bank in North America with Host Card Emulation". Retrieved 18 December 2014. 
  5. ^ a b "Android KitKat". Android Developers. Google. Retrieved 2 February 2014. 
  6. ^ "Host-based Card Emulation". Retrieved 2014-05-11. 
  7. ^ a b Clark, Sarah. "SimplyTapp proposes secure elements in the cloud". NFC World. Retrieved 2 February 2014. 
  8. ^ "[HOW-TO][CHICAGO] Ventra using SimplyTapp". XDA Developers.