Реализация ценовой истории NFT в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация ценовой истории NFT в мобильном приложении
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    874
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация ценовой истории NFT в мобильном приложении

NFT-коллекция выглядит как набор JPEG, пока не видишь, как её floor price вырастал с 0.05 до 12 ETH за три недели. Именно ценовая история превращает трекер NFT из статичного каталога в аналитический инструмент.

Откуда берётся история цен

Блокчейн сам по себе не хранит «историю цен» как сущность. Продажа NFT — это Transfer-событие в смарт-контракте ERC-721 плюс движение ETH между адресами в той же транзакции. Чтобы построить price history, нужно агрегировать on-chain события. Самостоятельно парсить Ethereum — дорого. Поэтому используют специализированные API:

OpenSea API v2 (/api/v2/events/collection/{slug}) возвращает события типа sale с ценой в wei и timestamp. Ограничение — 4 запроса в секунду на бесплатном ключе. Для исторических данных глубже 30 дней нужен платный план.

Reservoir API (/sales/v6) — более щедрый по глубине истории и rate limit. Поддерживает несколько маркетплейсов одновременно (OpenSea, Blur, X2Y2). Пагинация через continuation токен.

Alchemy NFT API (/getNFTSales) — удобен, если уже используете Alchemy для других on-chain запросов.

На Flutter типичный репозиторий выглядит так:

class NftSalesRepository {
  final Dio _dio;
  final String _reservoirKey;

  Future<List<NftSale>> getSalesHistory({
    required String contractAddress,
    required String tokenId,
    DateTime? from,
  }) async {
    final params = {
      'tokens': '$contractAddress:$tokenId',
      'startTimestamp': from?.millisecondsSinceEpoch ~/ 1000,
      'limit': 100,
    };
    final resp = await _dio.get(
      'https://api.reservoir.tools/sales/v6',
      queryParameters: params,
      options: Options(headers: {'x-api-key': _reservoirKey}),
    );
    return (resp.data['sales'] as List)
        .map((e) => NftSale.fromJson(e))
        .toList();
  }
}

Цена приходит в ETH (или другой нативной валюте сети), но пользователи ожидают видеть USD. Курс ETH/USD нужно подтягивать отдельно — через CoinGecko API или Alchemy Price API, кэшировать с TTL 60 секунд и применять к историческим точкам постфактум.

Визуализация

Для отрисовки графика на Flutter хорошо работает fl_chart. Данные продаж нужно нормализовать перед рендером: убрать очевидные wash-trade выбросы (продажа между связанными кошельками по нерыночной цене), агрегировать по дням или неделям в зависимости от глубины истории.

На React Native — Victory Native XL (работает на Reanimated 3, без перерисовки через bridge) или react-native-gifted-charts.

LineChart(
  LineChartData(
    lineBarsData: [
      LineChartBarData(
        spots: sales.map((s) => FlSpot(
          s.timestamp.toDouble(),
          s.priceUsd,
        )).toList(),
        isCurved: true,
        gradient: LinearGradient(colors: [Colors.purple, Colors.blue]),
        belowBarData: BarAreaData(show: true, color: Colors.purple.withOpacity(0.1)),
      ),
    ],
    titlesData: FlTitlesData(
      bottomTitles: AxisTitles(
        sideTitles: SideTitles(
          showTitles: true,
          getTitlesWidget: (value, meta) => _formatDate(value),
        ),
      ),
    ),
  ),
)

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

  • Интеграция Reservoir API или OpenSea API с пагинацией
  • Модели данных: NftSale, PricePoint с конвертацией wei → ETH → USD
  • Кэширование в SQLite (drift/floor) с TTL
  • График с выбором временного диапазона (7d / 30d / All)
  • Обработка пустой истории и ошибок сети

Сроки

Реализация от 2 до 4 рабочих дней в зависимости от платформы и сложности дизайна графика. Стоимость рассчитывается индивидуально после анализа требований.