Интеграция с Blend (NFT lending)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Blend (NFT lending)
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1062
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с Blend (NFT lending)

Blur запустил Blend в мае 2023 года с одной нестандартной механикой: бессрочные займы под залог NFT без оракулов. Большинство NFT lending протоколов (BendDAO, NFTfi) используют оракулы для определения floor price и автоматических ликвидаций. Blend их убрал полностью — ликвидация происходит только тогда, когда кредитор запускает auction, а заёмщик не рефинансирует позицию в течение 30 часов.

Это меняет архитектуру интеграции: нет подписки на ценовые события, зато нужен мониторинг auction-событий и точный расчёт времени до ликвидации.

Ключевые механики Blend для интеграции

Loan lifecycle и события

Полный жизненный цикл займа в Blend проходит через несколько состояний:

  1. Offer creation — кредитор подписывает off-chain offer (EIP-712 signature) с параметрами: коллекция, rate, amount, expiration
  2. Loan start — заёмщик принимает offer on-chain, NFT уходит в escrow контракт Blend
  3. Refinancing — любой может предложить лучшую ставку; если заёмщик принимает — старый кредитор получает деньги + проценты, новый занимает его место
  4. Auction trigger — кредитор вызывает startAuction(), начинается 30-часовое окно
  5. Seizure — если заёмщик не рефинансировал, кредитор забирает NFT через seize()

Для интеграции нужно слушать события контракта Blend (0x29469...): LoanOfferTaken, Refinance, StartAuction, Seize. The Graph subgraph для Blend уже существует, но если нужна low-latency реакция на аукционы — прямой WebSocket на Ethereum ноду через eth_subscribe logs.

Расчёт процентов: непрерывное начисление

Blend использует непрерывное начисление процентов (continuous compounding) вместо простых процентов. Накопленный долг считается как:

debt = principal * e^(rate * time)

Где rate — годовая ставка в долях (например, 0.10 для 10% APR), time — время в секундах / 31536000. При интеграции это важно: если считать по простой формуле, долг будет занижен, транзакция рефинансирования реверснется с InsufficientRepayment.

Контракт Blend хранит startTime и rate для каждого займа. Текущую сумму долга на любой момент получаем через view-функцию getLoanDebt(lienId) — это надёжнее, чем считать самостоятельно.

Off-chain ордербук и EIP-712 подписи

Offers в Blend не хранятся on-chain до момента принятия. Это снижает газ-затраты кредиторов, но усложняет интеграцию: нужно получать и верифицировать подписи через Blur API.

Структура offer для EIP-712 верификации:

  • collection — адрес NFT контракта
  • totalAmount — максимальная сумма займов по offer
  • maxAmount — максимальная сумма одного займа
  • minAmount — минимальная сумма
  • auctionDuration — длительность аукциона (обычно 30 часов)
  • salt — уникальный nonce
  • expirationTime
  • rate — ставка в формате Blend (wei-scaled)

Верификацию подписи делаем через ethers.verifyTypedData() или viem verifyTypedData перед показом offer пользователю.

Как строим интеграцию

Чтение активных займов. Через The Graph (subgraph blend-protocol) или прямые вызовы к контракту. Для конкретного NFT tokenId — getActiveLoans(collection, tokenId), возвращает массив активных lienId.

Мониторинг аукционов. Если продукт включает уведомления для заёмщиков — WebSocket подписка на StartAuction события. При обнаружении: push-уведомление пользователю с таймером (30 часов минус elapsed time). У нас есть готовый модуль на Node.js с viem, который обрабатывает до 500 одновременных мониторингов.

Исполнение refinance. Вызов refinance(lien, lienId, newLoanAmount, loanOffer, signature). Сумма newLoanAmount должна покрывать текущий долг с процентами — берём из getLoanDebt() + 1-2% буфер на изменение за время mining транзакции.

Собственные offers (для кредиторов). EIP-712 подпись через MetaMask/WalletConnect, публикация через Blur API. Отзыв offer — инкремент nonce on-chain.

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

Анализ требований (1 день). Определяем роль клиента: заёмщик, кредитор, или маркетплейс поверх Blend. От этого зависит набор интегрируемых функций.

Разработка (2-3 дня). Смарт-контрактная логика не пишется — Blend уже deployed и immutable. Работа: SDK/хелперы на TypeScript/viem, React-компоненты для отображения займов и позиций, backend-сервис для мониторинга аукционов.

Тестирование. Fork-тест на Foundry с состоянием Ethereum mainnet: симулируем займ → аукцион → рефинансирование через vm.prank. Это позволяет тестировать граничные случаи без реальных токенов.

Сроки — 2-4 дня от ТЗ до деплоя. Стоимость зависит от объёма UI и наличия серверного мониторинга.