Интеграция с Reservoir (NFT-агрегатор)

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

Интеграция с Reservoir (NFT-агрегатор)

Reservoir — это не просто API для получения NFT данных. Это протокол с собственными order books, который агрегирует ликвидность с OpenSea, Blur, X2Y2, LooksRare, Coinbase NFT и позволяет размещать cross-marketplace листинги через единый интерфейс. Если строишь NFT-проект и не хочешь интегрировать 6 маркетплейсов по отдельности — Reservoir решает задачу.

Что реально даёт Reservoir

Два режима использования: read-only (данные о коллекциях, ценах, активности) и write (создание ордеров, выполнение trades). Большинство проектов начинают с read, но настоящая ценность — в write интеграции.

Read API покрывает:

  • Floor prices, bid/ask depth по коллекции
  • Ownership data (кто владеет каждым токеном)
  • Sales history, transfers, mints
  • Attribute-level статистика (rare trait prices)
  • Real-time события через WebSocket

Write (через SDK):

  • Размещение листингов одновременно на нескольких маркетплейсах
  • Cross-marketplace fills (покупка токена где бы он ни был выставлен)
  • Collection bids, attribute bids
  • Sweep (покупка нескольких NFT в одной транзакции)

Быстрый старт с Reservoir SDK

import { createClient } from "@reservoir0x/reservoir-sdk";
import { createWalletClient, http } from "viem";
import { mainnet } from "viem/chains";

const client = createClient({
  chains: [{ id: 1, baseApiUrl: "https://api.reservoir.tools", active: true }],
  apiKey: process.env.RESERVOIR_API_KEY,
});

// Получить floor price коллекции
const { data } = await fetch(
  `https://api.reservoir.tools/collections/v7?id=${collectionAddress}`,
  { headers: { "x-api-key": process.env.RESERVOIR_API_KEY } }
).then(r => r.json());

const floorPrice = data.collections[0].floorAsk.price.amount.native;

// Выполнить покупку через SDK (находит лучший маркет автоматически)
await client.actions.buyToken({
  items: [{ token: `${contractAddress}:${tokenId}`, quantity: 1 }],
  wallet: walletClient,
  onProgress: (steps) => console.log(steps),
});

Настройка API ключей и rate limits

Бесплатный tier даёт 50 запросов/секунду — достаточно для большинства проектов на старте. Production нагрузки требуют платного плана. Важный нюанс: для write операций (размещение ордеров) нужен API ключ с соответствующими правами, и Reservoir должен подтвердить аккаунт.

Self-hosted нода — Reservoir — open-source протокол, можно развернуть собственную ноду для полного контроля и неограниченных запросов. Требует синхронизации с on-chain данными через Ethereum node (Erigon рекомендуется для производительности). Актуально для высоконагруженных проектов.

WebSocket для real-time данных

import { WebSocket } from "ws";

const ws = new WebSocket("wss://ws.reservoir.tools?api_key=YOUR_KEY");

ws.on("open", () => {
  // Подписка на sales конкретной коллекции
  ws.send(JSON.stringify({
    type: "subscribe",
    event: "sale.created",
    filters: { contract: collectionAddress }
  }));
});

ws.on("message", (data) => {
  const event = JSON.parse(data.toString());
  // sale.created, token.floor-ask.changed, collection.floor-ask.changed
  handleRealtimeEvent(event);
});

Типичные кейсы интеграции

NFT marketplace с агрегацией — показываем листинги со всех платформ, пользователь покупает через наш UI. Revenue model: protocol fee поверх Reservoir fee. Технически: Reservoir SDK + собственный смарт-контракт с fee hook.

Portfolio tracker — используем Reservoir Ownership API для получения NFTs пользователя с актуальными ценами. Значительно проще, чем прямые вызовы к OpenSea/Blur API по отдельности.

Rarity + price correlation — комбинируем Reservoir attribute stats с rarity данными (от Rarity.tools или собственный расчёт) для оценки fair value конкретного токена.

Automated market making — боты, которые выставляют collection bids по алгоритмическим стратегиям. Reservoir SDK упрощает управление ордерами.

Интеграция с конкретными маркетплейсами

Reservoir поддерживает разные маркетплейс-протоколы через orderbook параметр. При создании листинга указываем, куда идёт ордер:

await client.actions.listToken({
  listings: [{
    token: `${contract}:${tokenId}`,
    weiPrice: parseEther("0.5").toString(),
    orderbook: "reservoir", // или "opensea", "blur", "looks-rare"
    orderKind: "seaport-v1.5",
    expirationTime: Math.floor(Date.now() / 1000) + 86400 * 7,
  }],
  wallet: walletClient,
});

Blur требует отдельной аутентификации через их API — Reservoir абстрагирует это, но токен авторизации всё равно нужно получить один раз.

Мультичейн

Reservoir поддерживает Ethereum, Polygon, Arbitrum, Optimism, Base, Zora и другие. Конфигурируем несколько chain endpoints в SDK клиенте и переключаемся по chainId из wallet провайдера.