BLACKBENCH

Все работы pumpgod


Трейдинг · Solana · 2026

pumpgod


Коллектор и снайпер запусков токенов pump.fun поверх Yellowstone gRPC.

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

Цифры

164 737
токенов записано в базе владельца
10,5 млн
сделок в архиве
5 мин
окно наблюдения за каждым токеном
70
тестовых файлов

Задача

На pump.fun токены появляются сотнями в час, и почти каждый — копия предыдущего: то же имя, тот же символ, та же картинка. Публичные скринеры показывают агрегаты постфактум и уже без первых секунд, в которых запуск, собственно, и решается. Владельцу нужна была своя запись: кто создал токен, сколько купил сам создатель и что происходило со сделками, пока событие ещё живое.

Основная сложность — не в подписке на поток, а в том, что поток не кончается. Наивный коллектор за сутки съедает диск, а без разметки клонов лента новых токенов бесполезна: в ней двадцать «Frog Coin» и непонятно, который из них первый. Значит, нужны границы записи и правило, по которому в группе копий определяется оригинал.

Решение

Подписка на Yellowstone gRPC: каждый созданный токен пишется в SQLite вместе с покупкой создателя и всеми сделками первых пяти минут. Окно закрывается по времени — событие либо записано целиком, либо помечено незакрытым, промежуточных состояний нет.

Агрегаты (покупатели за 5/30/60/300 секунд, приток и отток SOL, пиковые и последние резервы, признак успешного запуска) считаются один раз, после закрытия окна, — лента остаётся быстрой, потому что на каждый тик пересчитывать нечего.

Клоны сводятся в группы по нормализованным имени и символу, члены группы ранжируются, и оригиналу достаётся ранг 0 — по карточке сразу видно, копия перед тобой или первоисточник, и сколько у него потомков.

Ретенция держит базу в границах: на 78-минутном прогоне рост измерен в ~0,56 МБ/мин, то есть 48-часовое окно наблюдения — это примерно 1,6 ГБ, а не «сколько получится».

Веб-консоль открывает базы только на чтение, с query_only на соединении: смотреть ленту, карточку токена и историю сделок можно, не рискуя данными коллектора. Пути к базам и ключ кошелька берутся из окружения — тот же код поднимается над изолированной демо-базой.

Экраны

Синтетические данные. Все экраны этого кейса сняты с изолированной демо-базы, заполненной генератором случайных чисел, а не с боевого архива: сделки, ROI и проценты на них ничего не измеряют и не описывают ни одного результата торговли.

Лента новых токенов: покупатели за 30 секунд, приток SOL, пиковые резервы и число клонов у каждой записи. На всех скриншотах — изолированная демо-база с синтетическими данными, не боевой архив.
Карточка токена: агрегаты закрытого окна, ранг в группе клонов, цена по сделкам за 4 м 59 с и полная история сделок с пометкой покупки создателя.
Мои токены: журнал запусков кошелька — подтверждённые, закрытые и один неподтверждённый, который прямо просит проверить подпись в эксплорере, прежде чем повторять.
Торговля: ставка и резерв, симуляция рядом с боевым режимом, сверка предсказанного ROI с фактическим по каждому исполнению. Все числа на этом экране — из демо-базы: ни одна сделка отсюда никуда не отправлялась, итог 382.9% ничего не измеряет и ничего не обещает.
Запуск клона: форма считает бюджет пакета — uri, имя и символ должны уместиться в транзакцию на 1232 байта, и сервер говорит, на сколько символов перебор.

Стек

TypeScript · Node.js
Yellowstone gRPC (Geyser) к валидатору Solana
SQLite: токены и сделки, теневые входы, запуски
Веб-консоль с лентой, карточкой токена и формой запуска
70 тестовых файлов