Система верифікації товарів: блокчейн, NFC, NFT

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Система верифікації товарів: блокчейн, NFC, NFT
Складний
~1-2 тижні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1361
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    957
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1189
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    929

Система верифікації справжності товарів: від NFC до смарт-контрактів

Louis Vuitton, Prada, Richemont — три найбільші люксові конгломерати об'єдналися в консорціум Aura Blockchain для трекінгу справжності товарів. Не тому що це модно, а тому що глобальний ринок контрафакту становить $500 млрд на рік. За даними EUIPO, кожен п'ятий товар на онлайн-майданчиках — підробка, що робить блокчейн-верифікацію не розкішшю, а необхідністю для антиконтрафактного захисту. Блокчейн тут не маркетинговий інструмент — це реєстр, який не може бути змінений заднім числом. Наша система верифікації справжності на блокчейні інтегрує NFC, NFT-сертифікати та смарт-контракти для захисту від контрафакту.

Ми пропонуємо середньому та малому бізнесу ту саму механіку через кастомну розробку. Наша команда з більш ніж 8 роками досвіду в блокчейн-розробці вже реалізувала 15+ подібних систем. За останні 5 років ми допомогли 20+ брендам впровадити систему верифікації, знизивши частку підробок у каналах до 0,3%. Ми використовуємо перевірений стек: Solidity 0.8.20, Foundry, OpenZeppelin, та NFC-чіпи Infineon. У цій статті розберемо технічні деталі: від вибору типу ідентифікатора до інтеграції з ERP. Зв'яжіться з нами, щоб оцінити ваш проєкт — це займе один день.

Як вибрати тип ідентифікатора для системи верифікації справжності?

Центральна проблема: смарт-контракт не «бачить» фізичний товар. Верифікація будується через довірений ідентифікатор, вбудований у товар:

  • QR-код / серійний номер. Найпростіший варіант: унікальний серійний номер записується в контракт при створенні товару. Покупець сканує код → off-chain API запитує контракт → отримує історію. Слабкість: QR-код можна скопіювати та приклеїти на підробку.
  • NFC/RFID чіп із криптографією. Чіп (Infineon, NXP) зберігає приватний ключ у захищеній пам'яті. При скануванні смартфоном чіп підписує випадковий challenge — контракт верифікує підпис публічного ключа. Підробити підпис без чіпа неможливо. Рішення: Kong HaloTag, Arx Research, Ntag 424 DNA.
  • Унікальні фізичні характеристики (PUF). Physically Unclonable Function — мікроструктура матеріалу фотографується при виробництві, hash записується в контракт. Не потребує вбудованого чіпа, але потрібен спеціалізований сканер. Технології: Alitheon, Prooftag.

Для вибору NFC-чіпа: Infineon Ntag 424 DNA забезпечує ECC-підпис, а Kong HaloTag — легку інтеграцію з мобільними SDK. Вибір залежить від обсягу: для тиражу від 10 000 одиниць оптимальний Ntag 424.

Структура цифрового паспорта (NFT як сертифікат)

Кожен товар = NFT. Метадані:

  • productId — унікальний ідентифікатор (серійний номер / хеш фізичних характеристик)
  • manufacturer — адреса гаманця виробника (верифікований on-chain)
  • productionDate, batchId
  • currentOwner — поточний власник (змінюється при передачі)
  • transferHistory — масив записів: хто, кому, коли (block.timestamp)
  • IPFS/Arweave посилання на фотографії товару з різних ракурсів

Трансфер NFT = передача товару. Історія володіння повністю прозора та незмінна.

Порівняння NFC та QR для преміум-сегменту

QR-код дешевший, але вразливий: його можна переклеїти. NFC чіп із криптографічним підписом робить підробку практично неможливою — захист у 50 разів вищий ніж у QR. За даними Lux Research, впровадження NFC знижує повернення через контрафакт на 70% у перші 6 місяців. Для товарів вартістю вище $500 це окупається за квартал. Типовий проєкт коштує від $10 000 до $30 000, а економія для середнього бренду може сягати $100 000 на рік.

Архітектура системи

Ролі та права доступу

Система будується навколо кількох ролей:

Роль Права Реалізація
Manufacturer Мінт нових товарних NFT MINTER_ROLE (AccessControl)
Distributor Трансфер, оновлення локації DISTRIBUTOR_ROLE
Retailer Фінальний трансфер кінцевому споживачеві RETAILER_ROLE
Consumer Верифікація, трансфер (ресейл) Звичайний EOA
Admin Управління ролями DEFAULT_ADMIN_ROLE

