Gaphql API

This post was last updated for 516 days ago, and the information may already be changed

Ниже приведён полный список всех сущностей (типы с @entity​) в субграфе Uniswap V3, с разбором каждого поля: что оно хранит и для чего используется.

Источники схемы:
• Определения сущностей — исходный файл schema.graphql​ (GitHub) (GitHub)
• Общий обзор работы субграфа — Uniswap Docs (Uniswap Docs)


1. Factory

Хранит агрегированную статистику по всему протоколу.

Поле Тип Описание и назначение
​id​ ID! Адрес контракта Factory. Используется для единственной точки входа в глобальные данные Uniswap V3.
​poolCount​ BigInt! Общее число созданных пулов. Позволяет следить за ростом экосистемы.
​txCount​ BigInt! Всего транзакций через субграф. Используется как индикатор активности.
​totalVolumeUSD​,totalVolumeETH​ BigDecimal! Накопленный объём свопов в USD/ETH за всё время.
​totalFeesUSD​,totalFeesETH​ BigDecimal! Сумма комиссий, начисленных протоколу, в USD/ETH.
​untrackedVolumeUSD​ BigDecimal! Объём в USD с учётом всех пулов (даже без точного курса).
​totalValueLockedUSD​,totalValueLockedETH​ BigDecimal! Текущий TVL протокола в USD/ETH, рассчитанный по последним ценам.
​totalValueLockedUSDUntracked​,totalValueLockedETHUntracked​ BigDecimal! TVL, включая невыверенные курсы.
​owner​ ID! Текущий владелец фабрики (адрес, управляющий параметрами через governance).

2. Bundle

Единичная сущность для расчёта курса ETH→USD.

Поле Тип Описание
​id​ ID! Всегда фиксировано в 1​.
​ethPriceUSD​ BigDecimal! Текущий курс ETH в USD, используемый при пересчёте объёмов и TVL.

3. Token

Описывает каждый токен, участвующий в пулах.

Поле Тип Что хранит и зачем
​id​ Bytes! Адрес контракта токена. Обязателен для однозначной идентификации.
​symbol​,name​ String! Символ (USDC) и имя (USD Coin). Отображаются в интерфейсах и графиках.
​decimals​ BigInt! Число десятичных знаков. Необходимо для нормализации значений балансов и объёмов.
​totalSupply​ BigInt! Общий объём эмиссии токена.
​volume​,volumeUSD​ BigDecimal! Совокупный объём торгов в единицах токена и в USD (при пересчёте).
​untrackedVolumeUSD​ BigDecimal! Объём в USD по всем пулам, включая те, где не было белого списка для курса.
​feesUSD​ BigDecimal! Сумма комиссий, полученных по этому токену, в USD.
​txCount​ BigInt! Количество транзакций со включением этого токена.
​poolCount​ BigInt! Число пулов, в которых участвует токен.
​totalValueLocked​,totalValueLockedUSD​,totalValueLockedUSDUntracked​ BigDecimal! Суммарный TVL токена во всех пулах (в единицах и в USD, включая/исключая невыверенные курсы).
​derivedETH​ BigDecimal! Приблизительная цена токена в ETH (для других сетей – в нативной валюте).
​whitelistPools​ [Pool!]! Список пулов, прошедших в «белый список» для расчёта USD-цены.
​tokenDayData​ [TokenDayData!]! @derivedFrom(field: "token") Ссылка на историю по дням.

4. Pool

Каждый пул ликвидности с двумя токенами.

Поле Тип Описание
​id​ Bytes! Адрес контракта пула.
​createdAtTimestamp​,createdAtBlockNumber​ BigInt! Время и номер блока создания пула.
​token0​,token1​ Token! Два актива, составляющие пару.
​feeTier​ BigInt! Размер комиссии (обычно 500, 3000, 10000 — что соответствует 0.05%, 0.3%, 1%).
​liquidity​ BigInt! Текущая «в диапазоне» ликвидность.
​sqrtPrice​,tick​,observationIndex​ BigInt! Параметры «наблюдателя» цен и текущего рыночного уровня (тик).
​token0Price​,token1Price​ BigDecimal! Котировки: сколько token0 стоит в token1 и наоборот.
​volumeToken0​,volumeToken1​ BigDecimal! Накопленные объёмы свопов каждого токена.
​volumeUSD​,untrackedVolumeUSD​,feesUSD​,txCount​ BigDecimal!, BigInt! Объёмы и комиссии в USD, объём транзакций.
​collectedFeesToken0​,collectedFeesToken1​,collectedFeesUSD​ BigDecimal! Собранные сборы в токенах и в USD.
​totalValueLockedToken0​,totalValueLockedToken1​,totalValueLockedETH​,totalValueLockedUSD​,totalValueLockedUSDUntracked​ BigDecimal! TVL в разных единицах.
​liquidityProviderCount​ BigInt! Число адресов, предоставивших ликвидность.
​poolHourData​,poolDayData​ [PoolHourData!]!, [PoolDayData!]! @derivedFrom(field: "pool") История по часам и по дням.
​mints​,burns​,swaps​,collects​,ticks​ … @derivedFrom События внутри пула — отношения для выборки.

5. Tick

Отдельная запись для каждого ценового тика в пуле.

