API для кошельков: балансы, сделки и PnL
CoinGecko открыл через API то, что раньше собирали вручную: полный портфель любого кошелька — балансы, сделки, перемещения средств и итоговый PnL. Данные доступны в реальном времени через тот же API-ключ, который разработчики уже используют для рыночных котировок. Это не просто новый эндпоинт — это смена парадигмы для всей аналитической инфраструктуры в крипте.
CoinGecko открыл через API то, что раньше собирали вручную: полный портфель любого кошелька — балансы, сделки, перемещения средств и итоговый PnL. Данные доступны в реальном времени через тот же API-ключ, который разработчики уже используют для рыночных котировок. Это не просто новый эндпоинт — это смена парадигмы для всей аналитической инфраструктуры в крипте.
Как это работает под капотом
Задача, которую решает CoinGecko, технически сложнее, чем кажется. Чтобы показать «total earned» для адреса вида 0xf322…35e9, недостаточно дёрнуть один RPC-нод. Нужно собрать историю транзакций по всем EVM-сетям, сопоставить входящие и исходящие переводы с ценами на момент каждой транзакции, учесть газ, разобрать внутренние вызовы контрактов, отфильтровать спам-токены и MEV-ботов, которые засоряют адрес мусорными переводами.
Именно поэтому большинство «portfolio tracker»-сервисов либо врут в PnL, либо показывают только текущие балансы без исторической стоимости. CoinGecko, судя по анонсу, закрывает весь цикл: «what it holds, what it trades, what it moves, what it made». Ключевое слово здесь — trades. Показать сделки означает распарсить DEX-свопы, а это уже работа с логами событий, декодированием ABI контрактов и определением того, что было входом, а что — выходом в свопе.
PnL — самая скользкая метрика в крипте
PnL на блокчейне считается принципиально иначе, чем на бирже. На CEX у вас есть учётная запись, и биржа точно знает цену входа и выхода. В ончейне «цена входа» — это абстракция. Если вы получили токен через airdrop, какова ваша базовая стоимость? Ноль? Цена на момент клейма? А если вы фармили его в пуле полгода?
Есть три подхода, которые применяют аналитические сервисы. Первый — FIFO по цене на момент получения актива. Второй — средневзвешенная стоимость по всем входящим транзакциям. Третий — mark-to-market от нуля, где любой приход считается «бесплатным» и весь текущий баланс — это прибыль. CoinGecko не раскрывает в анонсе, какой метод используется. Это критичная деталь: цифра «total earned» для одного и того же кошелька будет отличаться в разы в зависимости от методологии.
Для активного трейдера, который крутит $83 347 в BTC через несколько DEX, разница между FIFO и средневзвешенной может составить десятки тысяч долларов «виртуальной» прибыли или убытка. И это не академический вопрос — если на этих данных строятся торговые решения или, хуже того, налоговые декларации, методология становится вопросом денег.
Что осталось за кадром анонса
В исходном сообщении нет ответов на несколько технических вопросов, от которых зависит применимость API.
Первый: покрытие сетей. EVM-чейны — это относительно просто, там единая модель адресов и похожие RPC. Но что с Solana, где модель аккаунтов принципиально иная? С Bitcoin, где UTXO-модель требует другого подхода к определению «баланса кошелька»? С Cosmos-экосистемой, где ATOM ($1.83) живёт в десятках зон с IBC-переводами между ними? Если API покрывает только EVM — это полезный, но ограниченный инструмент.
Второй: латентность. «Live now» — маркетинговая формулировка. Реальный вопрос: сколько секунд или минут проходит между транзакцией в блокчейне и её отражением в API? Для аналитики это не критично, для торговых ботов — критично. Если данные отстают на 30 секунд, арбитражные стратегии на них не построишь.
Третий: обработка реоргов. Когда Блокчейн реорганизуется, транзакция может «исчезнуть» из канонической цепочки. Хороший аналитический API должен уметь откатывать уже отданные данные. Если CoinGecko не помечает транзакции как «подтверждённые» с разной глубиной, пользователь может увидеть PnL, который через минуту изменится.
Сравнение с тем, что уже есть
Прямые конкуренты — Zerion API, Zapper, DeBank, Moralis. Zerion исторически силён именно в PnL-аналитике и парсинге DeFi-позиций. DeBank даёт отличный «social»-слой и покрытие протоколов. Moralis — сырые данные без агрегации. Преимущество CoinGecko в другом: он уже держит ценовые фиды, по которым считается весь рынок. Это значит, что оценка активов в портфеле и историческая цена для PnL берутся из одного источника, а не склеиваются из трёх API.
Но есть и риск. CoinGecko — агрегатор цен, а не первичный источник ончейн-данных. Если он строит кошелёк-аналитику на собственных индексах, то любая ошибка в ценовом фиде автоматически превращается в ошибку в PnL. При текущем Fear & Greed Index 62/100 — зона Greed — волатильность внутри дня может быть высокой, и качество ценовых снапшотов становится критичным.
Что это меняет для разработчиков
Самое интересное здесь — не для конечного пользователя, а для тех, кто строит на API. Раньше, чтобы сделать приложение с PnL-трекингом, нужно было собрать стек: индексатор (The Graph или собственный), ценовой оракул, база данных для истории, логика сопоставления. Это месяцы работы. Теперь это один вызов к API, который у большинства уже подключён.
Порог входа в аналитические продукты падает радикально. Это хорошо для конкуренции и плохо для дифференциации — если все используют один и тот же источник PnL, у всех будут одинаковые цифры, включая одинаковые ошибки.
А что будет с качеством ончейн-аналитики, когда один API-провайдер станет де-факто стандартом для расчёта PnL у сотен приложений — и что произойдёт с рынком, если в его методологии обнаружится системная ошибка?