Перейти до вмісту

Система, що тримає курси обмінника поряд із потрібною позицією.

iEXRates збирає пропозиції BestChange, розраховує підсумкові курси за вашими правилами, стежить за конкурентами, публікує TXT-файли та показує оператору, чому курс вийшов саме таким.

Модуль створений для обмінників, яким важливо не просто отримати курс із BestChange, а керувати позицією, маржею, комісіями, містами, винятками, формулами та швидкістю оновлення на великій кількості напрямків.

Вартість—
  • Захист позиції

    топ-1, топ-2, топ-3 та конкретні конкуренти

  • Формули курсу

    теги, комісії, кроки, округлення та preview

  • TXT-файли

    окремий файл під кожен профіль

  • Go-ядро

    швидке оновлення великих списків

Головна ідея

Не таблиця курсів, а робочий центр управління ринком BestChange

Адміністратор задає профіль, напрямки та правила. Далі система сама оновлює довідники, перевіряє доступні пари, отримує оффери, застосовує формули, захищає позицію та готує файли видачі для сайту обмінника.

Напрямки та міста

Для готівки місто стає частиною пари і TXT-коду, щоб курс не змішувався з іншими містами.

Фільтри офферів

Можна враховувати резерв, ліміти, мітки обмінників, black list, свій обмінник та нульові значення.

Стеження за обмінником

Система вміє орієнтуватися на конкретного конкурента і автоматично вставати вище чи нижче за нього.

напрямків можна вести через серверну пагінацію та batch-оновлення
100k+
BestChange окремо, зовнішні джерела окремо - в одній адмінці
2
живий стан оновлень, інциденти, логи та свіжість TXT
24/7

Що входить

Основні можливості iEXRates

Профіль BestChange

Єдине налаштування мови, типу курсу, інтервалу, таймууту, позиції за замовчуванням, свого обмінника та публікації TXT.

  • API URL та дзеркала загальні, з пінгом та пріоритетом
  • ключі зберігаються в базі та управляються з адмінки
  • кожен профіль отримує окремий файл TXT-файл

Приклад роботи

Як власник налаштовує напрямок

Одного разу задаються правила, далі iEXRates сам отримує ринок, вибирає коректний оффер, застосовує захист та публікує підсумковий курс.

  1. Вибирається пара

    Наприклад, BTC на готівку RUB, з обов'язковим містом Москва.

  2. Задається мета

    Позиція #2, бути вищою за обраний обмінник або брати середнє по топ-10.

  3. Застосовуються правила

    Фільтри, резерв, ліміти, black list, комісія, округлення та захист від різких стрибків.

  4. Публікується TXT

    Готовий код виду BTC-CASHRUB_MSK потрапляє у файл профілю та доступний сайту.

Формули

Формули як окремий продукт усередині системи

Формула показує доступні теги, пояснює кожен крок розрахунку та дозволяє перевірити результат до збереження. Це зручно, коли курс має враховувати не одну позицію, а кілька умов одразу.

приклад правила

Попередній перегляд формули

[pos:3]
+ step_to_competitor
− 0.15%
Позиція
#3
Конкурент
Обмінник

Найкращий курс, конкретна позиція, діапазон позицій, середнє по кількох місцях, свій обмінник чи конкурент.

Стеження та комісії

Курс можна вести за конкретним обмінником, вище за нього чи нижче

Для кожного напряму можна вибрати обмінник-орієнтир, режим "встати вище" або "встати нижче", мінімальний крок, ліміт зміни, комісію та fallback, якщо потрібний конкурент зник з видачі.

приклад правила

Орієнтир
Обмінник · #3
Дія
стати вище на крок
Комісія
−0.15%

Стеження за обраним обмінником

Напрямок може орієнтуватися як на позицію, а й у конкретний обмінник з видачі BestChange.

Встати вище або нижче

Можна налаштувати курс так, щоб він постійно був трохи вищим за обраний конкурент або акуратно нижчий за нього.

Захист від стрибків

Ліміт зміни та антистрибок не дають курсу різко піти через випадковий оффер або тимчасову помилку ринку.

Комісії та поправки

Для курсу можна задати +1, -1, +1%, -1%, /5, /5% або свою формулу, щоб одразу враховувати маржу та витрати.

Фільтри за умовами

Правила можуть враховувати позиції, резерв, ліміти, позначки обмінників, місто та чорні списки.

Зрозумілий розрахунок

Trace показує, який оффер обраний, який крок застосований, де спрацювала комісія і чому результат потрапив до TXT.

Аналітика

