NFT-колекція на 10 000 токенів із floor price 2 ETH — це 20 000 ETH заблокованої цінності. Продати одну NFT швидко за ринковою ціною складно: лістинг, очікування покупця, втрата рідкісного активу. NFTfi-протокол дозволяє отримати ETH під заставу NFT без продажу — власник CryptoPunk або Bored Ape отримує ліквідність, кредитор — дохідність. Non-fungible token (NFT) — унікальний цифровий актив, права на який закріплені в смарт-контракті (Wikipedia). Ми розробляємо такі протоколи під ключ — будуємо систему, де і кредитор, і позичальник захищені смарт-контрактом, а оцінка NFT не дозволяє видати кредит 5 ETH під актив із floor price 1 ETH. Досвід у DeFi понад 10 років, реалізовано 50+ смарт-контрактів на Ethereum і L2.
Чому кредитування під заставу NFT потребує продуманої архітектури?
Просто скопіювати логіку ERC-20 lending pool не вийде. NFT — невзаємозамінний актив: кожен токен унікальний, його ліквідність обмежена, а ціна волатильна. Якщо в ERC-20 lending ціна відома з точністю до цента завдяки Chainlink Price Feed, то для NFT оцінка — самостійна задача. Не вирішивши її, протокол перетворюється на гру в наперстки: позичальник з рідкісним NFT може отримати забагато, а кредитор — втратити все при падінні floor.
Як оцінити NFT on-chain?
Це єдина фундаментальна складність NFTfi, яку не можна вирішити стандартним чином. ERC-20 токени мають ліквідний ринок і Chainlink Price Feed. У NFT немає єдиної ціни — є floor, last sale, rarity score, trait-based pricing. Всі ці метрики маніпульовані при недостатньому обсязі торгів.
Варіанти оцінки та їх trade-offs
Peer-to-peer модель (NFTfi, Arcade.xyz) — кредитор і позичальник самі домовляються про суму, процент і термін. Смарт-контракт лише ескроу NFT і виконує умови. Оцінка — проблема сторін, а не протоколу. Це усуває ризик oracle manipulation, але знижує ліквідність: позичальнику потрібно чекати пропозиції від кредитора.
Pool-based модель (BendDAO, JPEG'd) — ліквідність у пулі, кредит видається негайно за floor price оракула. Швидко і зручно, але створює системний ризик: якщо floor price колекції падає швидше, ніж проходять ліквідації — пул іде в збиток. BendDAO зіткнувся з цим: масове падіння BAYC floor price створило загрозу bad debt на 5 000 ETH, протокол був змушений терміново змінювати параметри ліквідації.
Hybrid модель — peer-to-peer для великих позик, пул для стандартних колекцій з перевіреним floor. Складніше в розробці, але більш стійка.
При pool-based підході oracle для floor price — критичний елемент. Використовуємо медіану кількох джерел: Chainlink NFT Floor Price Feeds (доступні для топ-колекцій), Reservoir Protocol API з on-chain верифікацією, TWAP останніх sales із подій маркетплейсів. Одне джерело оракула — вектор для flash loan manipulation.
Як працює ліквідація NFT-застави?
Ліквідація — найскладніший момент у NFTfi. При pool-based моделі вона має бути атомарною або захищеною від MEV. Типовий сценарій атаки: ліквідатор бачить, що позиція здорова (health factor > 1), надсилає liquidate транзакцію, MEV-бот вставляє front-run з купівлею NFT на маркетплейсі за floor price і зворотним лістингом — класичний sandwich. Рішення: grace period перед ліквідацією та аукціонний механізм (Dutch auction для NFT-застави), а не миттєва передача кредитору. При ліквідації протокол виставляє NFT на аукціон зі зниженням ціни. Якщо ніхто не купить за стартовою ціною, ціна поступово падає до рівня, при якому покупець знаходиться. Це запобігає MEV-маніпуляціям і дає шанс позичальнику повернути позику до фінальної втрати.
Деталі аукціонної ліквідації
Аукціон стартує з ціни, що дорівнює сумі боргу + 10%. Кожні 5 хвилин ціна знижується на 5% доти, доки не знайдеться покупець. Позичальник може в будь-який момент до продажу погасити борг і повернути NFT. Протокол стягує комісію 0.5% від суми ліквідації.Архітектура NFTfi-протоколу: ключові компоненти
Lifecycle позики
- Позичальник викликає
depositNFT()— NFT переходить у escrow контракт. - Позичальник викликає
requestLoan(nftId, amount, duration)— створюєтьсяLoanTermsstruct. - Кредитор викликає
fundLoan(loanId)— ETH або ERC-20 надсилаються позичальнику. - Протягом терміну позики позичальник може викликати
repayLoan(loanId)— повернення principal + interest, NFT повертається. - Якщо термін минув, кредитор викликає
liquidate(loanId)— NFT переходить кредитору.
Приклад: позика на 50 ETH під заставу NFT з LTV 40% на 30 днів із процентною ставкою 8% річних.
Ключові смарт-контракти
| Контракт | Роль |
|---|---|
| LoanCore | Основна логіка, зберігає стан позик |
| OriginationController | Валідація умов, signature verification для P2P |
| VaultFactory | Створює індивідуальні vault для кожної NFT (ізоляція) |
| RepaymentController | Розрахунок interest, обробка погашень |
| FeeController | Протокольна комісія |
Розділення на окремі контракти — не overengineering, а необхідність: LoanCore апгрейдиться через UUPS, OriginationController може бути замінений без міграції даних позик.
Обробка ERC-721 та ERC-1155
ERC-1155 додає складність: токен може бути fungible (якщо supply > 1) або semi-fungible. Для кредитування потрібно визначити, чи приймаємо ми часткову заставу (100 із 1000 токенів одного ID). Більшість протоколів обмежуються ERC-721 та ERC-1155 із supply = 1. Якщо потрібний ERC-1155 з дробовою заставою — логіка оцінки та ліквідації ускладнюється кратно.
Прийом NFT у заставу через safeTransferFrom із onERC721Received хуком. Хук верифікує, що NFT з allowlisted колекцій — приймати будь-який ERC-721 небезпечно, можна отримати заставу у вигляді сміттєвого токена.
Стек розробки
Контракти — Solidity 0.8.x, фреймворк — Foundry. Для P2P-частини використовуємо EIP-712 signature verification — позичальник підписує LoanTerms оффчейн, кредитор верифікує підпис on-chain. Це прибирає approve-транзакції для позичальника.
Тести включають fork-тести на Ethereum mainnet: реальні колекції (BAYC, Azuki), реальні маркетплейс-події для симуляції змін floor price. Foundry's vm.warp для симуляції закінчення терміну позики.
Frontend (якщо потрібен) — wagmi + viem, NFT-дані через Alchemy NFT API або Reservoir.
Процес роботи
| Етап | Тривалість | Що робимо |
|---|---|---|
| Проектування | 1 тиждень | Вибір моделі (P2P/pool/hybrid), список колекцій, параметри ризику, tokenomics |
| Розробка | 4–8 тижнів | Core контракти, oracle інтеграція, тести з coverage > 95%, fuzz-тести |
| Аудит | 2–4 тижні | Зовнішній аудитор (Spearbit, Trail of Bits, Code4rena) |
| Деплой | 1–2 тижні | Testnet з реальними користувачами, mainnet через Gnosis Safe multisig |
Що входить в роботу?
- Архітектурна документація (ERC-720p, діаграми потоків)
- Смарт-контракти на Solidity з повним покриттям тестами
- Інтеграція з оракулами (Chainlink, Reservoir)
- Підготовка до аудиту (звіт Slither, Mythril)
- Розгортання на testnet і mainnet
- Доступ до репозиторію та інструкцій
- Навчання команди з роботи з протоколом
- Пост-релізна підтримка 1 місяць
Чому обирають нас?
Досвід понад 10 років у розробці DeFi-протоколів, 50+ реалізованих смарт-контрактів. Ми знаходили критичні вразливості в топ-протоколах і знаємо, як їх уникнути. Використовуємо формальну верифікацію критичних функцій — це рівень безпеки, який рідкісний стартап може собі дозволити. Гарантуємо прозорий процес: демонстрація прогресу щотижня.
Отримайте консультацію з архітектури вашого NFTfi-протоколу. Зв'яжіться з нами — обговоримо модель, ризики та терміни. Замовте розробку протоколу під вашу колекцію.







