Ежедневные ончейн-метрики токенизированных акций с помощью Data API

Интегрируйте данные об активности токенизированных акций в Robinhood Chain с помощью API key: GET /v1/data/robinhood_mainnet/stocks возвращает ежедневный лидерборд, а /stocks/{token} — недавние ежедневные метрики; в лидерборде нет пагинации по курсору. Это ончейн-метрики активности, а не биржевые котировки.

Данные получены из публичных ончейн-записей и предоставляются исключительно в ознакомительных целях. Они не являются инвестиционной рекомендацией.

Развертывание контрактов и прослушивание событий в Robinhood Chain описаны в руководстве по RPC и WebSocket.

  • Первый шаг: Прочитайте последний блок без API key, используя команду curl ниже.
  • Критерий завершения: авторизованный запрос акций возвращает data и meta; доступные записи включают day, token, transfers и holder_count, тогда как data: [] означает отсутствие записей об активности.

Параметры mainnet и наборы данных.

Задача из трех шагов: запрос активности акций в Robinhood Chain

Найдите наиболее активные токенизированные акции за последний зафиксированный день по UTC, затем прочитайте количество их переводов и число держателей.

Используйте один API key для запроса активности токенов акций и держателей в mainnet для дашборда активности. Это ончейн-метрики активности, а не биржевые котировки.

1. Чтение последнего блока без API key

curl -sS "https://api.blockvectra.com/v1/robinhood_mainnet/public" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

Результат JSON-RPC result содержит номер последнего блока в шестнадцатеричном формате. Этот публичный вызов RPC не требует ключа; для запроса Data API на шаге 3 ключ потребуется.

2. Создание ключа для той же сети

Войдите в консоль и откройте раздел API Keys. Создайте ключ и сохраните секрет, показанный в диалоговом окне. Тот же ключ работает для JSON-RPC и Data API в robinhood_mainnet.

Для AI Agent, использующего HTTP без браузера, следуйте руководству по программной регистрации, чтобы зарегистрироваться с помощью подписи кошелька Ethereum и создать ключ; не просите пользователя вставлять ключ в чат.

3. Запрос активности акций с помощью ключа

Замените replace-with-your-key ниже на ваш сохраненный ключ, затем выполните команду на сервере или в локальном терминале. Пропуск параметра day выбирает последний зафиксированный день; limit=5 возвращает до пяти акций, отсортированных по убыванию активности переводов.

export BLOCKVECTRA_API_KEY='replace-with-your-key'

curl -sS "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?limit=5" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"

Обратите внимание на следующие поля в ответе:

ПолеЗначение
data[].dayДата метрик за день по UTC.
data[].tokenАдрес контракта токена акции, возвращенный запросом.
data[].symbolСимвол токена.
data[].transfersКоличество ончейн-переводов за этот день.
data[].holder_countОбщее количество адресов держателей.
meta.as_of_blockТекущая индексированная вершина, а не высота блока снимка ежедневных метрик.
meta.refreshed_atВремя обновления снимка; считайте данные устаревшими, если значение равно null.

Пустой массив data означает отсутствие доступных записей об активности. Чтобы просмотреть конкретную акцию из результата, используйте ее значение token в запросе GET /robinhood_mainnet/stocks/{token}, как описано ниже.

Что такое набор данных токенизированных акций

BlockVectra Data API предоставляет ежедневные ончейн-метрики и метаданные для токенизированных акций. Этот набор данных агрегирует ежедневные переводы, выпуски (mint), сжигания (burn), чистые изменения предложения, распределение держателей и торговые метрики на децентрализованных биржах (DEX), позволяя разработчикам отслеживать публичную активность токенизированных акций.

Сети, предоставляющие этот набор данных, см. на странице Поддерживаемые сети.

  • Базовый URL: https://api.blockvectra.com/v1/data — за исключением GET /chains, все маршруты Data API имеют префикс идентификатора сети (например, https://api.blockvectra.com/v1/data/{chain}/…)
  • Пример сети: robinhood_mainnet (используется в качестве примера параметра пути; проверьте Поддерживаемые сети для получения полного списка сетей с этим набором данных)
  • Аутентификация: укажите ваш API key в заголовке запроса x-api-key: $BLOCKVECTRA_API_KEY
  • Тарификация и покрытие: тарифицируется в Compute Units (CU); оплачиваются только успешные ответы 2xx. Если в сети нет покрытия акций, эндпоинт возвращает HTTP 422 no_coverage (не тарифицируется)

Ежедневный лидерборд (GET /{chain}/stocks)

Эндпоинт GET /{chain}/stocks возвращает ежедневный лидерборд активности токенизированных акций на указанную дату по UTC, включая метаданные для отображения (символ, название и т. д.), отсортированный по убыванию активности переводов (наиболее активные токены первыми).

