Background

The Problem with UPC Barcodes

Barcodes have been the go-to method of product identification in supply chains and supermarkets since the ‘70s. Since the beginning, the entire process of creating a Universal Product Code (UPC) and converting it to a barcode has been completely centralized. First, you must purchase or license a UPC from a trusted UPC seller. On top of this, data for UPCs is stored multiple on databases managed by different parties, which increases the possibility of incorrect and/or outdated information regarding a product’s name, size, and supply chain history. On the right is an example of a barcode.

Today, many retailers utilize the UPC-A barcode. A UPC-A barcode is composed of 12 numerical digits. It starts with a single-digit system character, indicating the category of the product, such as a regular product, a weighted item, pharmaceuticals, coupons, and so on. This is followed by a five-digit number assigned to the manufacturer, a five-digit product identifier, and concludes with a checksum digit for verification. Each digit is uniquely represented by a pattern comprising two bars and two spaces of variable widths. Only numerical digits are permitted; letters and special characters are excluded.

UPCs vs SKUs vs Serial Numbers, what?

A Universal Product Code (UPC) and a Stock-Keeping Unit (SKU) essentially serve the same purpose: to identify products for inventory and tracking reasons. If we were talking about clothes, all red size eight blouses would have the same SKU and UPS from the maker for a particular style. Cars and appliances such as TVs and refrigerators would also share SKUs and UPCs, but each would have a unique serial number that is used when requesting repair or other related services.: Why do we need three codes to identify the same product in different contexts?

Solution

💡 Develop a secure, transparent, and scalable QR-code blockchain-backed system capable of simplifying supply chain and retail interactions.

Capturing and Separating Product Data in Groups

This section shows the different data collected depending on the context in which the product is observed: for all products (ex. all “Marketside Organic Cage-Free Large Brown Eggs”) and for each product specifically (ex. picking up and looking at one container of “Marketside Organic Cage-Free Large Brown Eggs” at Walmart specifically). It is also divided into static vs dynamic data, where static is specific to the immutable manufacturer and distributer information of the product, and dynamic is specific to mainly the retailer selling the product.

Static Data Appl. to All Products:

  • Product Name
  • Universal Product Key (UPK): See later section
  • Manufacturer/Brand Name
  • Product Category
  • Ingredients/Nutrition/List of Materials
  • Certifications
  • Batch/Lot Number

Dynamic Data Appl. to All Products:

  • Retail Price
  • Stock Levels
  • Shipment Information
  • Product Location and Placement

Static Data Appl. to a Product:

  • Country of Origin
  • Sell By Date
  • Expiration Date
  • Supply Chain Path

Dynamic Data Appl. to a Product:

  • Quality Inspection Results

Product Lines and Individual Products

Product Lines = NFT Taxons/Collections

Individual Products = The NFT

What if Product QR Codes Were Mapped to an NFT?

Leveraging the power of storing data within a QR code, we can store an entire NFT ID inside of it. On the NFT itself, we can store metadata linked to most of the static Product Data listed above. Scanning a product’s QR will essentially return the NFT ID, which contains identifying information:

  1. The Product’s UPK (See next section. Identifies the product line, like the UPC/SKU)
  2. The Product’s NFT ID (Identifies the Individual Product)

Products, including food items, don’t need the extra overhead that comes with barcodes, as much of their data is static anyway. There’s no need to store this metadata in a database. Rather, we can store it on a blockchain!

Introducing the Universal Product Key (UPK)

UPK = SHA256(Manufacturer NFT ID + Product NFT Taxon)

  • Manufacturer NFT ID -> A unique identifier for a manufacturer or maker of a product. Product NFT Taxon -> An arbitrary taxon, or shared identifier, for a series or collection of related NFTs.

The UPK is a unique approach to solving the UPC vs SKU problem. UPK harnesses the security and immutability of the blockchain to generate universally unique codes for product lines. With this solution, a unique “key” is generated for any product stored on the blockchain, replacing the need for two separate codes. Serial numbers, however, well they’re just the Product’s NFT ID or Hash!

Scannable NFTs: Tracking Ownership Along The Supply Chain

As a product moves along the supply chain, an NFT should be able to change ownership by simply and quickly scanning the QR code at the next destination. But there are considerations:

  1. We don’t want anyone to be able to scan a QR code and receive ownership
  2. A retailer might buy thousands of products at a time (thousands of individual NFTs)

We can solve this by implementing functions into smart contract logic that allow the current owner to transfer or sell either one or many NFTs in a collection to an entity (a distributor, a retail store, a buyer, etc.).

Built With

Share this project:

Updates