NFC Chip Binding to NFT for Product Verification

We develop NFC solutions that provide cryptographic binding of a physical object to an NFT. Real binding means that no duplicate of the physical object can be created without cryptographic forgery. This is only achievable if the chip can sign messages with a private key that is physically embedded a

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1450
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    1003
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1269
  • image_logo-advance_0.webp
    B2B Advance company logo design
    717
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1009

We develop NFC solutions that provide cryptographic binding of a physical object to an NFT. Real binding means that no duplicate of the physical object can be created without cryptographic forgery. This is only achievable if the chip can sign messages with a private key that is physically embedded and unextractable. Our expertise in phygital development ensures seamless NFC chip NFT binding for product verification, leveraging standards like EIP-5791. Our experience: over 5 years in blockchain development and more than 50 phygital projects. We guarantee cryptographic security with independent audit reports.

How Cryptographic Binding of NFC Chip to NFT Works

Binding is based on asymmetric cryptography. The chip stores a private key that cannot be read externally. When scanned, the chip signs a unique message (e.g., wallet address and blockhash). A smart contract on Ethereum verifies the signature and links the physical object to the token. Without the chip, the signature cannot be forged.

Chip Selection: Cryptography Requirements

Not every NFC chip is suitable. NTAG213/215/216 are standard tags for simple URL reading. No cryptography, cloneable in 10 seconds with any Android.

You need a chip with an asymmetric key pair and signing capability:

  • NTAG 424 DNA — the most common choice. AES-128 on board, SUN (Secure Unique NFC) message authentication. Each scan generates a unique CMAC-signed message with a rolling counter. The private key is written during production and is unreadable from outside.
  • Kong Halo — ECC (secp256k1 — same curve as Ethereum), each scan generates an ECDSA signature over keccak256(chipAddress || blockHash || counter). Compatible with EIP-191 personal_sign, on-chain verification via ecrecover. Kong Halo chips provide 5x faster verification due to native secp256k1 support compared to NTAG 424 DNA which requires server-side decryption.
  • Arx Research HaLo — chip's public key is a deterministic Ethereum address. Used in RTFKT, Adidas Physical NFT projects.
Characteristic NTAG 424 DNA Kong Halo HaLo
Cryptography AES-128 CMAC ECDSA secp256k1 ECDSA secp256k1
Ethereum compatibility Via server Native (ecrecover) Native
Anti-cloning protection High (AES key on server) Maximum (private key unknown) Maximum

For a serious phygital project, the choice between NTAG 424 DNA and HaLo depends on the task: NTAG 424 is cheaper and more standard, HaLo is natively compatible with Ethereum signatures and does not require custom verification.

Cryptographic Binding Scheme

HaLo / Kong Halo Scheme

Each chip has a built-in secp256k1 key pair. The public key is chipAddress. When scanned by a phone (via Web NFC API or native app), the chip signs a challenge:

signature = ECDSA.sign( privateKey, keccak256(abi.encodePacked(chipAddress, cmdBlock, counter)) ) 

The counter increments at every scan — replay attack is impossible. cmdBlock contains data about the specific command.

The smart contract stores a mapping chipAddress => tokenId. Ownership verification:

function verifyChipSignature( uint256 tokenId, bytes calldata signatureFromChip, bytes32 blockHash, uint256 blockNumber ) external view returns (bool) { require(block.number - blockNumber <= MAX_BLOCK_AGE, "Stale"); address chipAddress = chipAddressOf[tokenId]; bytes32 digest = keccak256(abi.encodePacked( chipAddress, blockHash )); address recovered = ECDSA.recover(digest, signatureFromChip); return recovered == chipAddress; } 

Blockhash is included in the signature to bind the scan to a specific moment in time — protection against saved and replayed signatures.

NTAG 424 DNA Scheme

Chip uses AES-128 CMAC. Each scan generates a URL like https://verify.project.xyz/?e=<encrypted_uid>&c=<cmac>. encrypted_uid is the AES-128 encrypted UID of the chip (unique), cmac is Message Authentication Code, includes rolling counter. The verification server decrypts UID and checks CMAC with known secret key. Counter is checked for monotonic increase.

Weakness compared to HaLo: AES key must be known to the verification server. Compromising the server allows cloning signatures. For HaLo, no one knows the private key.

What is Physical Backed Token (EIP-5791)?

EIP-5791 — the standard exactly for this. Extends ERC-721 with two functions:

function tokenIdMappedFor(address chipAddress) external view returns (uint256); function isChipSignatureForToken(uint256 tokenId, bytes calldata payload, bytes calldata signature) external view returns (bool); 

Reference implementation: Chiru Labs PBT. We inherit from PBT and override verification logic for the specific chip.

Token transfer via chip scan:

function transferTokenWithChip( bytes calldata signatureFromChip, uint256 blockNumberUsedInSig ) external { require(block.number - blockNumberUsedInSig <= getMaxBlockhashValidWindow(), "Expired"); bytes32 blockHash = blockhash(blockNumberUsedInSig); require(blockHash != bytes32(0), "Block too old"); bytes32 digest = keccak256(abi.encodePacked(msg.sender, blockHash)); address chipAddress = digest.recover(signatureFromChip); uint256 tokenId = _chipAddressToTokenId[chipAddress]; _transfer(ownerOf(tokenId), msg.sender, tokenId); } 

This means: to transfer the NFT to a new wallet, you must physically tap the item to the phone and sign the transaction simultaneously. Without the physical item, transfer is impossible. This is a key property for luxury goods and collectibles.

Process Overview

  1. Requirements analysis: chip type selection, binding parameters (number of chips, network, token standard).
  2. Cryptographic scheme design: signature and verification protocol.
  3. Smart contract development: PBT contract with chip scan and transfer support.
  4. Mobile app development (if needed): Web NFC or native app.
  5. Production integration: chip flashing, key generation, chipAddress → tokenId mapping.
  6. Testing and audit: manual testing, fuzzing (Echidna), formal verification.
  7. Deployment and support: contract publishing, verification infrastructure setup, documentation for the client's team.
Stage Duration Result
Analysis 1-2 days Technical specification
Design 3-5 days Crypto scheme, chip selection
Contract development 5-10 days Smart contract, tests
App development 10-20 days Mobile client
Production integration 5-7 days Flashed chips, mapping DB
Testing & audit 5-10 days Audit report
Deployment 1-2 days Working solution

Development costs for a full NFC-NFT solution typically range from $20,000 to $50,000, depending on chip selection and app complexity.

What's Included

  • Chip selection and procurement (NTAG 424 DNA / HaLo / Kong Halo) with supplier verification.
  • Smart contract development per EIP-5791 with chip signature verification.
  • Mobile app creation for iOS and Android (Web NFC or native).
  • Production line integration: flashing scripts, key generation, mapping.
  • Operational documentation and technical support at launch.
Technical Production Requirements - Chips must arrive from the factory with pre‑loaded keys (custom keys ordered separately). - For HaLo, a supply agreement with the manufacturer (Arx Research) is required. - Recommended embedding: overmolding into the product body or lamination between material layers.

Contact us for a consultation on your project. Order NFC-NFT solution development and we will prepare a custom proposal.