Интеграция с NFTfi

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с NFTfi
Средняя
~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

Интеграция с NFTfi

NFTfi — это peer-to-peer протокол кредитования под залог NFT. Заёмщик блокирует NFT в смарт-контракте, получает ETH или USDC от конкретного кредитора, и обязуется вернуть через фиксированный срок с процентом. Если не возвращает — NFT переходит кредитору. Никакого ликвидационного oracle, никакого AMM: чистый fixed-term loan с NFT как collateral.

Интеграция нужна в двух сценариях: вы строите лендинг-платформу поверх NFTfi или хотите дать пользователям вашего маркетплейса / NFT-проекта возможность брать займы под коллекцию напрямую из интерфейса.

Архитектура протокола и точки интеграции

NFTfi работает через два ключевых контракта: NftfiHub (реестр и роутер) и DirectLoanFixedOffer (конкретный тип займа с фиксированной ставкой). С версии v2.1 протокол добавил DirectLoanFixedOfferRedeploy с поддержкой ERC-1155.

Основной flow:

  1. Borrower вызывает approve для NFT на адрес контракта NFTfi, затем принимает оффер через acceptOffer
  2. Lender создаёт подписанный off-chain оффер (EIP-712 structured data), который хранится в базе NFTfi или вашем backend
  3. При acceptOffer контракт переводит NFT в себя, отправляет tokens заёмщику, минтит обликацию lender-у в виде promissory note NFT (ERC-721)
  4. По истечении срока: payBackLoan от заёмщика или liquidateOverdueLoan от кредитора

Структура оффера (EIP-712)

Интеграция через подпись офферов — это место, где чаще всего ошибаются. Оффер содержит:

struct Offer {
    uint256 loanPrincipalAmount;
    uint256 maximumRepaymentAmount;
    uint256 nftCollateralId;
    address nftCollateralContract;
    uint32 loanDuration;     // в секундах
    uint16 loanAdminFeeInBasisPoints;
    address loanERC20Denomination;
    address referrer;
}

Подпись создаётся через signTypedData в ethers.js или viem, используя domain separator контракта NFTfi. Критично: domain separator включает chainId — оффер, подписанный для Ethereum mainnet, не валиден на Goerli, даже если адрес контракта совпадает.

Типичная ошибка: неправильная обработка промежуточных статусов займа

Займ может находиться в состояниях: Active, Repaid, Liquidated, или попасть в edge case — когда блок с payBackLoan майнится после истечения loanDuration, но liquidateOverdueLoan ещё не вызван. Контракт принимает оба вызова в короткое окно. Если фронтенд не обновляет статус атомарно — пользователь видит активный займ, который уже ликвидирован.

Решение: слушаем события LoanStarted, LoanRepaid, LoanLiquidated через ethers.js provider.on или подписку через The Graph subgraph (NFTfi поддерживает официальный субграф). Subgraph предпочтительнее для UI — даёт возможность делать сложные запросы (все активные займы по коллекции, история займов адреса).

Что входит в интеграцию

SDK / библиотека. NFTfi предоставляет официальный JavaScript SDK (@nftfi/js), который абстрагирует работу с контрактами. Для кастомных интеграций часто проще работать напрямую через ABI — полный контроль над параметрами и gas estimation.

Subgraph запросы. GraphQL для получения списка активных офферов, истории займов, данных по конкретной коллекции. Интегрируем через @apollo/client или urql.

Валюты займа. NFTfi поддерживает ETH, USDC, DAI и другие одобренные ERC-20. Нужна логика approve для каждой валюты от lender перед созданием оффера.

Referral система. Протокол поддерживает referrer address в офферах — способ монетизировать интеграцию через комиссию от протокола.

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

Изучение ABI и тестирование на Goerli (1 день). Разворачиваем тестовый NFT, создаём займ вручную через контракт, проверяем все события.

Backend интеграция (1-2 дня). Хранение и трансляция офферов, webhooks на события займов.

Frontend компоненты (1-2 дня). Форма создания оффера, отображение активных займов, flow погашения.

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

Базовая интеграция — создание и принятие офферов, мониторинг займов — 3-5 дней. Полноценный lending UI с аналитикой по коллекциям и автоматическим созданием офферов — 1-1.5 недели.