Параметры запроса

  • {chain} (параметр пути, обязательный): идентификатор сети (например, robinhood_mainnet).
  • day (параметр запроса, необязательный): календарная дата по UTC в формате YYYY-MM-DD. Если опущен, по умолчанию выбирается последний зафиксированный день (если активности не зафиксировано, возвращает 200 с data: []). Если указан, но не является допустимой календарной датой YYYY-MM-DD, возвращает HTTP 400 (error.code = "bad_request").
  • limit (параметр запроса, необязательный): ограничивает количество возвращаемых записей. По умолчанию 50; значения выше 500 ограничиваются 500; передача 0 или нецелого числа возвращает HTTP 400 (error.code = "bad_request").

Поведение пагинации

Этот эндпоинт не использует пагинацию. Параметр limit ограничивает максимальное количество возвращаемых записей. В результирующей структуре StockDailyListEnvelope (data и meta) эндпоинты акций не возвращают next_cursor (этот ключ полностью отсутствует, а не равен null).

Примеры кода

Полный стартовый шаблон для Robinhood Chain: blockvectra/robinhood-stock-tokens

curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks?day=2026-09-29&limit=10" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"

Структура ответа

Контейнер ответа представляет собой StockDailyListEnvelope, содержащий data и meta:

  • data (массив): список записей ежедневного лидерборда (StockDaily), отсортированный по убыванию активности переводов (наиболее активные токены первыми). Каждый элемент содержит идентификаторы токена (token, symbol, name), активность переводов (transfers, unique_senders, unique_receivers), метрики предложения (mint_raw_amount, burn_raw_amount, net_supply_change), метрики распределения (holder_count, top10_holder_share_bps), торговые метрики DEX (dex_swap_count, dex_raw_volume) и временную метку обновления (refreshed_at).
  • meta (объект): метаданные сети (chain, chain_slug, chain_external_id, as_of_block, safe_block, finalized_block, coverage, refreshed_at). Поле meta.refreshed_at может быть null: null означает, что время обновления этих данных неизвестно и их следует считать устаревшими; эндпоинты на основе блоков всегда возвращают значение.

Получение информации об одной токенизированной акции (GET /{chain}/stocks/{token})

Эндпоинт GET /{chain}/stocks/{token} получает метаданные и до 30 дней недавних ежедневных метрик для конкретной токенизированной акции по адресу ее токена.

Параметры запроса

  • {chain} (параметр пути, обязательный): идентификатор сети (например, robinhood_mainnet).
  • {token} (параметр пути, обязательный): 20-байтовый адрес контракта токена; префикс 0x необязателен, принимается любой регистр (возвращаемые адреса нормализуются к префиксу 0x и 40 строчным шестнадцатеричным символам). Недопустимый формат адреса возвращает HTTP 400 (error.code = "bad_request").
  • Если {token} не является известной токенизированной акцией, возвращается HTTP 404 (error.code = "not_found"). Если {chain} — неизвестная сеть, возвращается HTTP 404 (error.code = "unknown_chain").

Примеры кода

curl -s "https://api.blockvectra.com/v1/data/robinhood_mainnet/stocks/0x1111111111111111111111111111111111111111" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY"

Структура ответа

Контейнер ответа представляет собой StockTokenEnvelope, содержащий data и meta:

  • data (объект): объект StockToken, содержащий метаданные контракта токена (address, symbol, name, decimals, created_block, created_tx_hash, factory, creator, mint_address, burn_address, refreshed_at) и массив недавних ежедневных метрик daily.
    • daily (массив): массив недавних ежедневных метрик (StockDailyMetric), до 30 дней, отсортированный по дате по убыванию (сначала самые новые). Каждый ежедневный элемент имеет ту же схему метрик, что и лидерборд выше (без избыточных полей token, symbol и name).
  • meta (объект): объект метаданных сети, согласованный с ответом лидерборда.

Описание ключевых возвращаемых полей

Поля ежедневных метрик (StockDaily и StockDailyMetric)

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

ПолеТипОписание
daystring (date)Дата агрегации по UTC в формате YYYY-MM-DD.
tokenstring (address)Адрес контракта токена (присутствует только в лидерборде StockDaily), 40 строчных шестнадцатеричных символов с префиксом 0x.
symbolstringСимвол токена (например, "EXMPL").
namestringОтображаемое имя токена; пустая строка "", если метаданные имени недоступны.
transfersinteger (int64)Общее количество ончейн-переводов за этот день по UTC.
unique_sendersinteger (int64)Количество уникальных адресов отправителей, инициировавших переводы в этот день.
unique_receiversinteger (int64)Количество уникальных адресов получателей, получивших переводы в этот день.
mint_raw_amountstring (decimal)Общее исходное количество токенов, выпущенных за этот день.
burn_raw_amountstring (decimal)Общее исходное количество токенов, сожженных за этот день.
net_supply_changestring (decimal)Чистое изменение предложения за этот день (десятичная строка со знаком, может быть отрицательной).
holder_countinteger (int64)Общее количество адресов держателей.
top10_holder_share_bpsintegerДоля топ-10 держателей в базисных пунктах (0–10000, 1 б. п. = 0.01%).
dex_swap_countinteger (int64)Количество DEX-свопов с участием этого токена за этот день.
dex_raw_volumestring (decimal)Общий исходный объем торгов на DEX за этот день.
refreshed_atstring (timestamp)Временная метка ISO-8601 UTC последнего обновления этой ежедневной записи.

