Ми створюємо платформи NFT-квитків, які вирішують системні проблеми ринку: скельпери скуповують квоти через ботів і перепродають з націнкою 300–500%, а організатор втрачає контроль над вторинним обігом. Візьмемо великий музичний фестиваль: 50 000 відвідувачів, середня ціна квитка $200. При скельпінгу організатор втрачає до 30% виручки — $3 млн. Наш клієнт з Європи після впровадження NFT-квитків скоротив втрати від перепродажу на 95% за перший сезон. Вартість розробки базової платформи — від $15 000, а економія для організатора за рахунок зменшення скельпінгу може сягати $3 млн на великому фестивалі. Наші рішення блокують ці сценарії на рівні смарт-контрактів. Стандартний квиток — це підпис на папері або запис у базі даних. NFT-квиток — це смарт-контракт, який сам керує правами та перевірками. Така архітектура дає організатору інструменти, недоступні традиційним системам. Хочете таку ж ефективність? Зв'яжіться з нами.
«ERC-2981 defines a standardized way to retrieve royalty payment information for non-fungible tokens.» — Ethereum Improvement Proposals
Як працює захист від перепродажу?
Контракт будується на базі ERC-721 з розширеннями, які перекривають стандартний transferFrom. Ключові механіки:
- Роялті на вторинних продажах реалізуються через ERC-2981 (
royaltyInfo). Організатор отримує відсоток від кожного перепродажу автоматично — без посередників. Стандарт підтримується OpenSea, Blur, LooksRare. - Whitelist і ліміти покупки — через Merkle Tree для газ-ефективної верифікації. Зберігаємо тільки root-хеш, користувач надає proof.
- Soulbound-режим робить квиток non-transferable після валідації входу. Реалізується через override
_beforeTokenTransferз перевіркою флагаisUsed. - Динамічний URI змінює метадані залежно від стану: до події, після валідації, після використання.
function _beforeTokenTransfer( address from, address to, uint256 tokenId, uint256 batchSize ) internal override { require(!usedTickets[tokenId], "Ticket already validated"); if (transferRestricted[tokenId]) { require(from == address(0) || to == address(0), "Non-transferable"); } super._beforeTokenTransfer(from, to, tokenId, batchSize); } On-chain vs off-chain валідація
| Критерій | On-chain валідація | Off-chain з підписом |
|---|---|---|
| Прозорість | 100% on-chain запис | Підпис перевіряється off-chain, write батчем |
| Пропускна здатність | ~10 входів/хв (Ethereum) | до 1000 входів/сек |
| Вартість | ~$0.01 на Polygon, $1+ на Mainnet | < $0.001 на перевірку |
| Підходить для | VIP-заходи, малі концерти | Фестивалі, стадіони |
Для фестивалів з тисячами одночасних входів використовуємо другий варіант з локальним кешем станів токенів, що синхронізується кожні 30 секунд через WebSocket підписку на Transfer-події. Використання L2 рішень, таких як Polygon, знижує комісії на 99% порівняно з Ethereum Mainnet. Polygen кращий за Ethereum у 250 разів за вартістю транзакцій — це дозволяє економити при масовому випуску квитків.
Процес перевірки квитка (off-chain)
- Користувач відкриває додаток і показує QR-код, що містить підписане EIP-712 повідомлення
{tokenId, eventId, timestamp}. - Валідатор сканує QR, витягує підпис і дані.
- Валідатор перевіряє підпис через
ecrecoverі переконується, що адреса є власником токена (викликownerOfчерез RPC). - Якщо підпис валідний і квиток не використаний — пропускаємо.
- Флаг використання фіксується off-chain у базі, on-chain write — опціонально батчем після події.
On-chain валідація дає 100% прозорість, а off-chain підпис обробляє до 1000 входів на секунду — в 50 разів швидше. Off-chain кращий для масових заходів у 50 разів за швидкістю, що робить його оптимальним для великих подій.
Які блокчейни обрати для NFT-квитків?
| Блокчейн | Середня комісія за mint | Підтвердження | Екосистема маркетплейсів |
|---|---|---|---|
| Ethereum (L1) | ~$5 | 12-15 сек | Повна (OpenSea, Blur) |
| Polygon (L2) | ~$0.02 | 2-3 сек | Широка (OpenSea, Quickswap) |
| Arbitrum (L2) | ~$0.10 | 1-2 сек | Хороша (OpenSea, Uniswap) |
| Solana (non-EVM) | ~$0.0002 | <1 сек | Обмежена (Magic Eden) |
Для масових заходів з низькою маржею рекомендуємо Polygon або Arbitrum: комісія не вдаряє по гаманцю, а швидкість влаштовує більшість користувачів. Ethereum Mainnet виправданий тільки для преміальних подій з високим чеком.
Чому обирають NFT-квитки?
- Мінімізація скельпінгу за рахунок whitelist, лімітів та soulbound-режиму.
- Автоматичні роялті на вторинних продажах без посередників.
- Прозора аналітика: кожен продаж і вхід видно в блокчейні.
- Персоналізація: динамічні метадані змінюють зовнішній вигляд квитка після події.
Frontend і користувацький потік
Користувач купує через стандартний dApp:
- Підключення гаманця (wagmi + RainbowKit)
- Вибір категорії та кількості квитків
- Якщо presale — whitelist перевірка через Merkle proof
- Оплата в ETH/MATIC/USDC через
mint() - Квиток з'являється в гаманці як NFT, відображається в інтерфейсі з QR-кодом (підписане повідомлення EIP-712)
Для організаторів — окрема панель керування: налаштування заходів, вивантаження аналітики on-chain продажів, керування квотами та whitelist'ами.
Інтеграція з вторинними маркетплейсами
Стандартна інтеграція з OpenSea через правильно заповнений contractURI та tokenURI. Для власного вторинного ринку використовуємо Seaport (відкритий протокол), що підтримує атомарні свопи та роялті через ERC-2981. Наші рішення для вторинного ринку квитків включають автоматичне нарахування роялті.
Що входить у розробку
- Смарт-контракт ERC-721 з розширеннями (роялті, whitelist, soulbound, динамічні метадані)
- Деплой NFT платформи у testnet + mainnet (Ethereum, Polygon або інша EVM-мережа)
- Frontend dApp для покупців (React + wagmi)
- Панель керування для організаторів
- Мобільний додаток або веб-сканер для валідації
- Інтеграція з IPFS (Pinata/NFT.Storage)
- Аудит контракту (Slither + ручний review)
Зв'яжіться з нами для обговорення вашого проєкту. Замовте консультацію — оцінимо ваш проєкт за 2 дні. Ми гарантуємо якість: всі контракти проходять аудит, маємо 5+ років досвіду в Web3, реалізували 20+ проєктів на Ethereum, Polygon та Solana. Наша команда сертифікованих фахівців забезпечує надійність та безпеку вашого проєкту.







