The getNFCPeer() method of the MozNFC interface returns a Peer to Peer DOM object (MozNFCPeer) that can be used to transfer data to another NFC-enabled device.


MozNFCPeer getNFCPeer(DOMString sessionId);


var tnf     = 1;                                             // NFC Forum Well Known type
var type    = new Uint8Array(fromUTF8("U"));                 // URL type
var id      = new Uint8Array(fromUTF8(""));                  // id
var payload = new Uint8Array(fromUTF8("\")); // URL data, with a record prefix 0x3 replacing http://
var ndefRecords = [new MozNDEFRecord(tnf, type, id, payload)];
var nfcdom = window.navigator.mozNfc;

nfcdom.onpeerready = function(event) {
  var nfcPeer = nfcdom.getNFCPeer(event.detail);  // 'event.detail' has session id.
  var req = nfcpeer.sendNDEF(ndefRecords);        // push NDEF message to other NFC device.
  req.onsuccess = function(e) {
    console.log("Successfully pushed P2P message");
  req.onerror = function(e) {
    console.log("P2P push failed!");


sessionId: A DOMString representing a session id that uniquely identifies a peer for the session in which they are available. The sessionId is made available when the peerready event fires (mozNFc.onpeerready), under the detail property of the event (see var nfcPeer = nfcdom.getNFCPeer(event.detail); above).


A MozNFCPeer object.


If the sessionId is invalid or expired, getNFCPeer throws the error "Unable to create NFCPeer object, Reason:  Bad SessionToken."


The NFC implementation in Gecko follows the NFC Forum specifications.

Browser compatibility

Supported in Firefox OS 2.0 for certified-apps.
Available in privileged apps as of Firefox OS 2.2.

See also