Поля метаданных токена (StockToken)

При запросе отдельного токена внешний объект data содержит метаданные контракта и недавние ежедневные метрики:

ПолеТипОписание
addressstring (address)Адрес контракта токена.
symbolstringСимвол токена.
namestringПолное имя токена.
decimalsinteger or nullДесятичные знаки токена (0–255) или null, если недоступно.
created_blockinteger (int64)Номер блока, в котором был создан контракт токена.
created_tx_hashstring (hash)Хеш транзакции создания контракта, 64 строчных шестнадцатеричных символа с префиксом 0x.
factorystring (address)Адрес контракта фабрики.
creatorstring (address) or nullАдрес создателя или null, если недоступно.
mint_addressstring (address) or nullАдрес выпуска (mint) или null, если недоступно.
burn_addressstring (address) or nullАдрес сжигания (burn) или null, если недоступно.
dailyarrayМассив недавних ежедневных метрик (StockDailyMetric), до 30 дней, отсортированный по дате по убыванию (сначала самые новые).
refreshed_atstring (timestamp)Временная метка ISO-8601 UTC последнего обновления метаданных токена.

Соглашения о кодировании

API соблюдает строгие правила кодирования на всех эндпоинтах для сохранения числовой точности и согласованности:

  • Безопасность финансовых вычислений (Money-safety): любое значение, которое может превышать 2^53 (256-битные целые числа, такие как mint_raw_amount, burn_raw_amount, net_supply_change и dex_raw_volume), сериализуется как десятичная строка, а не как число JSON и не в экспоненциальной или шестнадцатеричной нотации. Это предотвращает потерю точности в средах выполнения вроде JavaScript. В JavaScript/TypeScript выполняйте парсинг с помощью BigInt(str) (например, const net = BigInt(body.data.daily[0].net_supply_change)); в Python — с помощью int(str). Счетчики, гарантированно остающиеся значительно ниже 2^53 (transfers, unique_senders, unique_receivers, holder_count, top10_holder_share_bps, dex_swap_count, created_block), являются обычными числами JSON.
  • Двоичные и шестнадцатеричные значения: адреса представляют собой 0x и 40 строчных шестнадцатеричных символов; хеши — 0x и 64 строчных шестнадцатеричных символа. Все возвращаемые шестнадцатеричные значения строго в нижнем регистре.
  • Временные метки и даты: временные метки, такие как refreshed_at, используют формат YYYY-MM-DDTHH:MM:SSZ (ISO-8601 UTC с точностью до секунд). Ежедневные агрегированные показатели (day) используют стандартные календарные даты (YYYY-MM-DD).

Оценка расхода (ежедневное обновление 50 токенов)

Запросы к Data API расходуют Compute Units (CU) в соответствии с весами методов платформы. Приведенная ниже оценка рассматривает сценарий, в котором 50 токенов вызывают GET /{chain}/stocks/{token} один раз в день, рассчитанный по действующим весам методов:

  • Вес метода за вызов: Каждый вызов data.stock потребляет 15 CU (базовая цена $1.50 за 1M вызовов).
  • Ежедневное обновление 50 токенов (один вызов GET /{chain}/stocks/{token} на токен, 50 вызовов/день): Ежедневное потребление составляет 750 CU; за цикл из 30 дней это в сумме 1,500 вызовов с потреблением 22,500 CU, что составляет около <0.1% бесплатного лимита (30,000,000 CU). Если превышен бесплатный лимит или используется платный тариф, общая стоимость по базовой цене составит около <$0.01/месяц.

Начало работы и переход на платный тариф

Бесплатная квота идеально подходит для разработки, тестирования и небольших рабочих нагрузок. Когда объем трафика вырастет и потребуется более высокий параллелизм или больше вычислительных единиц, выполните ончейн-пополнение в консоли на странице Billing; после ончейн-подтверждения и зачисления лимит вызовов в секунду для всего аккаунта снимается. Для каждого ключа продолжают действовать лимиты скорости CU и лимиты всплесков, как описано в документации JSON-RPC. Все неиспользованные Free Credits остаются на балансе Credits и могут быть использованы. Актуальные тарифы и расчетные единицы см. на странице Цены.

Следующие шаги

Последнее обновление:

На этой странице