Интеграция с Flipside Crypto
Flipside — это аналитическая платформа с кюрированными таблицами по блокчейн-данным: декодированные события контрактов, DEX-трейды, NFT-транзакции, bridge активность по 30+ сетям. В отличие от прямого парсинга нод, здесь данные уже нормализованы и доступны через SQL-интерфейс. Основной сценарий интеграции — подключение аналитического слоя к продукту без собственной индексной инфраструктуры.
Модели доступа к данным
ShroomDK / Flipside API. Основной программный интерфейс. Запрос пишется на SQL (диалект Snowflake/Trino), отправляется через REST API, результат возвращается в JSON. Лимиты на бесплатном плане: 5000 запросов в месяц, 1M строк на результат, максимальное время выполнения запроса ~120 сек.
import requests
API_KEY = "your_api_key"
def query_flipside(sql: str) -> list[dict]:
response = requests.post(
"https://api-v2.flipsidecrypto.xyz/json-rpc",
headers={"x-api-key": API_KEY},
json={
"jsonrpc": "2.0",
"method": "createQueryRun",
"params": [{"sql": sql, "maxAgeMinutes": 10, "timeoutMinutes": 2}],
"id": 1
}
)
query_run_id = response.json()["result"]["queryRun"]["id"]
# polling до завершения
return poll_results(query_run_id)
Ключевые таблицы для EVM-сетей:
| Таблица | Содержимое |
|---|---|
ethereum.core.fact_transactions |
Все транзакции с decoded input |
ethereum.core.fact_event_logs |
Декодированные события контрактов |
ethereum.defi.fact_dex_swaps |
Свопы по Uniswap, Curve, Balancer |
ethereum.nft.fact_nft_sales |
Продажи NFT (OpenSea, Blur, LooksRare) |
ethereum.price.fact_prices_ohlc_hourly |
OHLC цены токенов |
ethereum.core.fact_token_transfers |
ERC-20 трансферы |
Аналогичная структура для Solana (solana.core.*), Polygon, Arbitrum, Base, Avalanche и других поддерживаемых сетей.
Типичный запрос — объём DEX-торговли по протоколам за последние 7 дней:
SELECT
platform,
COUNT(*) as swap_count,
SUM(amount_in_usd) as volume_usd
FROM ethereum.defi.fact_dex_swaps
WHERE block_timestamp >= DATEADD('day', -7, CURRENT_TIMESTAMP())
AND amount_in_usd IS NOT NULL
GROUP BY platform
ORDER BY volume_usd DESC
LIMIT 20
Архитектура интеграции
Кэширование — обязательно. Flipside не предназначен для запросов в реальном времени. Архитектурный паттерн: scheduled job подтягивает данные каждые N минут → сохраняет в собственную БД → фронтенд читает из кэша. Прямые запросы к Flipside API из пользовательского интерфейса — плохая практика: latency 5-30 сек, лимиты быстро исчерпаются.
// Cron job каждые 15 минут
import { FlipsideClient } from '@flipsidecrypto/sdk';
const flipside = new FlipsideClient({ apiKey: process.env.FLIPSIDE_API_KEY });
async function syncDexVolume() {
const result = await flipside.query.run({
sql: `SELECT ... FROM ethereum.defi.fact_dex_swaps WHERE ...`,
maxAgeMinutes: 15, // используем кэш Flipside если данные свежие
timeoutMinutes: 3,
});
await db.upsert('dex_volume_snapshots', {
timestamp: new Date(),
data: result.rows,
});
}
Официальный Python SDK:
pip install flipside
from flipside import Flipside
sdk = Flipside(api_key="...", base_url="https://api-v2.flipsidecrypto.xyz")
result = sdk.query("SELECT * FROM ethereum.core.fact_transactions LIMIT 100")
df = result.to_pandas() # удобно для аналитики
Параметр maxAgeMinutes важен: если запрашиваете одни и те же данные повторно, Flipside отдаёт кэшированный результат не расходуя лимит запросов.
Ограничения и альтернативы
Flipside обновляет данные с задержкой 30-90 минут от текущего блока — это не инструмент для реалтайм мониторинга. Для данных <1 часа нужны другие источники: The Graph (субграфы), Dune Analytics (схожий SQL-подход, но иная модель лицензирования), прямые RPC запросы.
Покрытие некоторых протоколов может быть неполным или устаревшим — перед использованием стоит верифицировать данные против on-chain источника хотя бы по нескольким транзакциям.