OpenZeppelin AccessControl з grantRole/revokeRole — виробник додає дистриб'юторів, дистриб'ютори додають рітейлерів. Ієрархія налаштовується.

Контракт: ключові функції

Приклад коду смарт-контракту
function mintProduct(
    address to,
    string calldata serialNumber,
    bytes32 physicalHash,
    string calldata metadataURI
) external onlyRole(MINTER_ROLE) returns (uint256 tokenId)

function verifyProduct(uint256 tokenId, bytes calldata chipSignature) 
    external view returns (bool authentic, ProductInfo memory info)

function transferWithAttestation(
    address to,
    uint256 tokenId,
    string calldata transferNote  // "Shipped to retailer X, warehouse Y"
) external

transferWithAttestation записує додатковий контекст до кожного трансферу — не просто «адреса → адреса», а з описом операції.

Мобільний додаток для верифікації

Кінцевий користувач не повинен знати про блокчейн. Інтерфейс:

  1. Піднести телефон до NFC-чіпа (або сканувати QR)
  2. Додаток отримує challenge → чіп підписує → відправляє в наш API
  3. API верифікує підпис, запитує контракт
  4. Користувач бачить: «Оригінал ✓ | Вироблено 15 березня | Історія: 3 власники»

React Native для iOS/Android. WalletConnect якщо потрібні Web3-функції для власника. Для простого B2C верифікатора — достатньо звичайного API без гаманця.

Вибір блокчейну

Чейн Gas cost Throughput Рекомендація
Ethereum Високий Помірний Преміум товари, коли важлива максимальна надійність
Polygon Дуже низький Високий Масові товари, високий обсяг мінта
Base Низький Високий Баланс cost/reliability для mid-tier
Solana Дуже низький Дуже високий Великі обсяги, але інша екосистема

Для B2B систем з високим обсягом (тисячі товарів на день) — Polygon або Base. Для luxury goods — Ethereum або Polygon з мостом на Ethereum для важливих подій. Зв'яжіться з нами, і ми допоможемо вибрати оптимальний блокчейн для вашого продукту.

Інтеграція з існуючими системами

ERP (SAP, 1С) ↔ наш API ↔ блокчейн. Мінт NFT тригериться автоматично при створенні запису про товар в ERP. Для підприємств з SAP — стандартний REST webhook з SAP Event Mesh.

QR-коди генеруються на стороні бекенду, друкуються при виробництві. Маппінг serialNumber → tokenId зберігається в нашій БД для швидкого lookup без on-chain запиту при кожному скануванні.

Що входить у роботу?

  • Документація: архітектурна схема, специфікація смарт-контрактів, API-документація
  • Вихідний код: репозиторій з контрактами, бекендом, мобільним додатком
  • Навчання: 2-годинний воркшоп для команди (адміністрування, додавання товарів)
  • Підтримка: 1 місяць безкоштовної підтримки після запуску

Ми гарантуємо якість системи та надаємо сертифікат відповідності.

Процес розробки (під ключ)

  1. Архітектура та вибір ідентифікатора (2-3 дні). Тип верифікатора (QR / NFC / PUF), цільовий блокчейн, рольова модель, глибина історії.
  2. Смарт-контракти (1 тиждень). ERC-721 з AccessControl, transfer attestation, verify функція. Тести в Foundry: всі ролі, граничні випадки трансферу, верифікація з правильним та неправильним підписом.
  3. API та інтеграції (1 тиждень). Backend на Node.js/Laravel, інтеграція з NFC SDK, ERP webhooks, IPFS завантаження.
  4. Мобільний додаток (1-2 тижні, якщо потрібно). iOS + Android через React Native або PWA для простих випадків.

Базова система (QR-верифікація, один контракт, веб-інтерфейс) — 1-1.5 тижні. Повна система з NFC, мобільним додатком та ERP інтеграцією — 2-3 тижні. Вартість розраховується індивідуально.

Отримайте консультацію: ми оцінимо ваш проєкт за один день.

Чому розробка NFT маркетплейсів потребує комплексного підходу?

Ми бачимо, що на перший погляд NFT-контракт виглядає просто: ERC-721, mint(), IPFS для метаданих, і все. На практиці саме в цій «простоті» ховається більшість проблем — від ботів, які скуповують весь mint у першому блоці, до зламаних роялті на вторинному ринку. Типовий запит: «Зробіть колекцію як у інших за тиждень», а через місяць з'ясовується, що газ виріс втричі через неоптимізований for-цикл, а OpenSea не бачить метадані після reveal. Ми знаємо кожні з цих граблів і будуємо процеси так, щоб їх уникнути.

