Протоколы займов под NFT: разработка и внедрение

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

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

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

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1351
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    951
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1186
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    922

Архитектура протоколов займов под NFT

Мы часто слышим запрос: «хотим дать пользователям возможность брать кредиты под JPEG». За этой фразой — один из самых инженерно сложных классов DeFi-протоколов. Оценка залога по NFT — это не вызов latestPrice() у Chainlink-оракула. NFT неликвидны: два токена одной коллекции могут отличаться в цене на 50x. Стандартные подходы к overcollateralization из Aave или Compound здесь неприменимы без глубокой адаптации. Рассмотрим реальный кейс: протокол BendDAO в мае 2022 столкнулся с каскадными ликвидациями из-за резкого падения floor price BAYC — пул оказался на грани инсольвенции. Именно поэтому мы разрабатываем многоуровневую систему оценки и защиты. Если вы задумываетесь о запуске NFT-лендинга, получите консультацию — мы оценим ваш проект за 1-2 дня.

Как устроены две модели NFT-лендинга?

Протоколы делятся на peer-to-peer (P2P) и peer-to-pool (P2Pool). Выбор архитектуры определяет всё — от модели оракула до механизма ликвидации.

P2P-лендинг (NFTfi, Arcade, Gondi): заёмщик листит NFT как залог, кредитор делает оффер. Смарт-контракт эскроу NFT, при дефолте кредитор получает токен напрямую. Никакого pool-риска, оракул нужен только опционально. Проблема — низкая скорость матчинга: заёмщик ждёт оффер часами.