Видно, що оновилося, де затримка та чому курс змінився

Операційний центр показує швидкість оновлення, свіжість TXT, стан черг, помилки API, історію розрахунків та якість кожного напряму.

Швидкість поновлення

Показується тривалість оновлення, кількість успішних пар, неоновлені напрямки та швидкість за секунду.

Історія та графіки

Можна дивитися підсумковий курс, raw rate, позицію, spread між місцями та поведінку конкурентів.

Інциденти

Проблема оформляється як зрозуміла картка: де впало, що було з ключем, URL, напрямом та TXT.

Права та доступ

Вхід за ключами, групи прав, користувачі та журнал дій допомагають безпечно працювати команді.

Швидке ядро

Оновлення збудовано як конвеєр, а не як один важкий запит

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

  1. dictionary.sync

    Довідники

    Валюти, міста, обмінники та мітки оновлюються на сервері та використовуються з локального сховища.

  2. presence.scan

    Перевірка напрямків

    Система може спочатку перевірити, які пари реально існують, щоб не завантажувати зайві курси.

  3. rates.fetch

    Отримання офферів

    URL/key pool, ліміти, повтори, кеш знімків та fallback допомагають витримувати нестабільність API.

  4. rates.calculate

    Розрахунок курсу

    Формули, позиції, комісії, кроки та обмеження збираються в один зрозумілий підсумковий курс.

  5. guard.apply

    Захист позиції

    Перевіряється цільова позиція, конкурент, мінімальний крок та допустима зміна.

  6. txt.generate

    Генерація файлів

    TXT перезбирається лише за змін, тому публікація залишається швидкою.

Додаткові джерела

BestChange залишається основою, але курси можна розширювати зовнішні джерела

Для Binance, Bybit, WhiteBIT, Heleket, файлових та ручних курсів передбачені окремі профілі, власні коди, комісії, TXT-файли та серверна пагінація.

  • binance[binance_usdt-btc]
  • bybit[bybit_usdt-btc]
  • whitebit[whitebit_usdt-btc]
  • heleket[heleket_usdt-btc]
  • manual[manual_usdt-btc]

готовий курс, зворотний 1/курс або власна комісія

Корисні матеріали

Підготуйтеся до підключення

Інструкції та допомога з налаштуванням вашого продукту.

Підключення та налаштування

Інструкції з налаштування та підключення до iEXExchanger.

Під капотом

На чому побудовано iEXRates

iEXRates розділений на адмінку, API та окреме Go-ядро. Адмінка не звертається до BestChange безпосередньо: вона працює з готовими даними з PostgreSQL, Redis та журналів, а оновлення курсів виконує серверний конвеєр.

Frontend

Адмінка оператора

React/Vite SPA з i18n, TanStack Query, серверними таблицями, віртуальними списками та живими операційними розділами.

  • React + TanStack Query

    кеш запитів, оновлення без перезавантаження та стабільна робота екранів

  • TanStack Table + Virtual

    пагінація, фільтри та віртуальні списки для тисяч записів

  • Tailwind CSS + Vite

    швидка збірка та адаптивний інтерфейс адмінки

  • TypeScript strict

    строга типізація форм, API-контрактів та стану інтерфейсу

Backend

API, воркери та черги

NestJS 11 об'єднує admin API, public API, налаштування профілів, права доступу, scheduler, черга завдань та події для адмінки.

  • NestJS 11

    єдиний API для профілів, напрямків, логів, доступу та джерел

  • PostgreSQL + Prisma ORM

    основна база, суворі моделі та міграції схеми

  • Redis

    гарячий кеш, live-стан, блокування та швидкі знімки

  • ClickHouse

    швидкі журнали, історія оновлень та аналітика подій

Infra

Self-hosted розгортання

iEXRates розгортається як окремий серверний продукт: Go-ядро, Docker Compose, Nginx, PostgreSQL, Redis, ClickHouse та публічна видача TXT-файлів.

  • Go

    worker pool, batch-оновлення, rate limit та атомарна генерація файлів

  • Docker Compose

    єдиний запуск адмінки, API, engine, PostgreSQL, Redis, ClickHouse та Nginx

  • Nginx

    проксіювання API та публічна видача TXT-файлів

  • Debian 12 / Ubuntu 22.04

    рекомендована база для встановлення на сервер

Готово для обмінника

iEXRates закриває весь ланцюжок: від BestChange до готового курсу на сайті

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

Тільки для клієнтів iEXExchanger

Проєкт підключається до чинної ліцензії iEXExchanger та працює як додатковий модуль до основної платформи.

Вартість—