Как выкачать и приручить данные Polymarket

27 May, 2026

Если вы следили за последними выборами в США или просто интересуетесь криптой, то наверняка слышали про Polymarket. Это крупнейшая площадка для ставок на реальные события, где «коллективный разум» оценивает вероятности всего на свете — от курса биткоина до даты выхода новой GTA.

Но вот в чем загвоздка: интерфейс сайта хорош для ставок, но совершенно не подходит для серьезного анализа. Если вы захотите узнать, как менялась цена конкретного исхода поминутно или кто из крупных игроков (китов) сейчас заходит в позицию, вы упретесь в стену. API у них есть, но собирать из него цельную картину — то еще удовольствие.

Репозиторий poly_data решает именно эту проблему. Это готовый конвейер на Python, который забирает сырые данные из блокчейна и API, а на выходе отдает аккуратные CSV-таблицы с историей торгов.

Зачем это нужно аналитику

Обычно работа с данными предсказательных рынков превращается в кошмар из-за фрагментации. Часть данных лежит в обычном REST API, часть — в графах (subgraphs) на Polygon, а сопоставить ID токена с человеческим названием вопроса — отдельный квест.

Автор проекта собрал воедино три важных этапа:

Реклама
  1. Сбор метаданных рынков (вопросы, варианты ответов, объемы).
  2. Скрапинг событий OrderFilled через Goldsky (это быстрее и надежнее прямой работы с нодой).
  3. Процессинг, который превращает «адрес А передал актив Б адресу В» в понятную запись: «Трейдер купил исход 'Да' по цене 0.65$».

Что внутри пайплайна

Проект написан с акцентом на скорость и простоту. Вместо тяжеловесных баз данных здесь используются CSV и библиотеки для быстрой обработки — Pandas и Polars.

Быстрый старт без ожидания

Первое, что бросается в глаза в README — ссылка на готовый дамп данных. Это огромный плюс. Если начинать сбор с нуля, скрипты будут молотить двое суток, чтобы выкачать историю. Автор предлагает просто скачать orderFilled_complete.csv.xz, закинуть в папку и начать работу.

Управление зависимостями через UV

Приятно видеть, что проект использует uv. Это современный менеджер пакетов на Rust, который работает в разы быстрее привычного pip. Установка выглядит максимально лаконично:

uv sync
uv run python update_all.py

Одной командой вы запускаете обновление всех данных: скрипт докачает новые рынки, соберет свежие сделки и обновит итоговый файл trades.csv.

Как устроена обработка данных

Самая ценная часть кода спрятана в process_live.py. Блокчейн-данные специфичны: там нет понятия «купил» или «продал» в привычном смысле, есть только обмен токенов. Скрипт автоматически определяет:

  • Какой из токенов является USDC (стейблкоин), а какой — токеном исхода.
  • В каком направлении шла сделка (Buy/Sell).
  • Какова была реальная цена в долларах.

Интересная фишка: если в процессе обработки сделок скрипт натыкается на ID рынка, которого нет в базе, он не падает с ошибкой, а идет в API Polymarket, вытягивает инфу об этом рынке и сохраняет её в missing_markets.csv. Такая самозалечивающаяся система экономит кучу нервов.

Практический пример: следим за «умными деньгами»

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

import polars as pl

# Загружаем обработанные сделки
df = pl.scan_csv("processed/trades.csv").collect(streaming=True)

# Фильтруем по адресу известного трейдера
trader_address = '0x9d84ce0306f8551e02efef1680475fc0f1dc1344'
trader_df = df.filter(pl.col("maker") == trader_address)

Кстати, автор делает важное замечание: в Polymarket на уровне смарт-контрактов события генерируются так, что адрес пользователя почти всегда оказывается в колонке maker, даже если он технически был «тейкером» (забирал ликвидность из стакана). Без этого знания можно долго гадать, почему ваши фильтры не работают.

Кому стоит заглянуть в этот репозиторий

Проект точно пригодится двум категориям людей:

  1. Дата-сайентистам и аналитикам, которые хотят построить модель предсказания цен или изучить поведение толпы на хайповых темах.
  2. Разработчикам торговых ботов. Даже если вы не собираетесь использовать Python для исполнения ордеров, этот инструмент идеален для бэктестинга стратегий на реальных исторических данных.

В коде нет лишнего пафоса и сложных абстракций. Это рабочий инструмент «от разработчика для разработчиков». Лицензия максимально свободная — автор разрешает делать с кодом что угодно.

Если вы давно хотели пощупать данные реального крипто-рынка, но не знали, с какого бока подступиться к блокчейну — poly_data станет отличной точкой входа. Просто скачайте дамп, запустите uv sync и начинайте копать. Кто знает, какие аномалии вы там найдете?