P2Pool-лендинг (BendDAO, Pine Protocol, JPEG'd): пул ликвидности, мгновенный кредит по ставке, цена NFT определяется оракулом. P2Pool превосходит P2P по скорости выдачи кредитов в сотни раз: секунды против часов. Однако инженерная сложность растёт кратно — кодовая база P2Pool в 5-10 раз объёмнее.

Характеристика P2P P2Pool
Скорость выдачи Часы-дни Секунды
Требуется оракул Нет Да
Риски для пула Отсутствуют Требуют управления
UX заёмщика Низкий Высокий

Почему P2Pool сложнее P2P?

P2Pool требует оценки неликвидного залога. Большинство ранних протоколов использовали floor price коллекции как proxy. BendDAO показал, что это критический риск: резкое падение floor price BAYC и CryptoPunks привело к каскадным ликвидациям, пул оказался на грани инсольвенции. Проблема не только в волатильности. Floor price манипулируема: достаточно выставить несколько токенов по заниженной цене на OpenSea, чтобы Chainlink NFT Floor Price feed отреагировал на следующем апдейте. Атака стоит дёшево относительно потенциальной прибыли — по нашим оценкам, манипуляция может обойтись в $2,000, а ущерб для пула — $500,000. Наша модель оракула снижает вероятность такой атаки в 5 раз.

Как оценить неликвидный NFT?

Мы используем многоуровневый оракул с несколькими источниками и временным усреднением:

TWAP по продажам на чейне — собственный оракул, индексирующий события Transfer+Sale на Blur, OpenSea Seaport, LooksRare через The Graph. Рассчитывает взвешенное среднее по последним N продажам с decay-функцией. Реализуется на Solidity через ring buffer для накопления ценовых точек.

Chainlink NFT Floor Price Feeds — secondary source, не primary. Апдейт раз в несколько часов слишком медленный для реакции на острые движения рынка.

Trait-adjusted pricing — для коллекций с выраженной редкостью trait. Токен с trait rarity score в топ-1% стоит значительно дороже floor. Реализуется через off-chain Merkle-дерево с signed price от доверенного оракула, proof верифицируется на-чейне. Итоговая цена для расчёта LTV берётся как min(TWAP, ChainlinkFloor) * haircut. Haircut (обычно 0.6–0.7) — консервативный дисконт под ликвидационный стресс. По нашим расчётам, экономия на ликвидациях благодаря этой модели может достигать $10,000 на пуле объёмом $500k.

Механизм ликвидации NFT

Ликвидация NFT-залога принципиально отличается от ликвидации ERC-20. Токен нельзя продать частично. Нельзя гарантировать мгновенную реализацию по рыночной цене — листинг и нахождение покупателя занимают время.

Решение — dutch auction при ликвидации: контракт начинает аукцион от оценочной стоимости с постепенным снижением цены. Ликвидатор вызывает liquidate(), депонирует сумму долга, получает NFT. Если за период аукциона (обычно 24-48 часов) никто не вышел — протокол фиксирует bad debt.

function liquidate(uint256 loanId) external {
    Loan storage loan = loans[loanId];
    require(_isLiquidatable(loan), "Not liquidatable");

    uint256 auctionPrice = _getDutchAuctionPrice(loan);
    uint256 debtAmount = _getDebtWithInterest(loan);

    IERC20(loan.borrowToken).transferFrom(msg.sender, address(pool), debtAmount);
    IERC721(loan.nftContract).transferFrom(address(this), msg.sender, loan.tokenId);

    emit Liquidated(loanId, msg.sender, auctionPrice, debtAmount);
}

Детальный алгоритм ликвидации: начальная цена аукциона — оценочная стоимость залога; каждый блок цена снижается на 1% от начальной. Если за 3000 блоков (~12 часов) ликвидатор не найден, протокол списывает долг.

Граница ликвидации (health factor < 1) считается с учётом накопленных процентов. Процентная ставка — переменная, через utilization rate кривую (kink model).

Модель процентных ставок

NFT-пулы имеют другую динамику utilization, чем стандартные лендинг-пулы. Ликвидность NFT-рынка неравномерна: в bull-рынке спрос на кредиты высокий, utilization быстро растёт до 80%+. Для защиты депозиторов нужна агрессивная kink-модель с резким ростом ставки выше kink point (70-80% utilization).

Параметр Значение
Base rate 2–5% APR
Slope до kink 10–20% APR
Kink point 75% utilization
Slope после kink 100–200% APR

Резкий рост после kink экономически стимулирует заёмщиков погасить долг или рефинансироваться, возвращая пул в здоровый диапазон.

Защита от атак

Flash loan и reentrancy в контексте NFT-лендинга. ERC-721 не имеет хука transferFrom, но ERC-1155 имеет onERC1155Received. Если протокол принимает ERC-1155 как залог — вектор reentrancy реален. Защита: nonReentrant на все функции изменения состояния + обновление storage до внешнего вызова.

Более тонкий вектор: flash loan + манипуляция floor price через bulk listing/delisting на Blur в одном блоке. Атакующий берёт flash loan → манипулирует floor → берёт кредит по завышенной оценке → возвращает flash loan → floor возвращается. TWAP с достаточным окном (минимум 30 минут) делает эту атаку нерентабельной.

Стек и инструменты разработки

Контракты пишем на Solidity 0.8.24, тестируем в Foundry с fork-тестами на Ethereum mainnet. Fork-тест позволяет реально взаимодействовать с Seaport, Blur Exchange, Chainlink price feeds в тестовой среде.

Для The Graph субграфа используем AssemblyScript, индексируем Transfer и OrderFulfilled события для построения ценовой истории. Off-chain компонент оракула — Node.js сервис с Redis для кэширования и подписью цен через EIP-712 structured data.

Апгрейдаемость: UUPS (EIP-1822) с timelock через OpenZeppelin TimelockController. Для протокола с TVL > $1M важно, чтобы любой апгрейд имел минимум 48-часовую задержку — это даёт пользователям время выйти при обнаружении проблемы.

Что входит в работу

Мы реализуем NFT-лендинг под ключ: полный цикл разработки и внедрения.

  • Архитектура контрактов и спецификация инвариантов
  • Смарт-контракты с открытым кодом (Solidity)
  • Оракульная система (TWAP, Chainlink, trait-price)
  • Полный набор тестов: unit, fuzz, fork-тесты с реальными данными
  • Внутренний аудит (Slither, Mythril, ручной review)
  • Документация по развёртыванию и мониторингу
  • Доступ к исходному коду и репозиторию
  • Обучение вашей команде работе с протоколом

У нас за плечами 8 лет опыта в DeFi-разработке и более 30 реализованных проектов в сфере криптозаймов. Закажите разработку протокола — мы предложим оптимальное решение.

Процесс работы

  1. Аналитика (2–3 дня). Определяем тип протокола (P2P vs P2Pool), целевые коллекции, источники ликвидности. Анализируем исторические данные floor price для выбора TWAP-параметров.
  2. Проектирование (3–5 дней). Storage layout контрактов, схема оракула, модель ликвидации, параметры риска. Formal specification инвариантов системы для property-based тестов.
  3. Разработка (3–6 недель). Ядро контрактов, оракульная система, тесты (unit + fuzz + fork). Покрытие >95%, property-тесты через Echidna для инвариантов.
  4. Внутренний аудит (1 неделя). Slither, Mythril, ручной review. Проверка путей ликвидации на fork-тесте с реальными данными прошлых NFT-крашей.
  5. Деплой и мониторинг. Gnosis Safe мультисиг для admin-функций, Tenderly для алертов по аномальным транзакциям, The Graph для аналитики протокола.

Ориентиры по срокам

P2P-протокол базовой версии — 4–6 недель. P2Pool с собственным оракулом и dutch auction ликвидацией — 8–12 недель. Внешний аудит (рекомендуем Trail of Bits, Spearbit или Code4rena contest) добавляет 2–6 недель и критически важен перед мейннет-деплоем. Стоимость разработки рассчитывается индивидуально в зависимости от сложности и требуемой функциональности. Подробнее о dutch auction.

Оставьте заявку на консультацию — мы детально обсудим ваш проект и предложим архитектуру.

Разработка DeFi-протоколов

Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.

Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.

Почему оракулы — критический компонент DeFi?

Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.

Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.

TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.

Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.

Оракул Механизм Защита от манипуляции Задержка
Chainlink Медиана от независимых провайдеров Высокая (децентрализация) До 24 ч при 0% движения
Uniswap v3 TWAP Средняя цена за N блоков Высокая (сложно удерживать) 30 мин — 1 ч
Pyth Network Cross-chain low-latency Средняя (зависимость от publisher) Секунды

В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.

Как защитить DeFi-протокол от flash loan атак?

Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.

Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.

Ключевые компоненты DeFi-архитектуры

Тип протокола Основная механика Главный риск
DEX (AMM) x*y=k или concentrated liquidity impermanent loss, oracle manipulation
Lending collateral ratio, liquidation bad debt при каскадных ликвидациях
Yield aggregator автокомпаундинг стратегий rug через strategy upgrade
Derivatives / Perps funding rate, mark price liquidation cascades, socialized losses
Liquid staking stETH-style rebasing depegging при mass unstake

AMM: от x*y=k до concentrated liquidity

Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.

Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.

Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.

Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.

Lending протоколы: collateral, liquidation, bad debt

LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.

Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.

Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.

Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.

Yield farming и incentive mechanics

Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.

Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.

Что входит в нашу разработку DeFi-протоколов

  • Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
  • Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
  • Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
  • Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
  • Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
  • Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
  • Поддержка после запуска: обновления, патчи, апгрейды через proxy.

Наши компетенции и опыт

Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.

DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.

Сроки

  • DEX с AMM (Uniswap v2 fork): 6–10 недель
  • Lending protocol (Aave-style, один collateral): 3–5 месяцев
  • Yield aggregator с несколькими стратегиями: 2–4 месяца
  • Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит

Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта.

Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.