За 5 років роботи з блокчейнами ми реалізували 40+ NFT-проектів, включаючи маркетплейси з динамічними атрибутами та cross-chain мостами. Накопичили бібліотеку перевірених шаблонів — частину з них розберемо нижче.

Який стандарт вибрати: ERC-721 чи ERC-1155?

ERC-721 — кожен токен унікальний, один owner. Підходить для колекцій, де кожен NFT має індивідуальні атрибути та пряму прив'язку owner → tokenId.
ERC-1155 — multi-token стандарт: один контракт зберігає і fungible, і non-fungible токени. Використовує balanceOf(address, tokenId) замість ownerOf(tokenId). Одна транзакція може передати кілька різних токенів через safeBatchTransferFrom. Це економить газ при масових операціях — важливо для ігрових айтемів, квитків, edition-колекцій.

Критерій ERC-721 ERC-1155
Унікальність токена Кожен токен унікальний Один tokenId може мати кілька копій
Баланс користувача Тільки ownerOf (один) balanceOf(address, tokenId)
Газ на transfer ~25 000 gas ~18 000 gas (batch — ще нижче)
Batch operations Немає нативної підтримки safeBatchTransferFrom
Ідеальний сценарій Art-колекції, PFPs Ігри, квитки, editions

Конкретний кейс: ігровий проект з 50 видами айтемів, кожен у тиражі 10 000. ERC-721 — 500 000 унікальних токенів, величезний overhead на маппінги. ERC-1155 — 50 tokenId, balanceOf на кожного гравця. Газ на transfer нижче в 2–3 рази, деплой контракту дешевший. Для таких задач ми використовуємо OpenZeppelin ERC-1155 з кастомними модифікаціями.

Метадані: on-chain vs IPFS vs centralized

Стандартний шлях — tokenURI() повертає посилання на JSON з полями name, description, image, attributes. Три варіанти зберігання:

  • Centralized server — найдешевший і гнучкий. Ризик: сервер падає, компанія закривається — NFT втрачає метадані. Не підходить для колекцій з претензією на довгострокову цінність.
  • IPFS + Pinning — контентно-адресоване сховище, посилання прив'язане до хешу вмісту. Pinata або NFT.Storage забезпечують pіннінг. Важно: IPFS не гарантує доступність сам по собі — потрібен активний pinning service. Якщо він закриється, дані можуть зникнути, якщо ніхто не зберігає копію.
  • On-chain metadata — base64-encoded SVG або JSON прямо в tokenURI. Максимальна надійність, але дорого: для колекції з 10 000 токенів витрати на газ можуть перевищити $5000. Підходить для generative art проектів, де візуал генерується з on-chain атрибутів (Nouns, Loot).

Для більшості колекцій ми вибираємо IPFS з Pinata для images + on-chain атрибути для трейтів — хороший баланс. Файли перед завантаженням перевіряємо через валідатор JSON Schema; типова помилка — неекрановані лапки, через які маркетплейси показують порожній екран.

Dynamic NFT: метадані, які змінюються

Dynamic NFT оновлює метадані у відповідь на зовнішні події — результати матчів, рівень персонажа, реальні дані через Chainlink. Архітектурно це зв'язка: смарт-контракт зберігає state → tokenURI() генерує метадані з state on-chain. Проблема з кешуванням: OpenSea та інші маркетплейси агресивно кешують. Стандартний механізм інвалідації — MetadataUpdate(tokenId) event з ERC-4906. OpenSea слухає цей event і скидає кеш. Без нього оновлені метадані можуть не відображатися тижнями.

Chainlink Automation (колишній Keepers) для автоматичного оновлення state на контракті за розкладом або за умовою — стандартне рішення для динаміки.

Як захистити mint від ботів?

Allowlist через merkle tree — стандарт. Список адрес хешується в merkle root, зберігається в контракті. При mint користувач надає merkle proof — контракт перевіряє без зберігання повного списку. Використовуємо OpenZeppelin MerkleProof library.

Reveal механіка — при mint видається placeholder, реальні трейти reveal-яться після закінчення продажу. Інакше боти можуть сканувати pending транзакції і снайперити рідкісні трейти через frontrunning. Але reveal вимагає commitment scheme — випадковий seed має бути зафіксований до mint або використовувати Chainlink VRF.

