Інтеграція з Blend (NFT lending)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з Blend (NFT lending)
Середній
~2-3 дні
Часті запитання

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

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

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1120
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    588
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    855

Інтеграція з Blend (NFT lending)

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

Це змінює архітектуру інтеграції: немає підписки на ціни события, але потрібен моніторинг аукціону-подій та точний розрахунок часу до ліквідації.

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

Життєвий цикл кредиту та события

Повний життєвий цикл кредиту в Blend проходить через кілька станів:

  1. Створення пропозиції — кредитор підписує off-chain пропозицію (EIP-712 signature) з параметрами: колекція, rate, сума, закінчення
  2. Початок кредиту — позичальник приймає пропозицію on-chain, NFT йде в escrow контракт Blend
  3. Рефінансування — хтось може запропонувати кращу ставку; якщо позичальник приймає — старий кредитор отримує гроші + процент, новий займає його місце
  4. Запуск аукціону — кредитор викликає startAuction(), починається 30-годинне вікно
  5. Конфіскація — якщо позичальник не рефінансував, кредитор забирає 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 підписи

Пропозиції в Blend не зберігаються on-chain до прийняття. Це зменшує газ для кредиторів, але ускладнює інтеграцію: потрібно отримувати та верифікувати підписи через Blur API.

Структура пропозиції для EIP-712 верифікації:

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

Верифікуйте підпис через ethers.verifyTypedData() або viem verifyTypedData перед показом пропозиції користувачу.

Як будуємо інтеграцію

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

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

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

Власні пропозиції (для кредиторів). EIP-712 підпис через MetaMask/WalletConnect, публікація через Blur API. Відозвати пропозицію — інкремент nonce on-chain.

Процес роботи

Аналіз вимог (1 день). Визначаємо роль клієнта: позичальник, кредитор, або маркетплейс поверх Blend. Від цього залежить набір функцій для інтеграції.

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

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

Терміни — 2-4 дні від ТЗ до деплоєму. Вартість залежить від обсягу UI та наявності серверного моніторингу.