Поле Тип Назначение
​id​ ID! Составляется как <poolAddress>#<tickIdx>​.
​poolAddress​ Bytes! Адрес пула.
​tickIdx​ BigInt! Индекс тика (целое число, шаги по логарифмической цене).
​pool​ Pool! Ссылка на пул.
​liquidityGross​ BigInt! Общая ликвидность, связанная с этим тиком (нижняя или верхняя граница).
​liquidityNet​ BigInt! Изменение ликвидности при пересечении тика.
​price0​,price1​ BigDecimal! Расчётная (константная) цена token0/token1 на этом тике.
​createdAtTimestamp​,createdAtBlockNumber​ BigInt! Когда тик впервые появился (для исторической выборки).

6. Transaction и события внутри него

Transaction

Поле Тип Зачем нужно
​id​ ID! Хэш транзакции.
​blockNumber​ BigInt! Номер блока включения.
​timestamp​ BigInt! Когда была подтверждена.
​gasUsed​,gasPrice​ BigInt! Метрики газовых затрат для оценки стоимости взаимодействия.
​mints​,burns​,swaps​,flashed​,collects​ … @derivedFrom Связанные события для подробного анализа.

Mint / Burn

Добавление или удаление ликвидности.

Поле Тип Описание
​id​ ID! Составляется как <txHash>#<index>​.
​transaction​ Transaction! Ссылка на транзакцию.
​timestamp​ BigInt! Момент события.
​pool​ Pool! Пул, в котором добавили/сгорели ликвидность.
​token0​,token1​ Token! Токены пары.
​owner​ Bytes! Адрес владельца позиции.
​sender​ Bytes Контракт/сервис, вызвавший операцию.
​origin​ Bytes! Исходный EOA.
​amount​ BigInt! Ликвидность (единицы).
​amount0​,amount1​ BigDecimal! Количество каждого токена.
​amountUSD​ BigDecimal? USD-эквивалент (при наличии цен).
​tickLower​,tickUpper​ BigInt! Границы ценового диапазона.
​logIndex​ BigInt! Порядок события в логе транзакции.

Swap

Обмен внутри пула.

Поле Тип Назначение
​amount0​,amount1​ BigDecimal! Дельта token0/token1 (отрицательная/положительная).
​amountUSD​ BigDecimal! USD эквивалент свопа.
​sqrtPriceX96​ BigInt! Новая цена пула в формате Q64.96.
​tick​ BigInt! Новое значение тика после свапа.
​sender​,recipient​,origin​ Bytes! Участники операции.
​logIndex​ BigInt! Позиция в логе.

Collect

Снятие комиссий провайдером.

Поле Тип Описание
​owner​ Bytes! Владелец позиции, получивший сборы.
​amount0​,amount1​,amountUSD​ BigDecimal! Количество снятых токенов и их USD-эквивалент.
​tickLower​,tickUpper​ BigInt! Диапазон позиции.
​logIndex​ BigInt! Порядковый номер в логе.

Flash

Флэш-кредит (безпользовательская сессия).

Поле Тип Назначение
​amount0​,amount1​ BigDecimal! Выданные токены флэш-кредита.
​amount0Paid​,amount1Paid​ BigDecimal! Возвращённые токены.
​amountUSD​ BigDecimal! USD-эквивалент флэша.
​sender​,recipient​ Bytes! Участники.
​logIndex​ BigInt! Позиция в логе.

7. Исторические агрегаты

UniswapDayData

Сводка по протоколу за сутки.

Поле Тип Содержание
​date​ Int! Дата (unix / 86400).
​volumeETH​,volumeUSD​,volumeUSDUntracked​ BigDecimal! Объёмы за день.
​feesUSD​ BigDecimal! Сумма комиссий.
​txCount​ BigInt! Число транзакций.
​tvlUSD​ BigDecimal! TVL в USD на конец дня.

PoolDayData / PoolHourData

Срезы для каждого пула за день/час.

Поля (общие) Тип Значение
​id​ ID! ​<poolAddress>-<date>​
​periodStartUnix​(hour) /date​(day) Int! Время начала периода.
​liquidity​,sqrtPrice​,tick​,token0Price​,token1Price​ … Состояние пула на конец периода.
​tvlUSD​,volumeToken0/1​,volumeUSD​,feesUSD​,txCount​ … Метрики объёмов, комиссий и активности.
​open​,high​,low​,close​ BigDecimal! OHLC для цены token0 за период.

TokenDayData / TokenHourData

Аналогично по каждому токену.

Поля Тип Содержание
​id​ ID! ​<tokenAddress>-<date>​
​volume​,volumeUSD​,untrackedVolumeUSD​ BigDecimal! Объёмы торгуемости токена.
​totalValueLocked​,totalValueLockedUSD​ BigDecimal! TVL токена.
​priceUSD​,feesUSD​ BigDecimal! Цена токена и собранные комиссии в USD.
​open​,high​,low​,close​ BigDecimal! Дневные/часовые OHLC.

Все эти сущности обеспечивают полную картину работы протокола и дают возможность:

  • быстро получать агрегированные данные (Factory, UniswapDayData),
  • анализировать историю активности по пулам и токенам (Day/HourData),
  • детально распаковывать каждую транзакцию и связанные события внутри пулов.

    Related articles

    Reply

    Welcome to here!

    Here we can learn from each other how to use SiYuan, give feedback and suggestions, and build SiYuan together.

    Signup About
    Please input reply content ...