Розробка видео NFT-платформи
Відео як NFT — це не просто інший mime-type в метаданих. Основна проблема: на-чейн зберігати відео неможна, а off-chain зберігання руйнує сутність володіння. Платформи вроде Royal або Vidy вирішують це по-різному, і кожен підхід має компроміси, які потрібно розуміти до написання першої лінії контракту.
Архітектура зберігання та доставки відео
Ядро проблеми — розрив між NFT як записом у блокчейні та реальним медіафайлом вагою 2–20 GB.
Шари зберігання
IPFS + Filecoin — стандарт де-факто для decentralized storage. Відеофайл завантажується через NFT.storage або web3.storage, отримує CID. У метаданих токена (стандарт ERC-721 або ERC-1155) поле animation_url вказує на ipfs://CID. Проблема: IPFS сам по собі не гарантує persistence — потрібен pinning через Filecoin deals або Pinata/nft.storage з довгостроковими контрактами.
Arweave — альтернатива з іною економікою: плачеш один раз, файл зберігається вічно (теоретично, за рахунок endowment pool). Bundlr (сейчас Irys) дозволяє завантажувати через Ethereum/Solana гаманці. Підходить для платформ, де persistence важливіше вартості.
Centralized CDN з proof-of-ownership — гібридний підхід: файл на AWS S3 / Cloudflare R2, але смарт-контракт управляє доступом. Використовується коли потрібен streaming без буферизації та низька latency важливіше decentralization. Чесно: більшість комерційних video NFT платформ працюють саме так.
Streaming та transcoding
Сире відео на IPFS неможна стримити — немає native range requests. Рішення:
- HLS через IPFS gateway — ffmpeg трансходує відео в HLS (m3u8 + .ts сегменти), кожен сегмент пінується окремо, плейлист зберігає CID-ссилки. Повільно при завантаженні, але працює.
- Livepeer — decentralized video transcoding network. Завантажуєш мастер-файл, Livepeer повертає HLS-стріми різної якості. Оплата в LPT токенах. Добре інтегрується з NFT платформами через Livepeer Studio API.
- Mux / Cloudflare Stream — centralized, але з DRM та adaptive bitrate з коробки. Для premium контенту з токен-гейтингом часто єдиний розумний вибір.
Смарт-контракти: що важливо для video NFT
ERC-721 vs ERC-1155
Для video NFT платформ ERC-1155 часто переважніше:
- Підтримка editions (100 копій одного відео — різні tokenIds або одинакові з supply > 1)
- Batch transfers знижують газ при масових операціях
- Semi-fungible tokens — можна випустити "ранній доступ" як fungible, потім сконвертувати в unique
Але якщо важлива сумісність з OpenSea, Blur, LooksRare без кастомного кода — ERC-721 з tokenURI простіше.
Метаданні та стандарти
OpenSea Metadata Standard підтримує поля:
{
"name": "...",
"image": "ipfs://CID_preview",
"animation_url": "ipfs://CID_video",
"attributes": [...],
"properties": {
"video": {
"uri": "ipfs://CID_video",
"mime_type": "video/mp4",
"duration": 180
}
}
}
Поле animation_url рендерится як iframe на OpenSea — це добре (превью прямо в маркетплейсі) та погано (кожен може подивитися без покупки). Для gated контенту потрібен окремий контракт доступу.
Токен-гейтинг та DRM
Найнетривіальніша частина. Варіанти:
Lit Protocol — decentralized access control. Умова доступу (ownsERC721, ownsERC1155) перевіряється кількома вузлами, повертається симетричний ключ для розшифровки. Ключ ніколи не передається в открытом вигляді через єдину точку.
On-chain підпис + server-side gate — простіше, але централізовано. Користувач підписує сообщення гаманцем, сервер перевіряє власництво через RPC та видає presigned CDN URL. Працює для більшості випадків.
ERC-4337 + session keys — для UX без постійних підписів: одноразова авторизація створює session key з обмеженими правами доступу до контенту на N годин.
Royalties та вторинний рынок
EIP-2981 — стандарт on-chain royalties, підтримується OpenSea, Blur (опціонально), Foundation. Реалізується через royaltyInfo(tokenId, salePrice) → (receiver, royaltyAmount).
Проблема: Blur та інші агрегатори обходять royalties через прямі контракт-вызови. Для enforcement потрібен оператор-фільтр (Operator Filter Registry від OpenSea) або кастомна логіка в _beforeTokenTransfer з whitelist маркетплейсів. Останнє ломает composability.
Компоненти платформи
| Шар | Технології |
|---|---|
| Смарт контракти | Solidity 0.8.x, Hardhat/Foundry, OpenZeppelin |
| Storage | IPFS + Filecoin, Arweave/Irys, опціонально Cloudflare R2 |
| Transcoding | Livepeer Studio або Mux |
| Access control | Lit Protocol або custom JWT gate |
| Indexing | The Graph subgraph для Transfer, Sale событій |
| Frontend | Next.js + wagmi v2 + viem |
| Payments | Native ETH + ERC-20 через Permit2 (Uniswap) |
Що впливає на строки
Мінімальна MVP-платформа (мінт + базовий маркетплейс + IPFS storage): 4–6 тижнів. Повнофункціональна платформа з Livepeer transcoding, Lit Protocol gating, кастомним субграфом та royalty enforcement: 2–3 місяці. Основні time sinks — інтеграція з Livepeer (нестабільне API), налаштування Filecoin deals для persistence та аудит смарт-контрактів перед деплоєм в mainnet.