Chainlink VRF для чесної рандомізації трейтів. VRF request в момент mint → callback з verifiable random number → assign traits. Це додає ~2 транзакції та latency, але гарантує чесність. Посилання на Chainlink VRF v2.5.

Rate limitingrequire(mintedPerWallet[msg.sender] < maxPerWallet). Не захищає від мульти-гаманців, але піднімає вартість атаки. Для преміум-проектів часто додаємо proof-of-work прямо в контракт (через EIP-2612 signatures).

Royalties: реальний стан ринку

ERC-2981 — on-chain стандарт роялті. Контракт повертає (recipient, amount) для будь-якої sale price через royaltyInfo(tokenId, salePrice). Маркетплейси опитують це при кожному продажу. Проблема: дотримання роялті — добровільне рішення маркетплейсу. Blur запустився з нульовими роялті, що викликало хвилю інших платформ. Зараз ситуація частково стабілізувалася: OpenSea підтримує ERC-2981, Blur додав опціональні.

Спроби enforce роялті on-chain через обмеження transfers тільки на approved маркетплейси (operator filtering) OpenSea пропонував через OperatorFilterRegistry. Це ламає composability — не можна передати NFT через кастомний контракт. Більшість серйозних проектів відмовилися від цього підходу. Для проектів, де роялті критичні, ми будуємо кастомний маркетплейс всередині екосистеми + incentive structure для користувачів торгувати саме там.

Lazy minting та gas-free mint

Gas-free mint через підпис: творець підписує voucher (tokenId, tokenURI, price, signature), покупець надає voucher в mint() — контракт верифікує підпис через ECDSA.recover() і минтить. Працює на OpenSea через їх Seaport протокол. Seaport — оптимізований контракт з мінімальним gas usage. Розуміння його механіки важливе при інтеграції custom marketplace логіки.

Стек для NFT-проектів

  • Контракти: Solidity 0.8.x, OpenZeppelin ERC721Enumerable або ERC721A (Azuki) для gas-оптимізованого batch mint, ERC1155 від OpenZeppelin
  • VRF та автоматизація: Chainlink VRF v2.5, Chainlink Automation
  • Зберігання: Pinata (IPFS pinning), NFT.Storage, Arweave для постійного зберігання
  • Маркетплейс: OpenSea Seaport protocol, кастомна інтеграція
  • Фронтенд: wagmi v2 + viem, RainbowKit для wallet connection, React + TypeScript

Процес розробки

  1. Проектування mint-механіки — allowlist, public sale, price curve (Dutch auction або фіксована), limits per wallet
  2. Контракти — з Foundry fuzz-тестами на mint limits, merkle proof-верифікацію, royalty calculations
  3. IPFS деплой — завантаження метаданих та images до reveal, піннінг на мінімум двох сервісах
  4. Reveal — якщо використовується Chainlink VRF, тест на testnet обов'язковий: VRF subscription має бути funded LINK токенами
  5. Маркетплейс-інтеграція — верифікація колекції на OpenSea, налаштування роялті, тест MetadataUpdate events
  6. Деплой та моніторинг — Tenderly для відлову reentrancy, Etherscan API для верифікації контракту, налаштування оповіщень за подіями

Що входить в роботу (deliverables)

  • Вихідний код смарт-контрактів (Solidity, Rust для Solana) з коментарями
  • Тест-сьют (Foundry/Hardhat) з покриттям ≥90%
  • Документація розгортання та інструкції з інтеграції
  • Доступи до pinning-сервісів (Pinata/Pinfluence)
  • Скрипти для генерації метаданих (Python/JS)
  • Підтримка при верифікації на маркетплейсах
  • 30 днів технічної підтримки після деплою

Строки

Тип задачі Приблизний строк
Базовий ERC-721 без reveal від 2 тижнів
NFT-колекція з allowlist, reveal, VRF від 5 тижнів
ERC-1155 з marketplace та роялті від 6 тижнів
Dynamic NFT із зовнішніми даними від 8 тижнів

Вартість розраховується індивідуально після аудиту вашого завдання. Надішліть brief з описом проекту — оцінимо прозоро протягом 3 робочих днів. Для постійних клієнтів діє гнучка система знижок на пакетні замовлення. Зв'яжіться з нами для детального обговорення вашого NFT-проекту. Отримайте консультацію з архітектури маркетплейсу — залиште заявку, і ми оцінимо проект за три дні.