# Полный архив документации FastNear Builder Docs AI-читабельные Markdown-копии авторских гайдов и канонических маршрутов `/rpcs/**` и `/apis/**`. --- ## Справочник RPC / API - HTML-маршрут: https://docs.fastnear.com/ru - Markdown-маршрут: https://docs.fastnear.com/ru/index.md **Источник:** [https://docs.fastnear.com/ru](https://docs.fastnear.com/ru) Обзор документации FastNear Выберите API или справочник FastNear. Используйте RPC для канонических чтений состояния по JSON-RPC, вызовов контрактов и отправки транзакций. Используйте индексированные API для балансов, активов, истории активности и свежих данных семейства блоков. [Начать с FastNear API](https://docs.fastnear.com/ru/api) [Начать с RPC](https://docs.fastnear.com/ru/rpc) [Получить API-ключ](https://docs.fastnear.com/ru/auth) Аутентификация API-ключи FastNear работают и для RPC, и для API. Заголовок Authorization: Bearer ... URL-параметр ?apiKey=... Сначала возьмите ключ — войдите на [dashboard.fastnear.com](https://dashboard.fastnear.com) через Google или email, получите бесплатные стартовые кредиты и подключайте месячную подписку или бессрочные резервные кредиты только тогда, когда понадобятся повышенные лимиты. Быстрая маршрутизация Большинство команд начинают здесь [FastNear API](https://docs.fastnear.com/ru/api) Индексированные эндпоинты для аккаунтов, активов, стейкинга и публичных ключей для чтения в прикладных сценариях вокруг аккаунта. На уровне протокола [Справочник RPC](https://docs.fastnear.com/ru/rpc) Канонические методы JSON-RPC для блоков, вызовов контрактов, валидаторов и отправки транзакций. История исполнения [Транзакции API](https://docs.fastnear.com/ru/tx) Активность аккаунта, квитанции, поиск транзакций и история по блокам из индексированных данных исполнения. Чтения с низкой задержкой [NEAR Data API](https://docs.fastnear.com/ru/neardata) Свежие оптимистичные и финализированные блоки, заголовки и вспомогательные перенаправления для опроса и лёгкого мониторинга. Основные API и справочники Это основные точки входа FastNear. Начните с API или раздела справочника, подходящего под нужные данные, затем переходите к подробному справочнику по конкретному эндпоинту. Индексированные представления аккаунта [FastNear API](https://docs.fastnear.com/ru/api) Используйте индексированные REST-эндпоинты для балансов, NFT, позиций стейкинга и поиска по публичному ключу без сырых обёрток запросов и ответов JSON-RPC. Полезные ссылки [Полное состояние аккаунта](https://docs.fastnear.com/ru/api/v1/account-full) [Балансы FT-токенов](https://docs.fastnear.com/ru/api/v1/account-ft) [Активы NFT](https://docs.fastnear.com/ru/api/v1/account-nft) [Поиск по публичному ключу](https://docs.fastnear.com/ru/api/v1/public-key) Канонический JSON-RPC [Справочник RPC](https://docs.fastnear.com/ru/rpc) Используйте методы на уровне протокола для прямых чтений состояния, отправки транзакций, вызовов контрактов и инспекции цепочки. Полезные ссылки [Состояние аккаунта](https://docs.fastnear.com/ru/rpc/account/view-account) [Поиск блоков](https://docs.fastnear.com/ru/rpc/block/block-by-id) [view-вызовы контрактов](https://docs.fastnear.com/ru/rpc/contract/call-function) [Данные валидаторов](https://docs.fastnear.com/ru/rpc/validators/validators-current) История исполнения [Транзакции API](https://docs.fastnear.com/ru/tx) Используйте индексированные эндпоинты для активности аккаунта, квитанций, поиска транзакций и истории исполнения по блокам. Полезные ссылки [Активность аккаунта](https://docs.fastnear.com/ru/tx/account) [Поиск транзакций](https://docs.fastnear.com/ru/tx/transactions) [Трассировка квитанций](https://docs.fastnear.com/ru/tx/receipt) [История транзакций по блоку](https://docs.fastnear.com/ru/tx/blocks) Свежие чтения семейства блоков [NEAR Data API](https://docs.fastnear.com/ru/neardata) Используйте NEAR Data для свежих оптимистичных и финализированных блоков, заголовков блоков и маршрутов-помощников по последнему блоку, когда нужны чтения почти в реальном времени или лёгкий мониторинг. Полезные ссылки [Оптимистичные чтения блоков](https://docs.fastnear.com/ru/neardata/block-optimistic) [Последний финализированный блок](https://docs.fastnear.com/ru/neardata/last-block-final) [Опрос заголовков блоков](https://docs.fastnear.com/ru/neardata/block-headers) Операции и доступ Всё, о чём команды обычно спрашивают перед переходом на продовые лимиты. Держите под рукой на переходе от исследования к продовым нагрузкам. Повышенные лимиты [Аутентификация и доступ](https://docs.fastnear.com/ru/auth) Один API-ключ FastNear работает и для RPC, и для REST API. Ключи и оплата [Dashboard](https://dashboard.fastnear.com) Войдите, создайте ключи и переходите на сценарии с более высокими лимитами, когда понадобится. Живые операции [Status](https://status.fastnear.com) Проверяйте инциденты и деградацию сервиса до отладки поведения приложения. Подъём инфраструктуры [Снапшоты](https://docs.fastnear.com/ru/snapshots) Поднимайте инфраструктуру RPC или архива быстрее, без повторного воспроизведения цепочки с нуля. Агенты и автоматизация Строите с ИИ-агентами или фоновыми воркерами? Используйте документацию для агентов, чтобы настроить режим работы с учётными данными, логику маршрутизации и Markdown-экспорты, пригодные для промптов. [Открыть хаб агентов](https://docs.fastnear.com/ru/agents) [Как выбрать поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces) --- ## Агенты на FastNear - HTML-маршрут: https://docs.fastnear.com/ru/agents - Markdown-маршрут: https://docs.fastnear.com/ru/agents.md **Источник:** [https://docs.fastnear.com/ru/agents](https://docs.fastnear.com/ru/agents) # Агенты на FastNear {/* FASTNEAR_AI_DISCOVERY: Это операционная точка входа для ИИ-агентов, краулеров и сред автоматизации. Страница объясняет, какую информацию собрать до первого запроса, с какого API FastNear начинать, как устроена аутентификация между API и что должен содержать полезный ответ агента. */} Эта страница — операционная точка входа для ИИ-агентов, краулеров и сред автоматизации, использующих FastNear. Цель простая: распознать реальную задачу пользователя, выбрать один API FastNear, получить минимальный полезный результат и расширяться на другой API только тогда, когда явно не хватает части ответа. ## Если нужен только следующий шаг - Нужно выбрать, с какого API FastNear начать? Используйте [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces). - Нужны правила работы с учётными данными? Используйте [Аутентификацию для агентов](https://docs.fastnear.com/ru/agents/auth). - Нужны примеры многошаговых сценариев? Используйте [Плейбуки для агентов](https://docs.fastnear.com/ru/agents/playbooks). - Нужна точная документация по эндпоинту сейчас? Сразу откройте [Справочник RPC](https://docs.fastnear.com/ru/rpc), [FastNear API](https://docs.fastnear.com/ru/api), [Транзакции API](https://docs.fastnear.com/ru/tx), [API переводов](https://docs.fastnear.com/ru/transfers), [NEAR Data API](https://docs.fastnear.com/ru/neardata) или [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv). ## FastNear для агентов за минуту - Используйте индексированные API, когда пользователю нужен ответ в продуктовой форме — балансы, активы, история аккаунта или история переводов. - Используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc), когда пользователю нужны канонические поля на уровне протокола, вызовы контрактов или отправка транзакций. - Используйте [NEAR Data API](https://docs.fastnear.com/ru/neardata), когда вопрос касается свежих оптимистичных или финализированных блоков и явного опроса. - Используйте [Снапшоты](https://docs.fastnear.com/ru/snapshots) для операторских сценариев, а не для чтения прикладных данных. - Один API-ключ FastNear работает и для RPC, и для REST API. - Останавливайтесь после первого достаточного ответа. Не собирайте данные из нескольких API, если текущего результата достаточно. ## Что определить до первого запроса Попробуйте выявить эти входные данные до вызова: - **Сеть**: mainnet или testnet. - **Первичный идентификатор**: идентификатор аккаунта, публичный ключ, хеш транзакции, ID квитанции, высота / хеш блока, идентификатор контракта плюс ключ хранилища или задача по подъёму узла. - **Форма ответа**: сводка, история, канонический вывод протокола или инструкции оператора. - **Требование к свежести**: историческая, текущая, оптимистичная / последняя или финализированная / последняя. - **Требование к точности**: достаточно индексированной сводки или нужна точная каноническая семантика узла. Если чего-то не хватает — делайте небольшое предположение, когда вероятный стартовый API от этого не меняется. Задавайте уточняющий вопрос только тогда, когда неверный выбор API существенно изменит результат. ## API FastNear с одного взгляда | API | Начните здесь, когда... | Типичные входы | Расширяйтесь, только если... | | --- | --- | --- | --- | | [FastNear API](https://docs.fastnear.com/ru/api) | Пользователю нужны балансы, NFT, стейкинг, разрешение публичного ключа или сводка по аккаунту | `account_id`, публичный ключ | Нужны точные канонические поля узла | | [Справочник RPC](https://docs.fastnear.com/ru/rpc) | Пользователю нужен канонический вывод протокола, вызовы контрактов, данные валидаторов или отправка транзакций | `account_id`, высота / хеш блока, параметры конкретного метода | Также нужна сводка более высокого уровня или индексированная история | | [Транзакции API](https://docs.fastnear.com/ru/tx) | Пользователю нужна история транзакций, квитанций, аккаунта или исполнения по блокам | хеш транзакции, ID квитанции, `account_id`, идентификаторы блока | Нужна точная семантика продолжения или финальности на уровне RPC | | [API переводов](https://docs.fastnear.com/ru/transfers) | Пользователю нужна история только переводов | `account_id`, фильтры переводов | Вопрос расширяется до общего контекста исполнения | | [NEAR Data API](https://docs.fastnear.com/ru/neardata) | Пользователю нужны свежие оптимистичные или финализированные блоки, заголовки или помощники по последнему блоку | высота / хеш блока, требование к свежести | Нужно точное каноническое продолжение по блоку или состоянию | | [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) | Пользователю нужна индексированная история ключа контракта или последнее индексированное состояние «ключ–значение» | идентификатор контракта, ключ хранилища | Нужно точное текущее состояние в цепочке | | [Снапшоты](https://docs.fastnear.com/ru/snapshots) | Пользователь поднимает инфраструктуру | сеть, тип узла, цель оператора | Пользователь переключается на прикладные вопросы о цепочке | ## Рабочий цикл по умолчанию Используйте этот цикл, если задача явно не требует чего-то более специального: 1. Переформулируйте слова пользователя в реальную задачу. Примеры: сводка по аккаунту, инспекция канонического состояния, расследование транзакции, история только переводов, мониторинг свежих блоков или подъём узла. 2. Выберите один API FastNear. Не собирайте данные из нескольких API, пока первый результат не окажется недостаточным. 3. Подтяните минимальный релевантный контекст документации. Используйте страницу-индекс API, страницу эндпоинта или Markdown-зеркало вместо широкого неочевидного набора документов. 4. Сделайте первый запрос, соответствующий идентификатору пользователя и ожидаемой форме ответа. 5. Остановитесь, если результата уже достаточно для ответа пользователю. 6. Расширяйтесь, только когда можете точно назвать недостающую часть. Примеры: каноническое подтверждение, более широкая история исполнения, более свежие данные семейства блоков или точные поля протокола. ## Хорошие значения по умолчанию Когда формулировка пользователя коротка, но намерение типично, такие значения по умолчанию обычно корректны: - «Проверь этот аккаунт» обычно стартует с [FastNear API](https://docs.fastnear.com/ru/api). - «Проверь этот публичный ключ» обычно стартует с [FastNear API](https://docs.fastnear.com/ru/api) для разрешения ключа в аккаунт. - «Проверь эту транзакцию» обычно стартует с [Транзакции API](https://docs.fastnear.com/ru/tx). - «Проверь эту квитанцию» обычно стартует с [Транзакции API](https://docs.fastnear.com/ru/tx). - «Проверь этот блок» обычно стартует с [NEAR Data API](https://docs.fastnear.com/ru/neardata) для мониторинга свежих блоков или со [Справочника RPC](https://docs.fastnear.com/ru/rpc) для точных канонических данных блока. - «Проверь этот ключ / историю контракта» обычно стартует с [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv). - «Помоги поднять узел» стартует со [Снапшотов](https://docs.fastnear.com/ru/snapshots). Полные правила маршрутизации и компромиссы — в [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces). ## Расширяйтесь осторожно Хорошие шаблоны эскалации: - Начните с [FastNear API](https://docs.fastnear.com/ru/api), затем переходите в [Справочник RPC](https://docs.fastnear.com/ru/rpc), если пользователь просит каноническое подтверждение. - Начните с [Транзакции API](https://docs.fastnear.com/ru/tx), затем переходите в [Справочник RPC](https://docs.fastnear.com/ru/rpc), если пользователю нужно протокольное продолжение по транзакции или квитанции. - Начните с [API переводов](https://docs.fastnear.com/ru/transfers), затем расширяйтесь в [Транзакции API](https://docs.fastnear.com/ru/tx), если вопрос выходит за рамки событий переводов. - Начните с [NEAR Data API](https://docs.fastnear.com/ru/neardata), затем переходите в [Справочник RPC](https://docs.fastnear.com/ru/rpc), если нужна точная каноническая инспекция блока или состояния. Плохой шаблон: - Тянуть данные из нескольких API FastNear до того, как понятно, что именно нужно пользователю. Обычно это даёт более шумный ответ, а не более полезный. ## Аутентифицируйтесь один раз, используйте везде Публичные эндпоинты работают и без ключа. Добавьте ключ, если нужны повышенные лимиты или платные сценарии. Один и тот же ключ работает со всеми API FastNear выше; передавайте его либо в HTTP-заголовке, либо в URL-параметре: ```bash title="Заголовок Authorization" curl "https://rpc.mainnet.fastnear.com" \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ --data '{"method":"block","params":{"finality":"final"},"id":1,"jsonrpc":"2.0"}' ``` ```bash title="URL-параметр" curl "https://rpc.mainnet.fastnear.com?apiKey=${API_KEY}" ``` Получить ключ: [dashboard.fastnear.com](https://dashboard.fastnear.com). Операционный режим для неинтерактивных сред: [Аутентификация для агентов](https://docs.fastnear.com/ru/agents/auth) — ключи должны жить в переменных окружения или менеджере секретов, а не в браузерном хранилище, логах чатов или промптах. Полный сценарий и детали заголовков: [Аутентификация и доступ](https://docs.fastnear.com/ru/auth). ## Как вынимать чистую документацию в промпт - На каждой странице в правом верхнем углу есть кнопка **Копировать Markdown**. Она отдаёт Markdown-версию страницы без навигации, готовую к вставке в промпт или RAG-хранилище. - Соглашение `llms.txt` поддерживается: - [`/llms.txt`](https://docs.fastnear.com/ru/llms.txt) — индекс страниц и краткие описания. - [`/llms-full.txt`](https://docs.fastnear.com/ru/llms-full.txt) — полный корпус документации в одном файле. - Русскоязычные аналоги: [`/ru/llms.txt`](https://docs.fastnear.com/ru/llms.txt) и [`/ru/llms-full.txt`](https://docs.fastnear.com/ru/llms-full.txt). - Машиночитаемая структура сайта для поглощения с учётом графа: [`/structured-data/site-graph.json`](https://docs.fastnear.com/ru/structured-data/site-graph.json) (зеркало в `/ru/`). - Под тем же slug с суффиксом `.md` лежит Markdown-зеркало каждой страницы, если прямой запрос удобнее кнопки «Копировать Markdown». ## Подсказки на каждый вызов - Имена параметров, поля ответа и примеры пэйлоадов отрисовываются на каждой странице эндпоинта в реальном времени. Первоисточник — реестр `src/data/generatedFastnearPageModels.json`, используйте его, если зеркалите схему в другой системе. - `?network=testnet` поддерживается только на конкретных страницах. Каждая страница отмечает поддержку сетей в разделе **Аутентификация и доступность**; не считайте, что переключение работает везде. - Токены пагинации (`resume_token`, `page_token`) непрозрачны. Используйте их ровно в том виде, в котором они пришли, и только с тем же эндпоинтом и фильтрами, что их вернули. - В каждом REST-семействе есть маршруты `/status` и `/health` для проверки живости и задержки синхронизации. ## Что должен содержать полезный ответ агента - Краткое указание на то, какой API FastNear был использован и почему, особенно если выбор был выводом. - Ответ в форме, которая, скорее всего, понадобится пользователю следующей: сначала сводка для людей; точные поля или подсказки по следующему вызову для технического потребителя. - Любое важное предостережение о свежести, каноничности, пагинации или выборе сети. - Путь продолжения — только когда это реально помогает. Примеры: «используйте RPC для канонического подтверждения» или «используйте Транзакции API, если нужен более широкий контекст исполнения». Избегайте сбрасывать сырые пэйлоады, когда пользователь на самом деле спрашивает об интерпретации. ## Следующие документы по потребности - Нужна глубина маршрутизации и компромиссы? [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces) - Нужен режим работы с учётными данными и обращение с секретами? [Аутентификация для агентов](https://docs.fastnear.com/ru/agents/auth) - Нужны примеры сценариев? [Плейбуки для агентов](https://docs.fastnear.com/ru/agents/playbooks) --- ## Аутентификация для агентов - HTML-маршрут: https://docs.fastnear.com/ru/agents/auth - Markdown-маршрут: https://docs.fastnear.com/ru/agents/auth.md **Источник:** [https://docs.fastnear.com/ru/agents/auth](https://docs.fastnear.com/ru/agents/auth) # Аутентификация для агентов Агенты должны аутентифицироваться в FastNear так же, как это делают продовые бэкенды. Не переносите браузерно-демонстрационный режим из UI документации в агента, воркера или среду автоматизации. Один API-ключ FastNear работает во всех RPC и REST API, которые принимают аутентифицированный трафик. Для агента важнее не само наличие аутентификации, а где живёт учётная запись, как она прикрепляется к запросам и как не допустить её утечки в промпты, логи или состояние браузера. ## Если нужно только правило - Храните ключ в переменной окружения или менеджере секретов. - Внедряйте его со стороны сервера или из среды выполнения воркера. - Предпочитайте заголовок `Authorization: Bearer ...`. - Никогда не просите пользователя вставлять ключ FastNear в чат, промпт или агента, работающего только в браузере. ## Рекомендуемые шаблоны среды выполнения Используйте один из этих шаблонов: - **Серверный воркер или автоматизация**: загружайте ключ из переменных окружения или менеджера секретов и прикрепляйте его к исходящим запросам к FastNear напрямую. - **Тонкий бэкенд-прокси**: если пользовательское приложение работает в браузере, сначала отправляйте запрос на свой бэкенд, и пусть бэкенд подставляет учётные данные FastNear. - **Мульти-тенантный сервис**: храните ключи по тенантам в полноценном хранилище секретов и заставьте агента выбирать правильный ключ по контексту тенанта или проекта. Избегайте архитектур «агент только в браузере», где ключ FastNear приходится держать в клиентском хранилище. ## Выбор способа передачи учётных данных | Способ | Используйте, когда... | Заметки | | --- | --- | --- | | `Authorization: Bearer ${API_KEY}` | HTTP-клиентом или бэкендом управляете вы | Лучшее значение по умолчанию для агентов. Меньше шансов утечь в логи URL, аналитику или скопированные ссылки. | | `?apiKey=${API_KEY}` | используется простой curl или система, которой сложно выставлять заголовки | Тоже допустимо, но URL обычно дальше путешествуют через логи и инструменты. Применяйте осознанно. | Если есть выбор — используйте заголовочную форму. ## Минимальный безопасный поток 1. Читайте ключ из переменной окружения или менеджера секретов во время выполнения. 2. Прикрепляйте его к запросу как заголовок или URL-параметр. 3. Чистите промпты, трассировки и логи, чтобы сырой ключ не попадал в транскрипты. 4. Ротируйте ключ, если он появился в промпте, отладочной трассировке, браузерном хранилище или скопированном URL. Пример: ```js const apiKey = process.env.FASTNEAR_API_KEY; const response = await fetch('https://rpc.mainnet.fastnear.com', { method: 'POST', headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'block', params: {finality: 'final'}, }), }); ``` ## Когда аутентификации не хватает Многие публичные эндпоинты FastNear по-прежнему доступны на чтение без ключа. Если агент может ответить на вопрос пользователя через публичный трафик — делайте так. Когда ключ нужен для повышенных лимитов, платного доступа или аутентифицированного трафика: - подскажите пользователю создать или забрать ключ на [dashboard.fastnear.com](https://dashboard.fastnear.com) - попросите настроить его в переменной окружения, менеджере секретов или конфигурации бэкенда - не просите вставлять сырой ключ в чат, чтобы агент «носил» его с собой Если агент не может получить настроенный секрет — пусть честно скажет это и остановится, а не импровизирует небезопасное хранение. ## Так делать не надо - Не вынимайте ключ из браузерного `localStorage` и не считайте его учётной записью агента. - Не зашивайте ключи в агент-приложения, доставляемые в браузер. - Не храните ключи в промптах, ячейках ноутбуков или в виде открытого текста в конфигах, закоммиченных в систему контроля версий. - Не предпочитайте `?apiKey=` только за краткость, если инфраструктура агрессивно логирует полные URL. ## Что агенту стоит сказать пользователю Когда аутентификация уместна, полезный ответ агента обычно содержит: - можно ли выполнить текущий запрос без аутентификации - нужно ли пользователю далее настроить API-ключ FastNear - где этому ключу жить — обычно в переменной окружения, менеджере секретов или бэкенд-прокси - какой способ передачи использует агент — обычно `Authorization: Bearer ...` ## Связанные руководства - [Аутентификация и доступ](https://docs.fastnear.com/ru/auth) - [Агенты на FastNear](https://docs.fastnear.com/ru/agents) - [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces) --- ## Как выбрать подходящую поверхность - HTML-маршрут: https://docs.fastnear.com/ru/agents/choosing-surfaces - Markdown-маршрут: https://docs.fastnear.com/ru/agents/choosing-surfaces.md **Источник:** [https://docs.fastnear.com/ru/agents/choosing-surfaces](https://docs.fastnear.com/ru/agents/choosing-surfaces) # Как выбрать подходящую поверхность {/* FASTNEAR_AI_DISCOVERY: Эта страница — для ИИ-агентов, которые выбирают поверхность FastNear по намерению пользователя. Она объясняет, как перейти от цели пользователя к лучшей первой поверхности, когда комбинировать поверхности и каких типичных ошибок избегать. */} Не начинайте с того, чтобы отдавать агенту каждый эндпоинт FastNear. Сначала сформулируйте, какую задачу на самом деле хочет решить пользователь, а затем выберите один API или раздел справочника FastNear, который наиболее прямо отвечает на эту задачу. Для агента важнее не вопрос «какой эндпоинт существует?», а вопрос «какой ответ поможет пользователю сделать следующий шаг?». ## Что определяет маршрут Прежде чем выбрать API, определите четыре вещи: - **Объект**: аккаунт, публичный ключ, хеш транзакции, квитанция, блок, хранилище контракта или задача по настройке инфраструктуры. - **Форма ответа**: сводка в продуктовой форме, история исполнения, канонический вывод протокола или инструкции для оператора. - **Свежесть**: историческая, текущая или последняя / почти в реальном времени. - **Точность**: достаточно индексированной сводки или требуется каноническая корректность в форме узла. На практике: - аккаунт плюс сводка обычно означают [FastNear API](https://docs.fastnear.com/ru/api) - аккаунт плюс точное каноническое состояние обычно означают [Справочник RPC](https://docs.fastnear.com/ru/rpc) - транзакция или квитанция обычно означают [Транзакции API](https://docs.fastnear.com/ru/tx) - история только переводов обычно означает [API переводов](https://docs.fastnear.com/ru/transfers) - самые свежие блоки обычно означают [NEAR Data API](https://docs.fastnear.com/ru/neardata) - история ключей контракта обычно означает [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) - подъём узла обычно означает [Снапшоты](https://docs.fastnear.com/ru/snapshots) ## Начните с намерения пользователя - Если пользователю нужен ответ в стиле кошелька или обозревателя, предпочитайте индексированные API. - Если пользователю нужно каноническое поведение протокола или точное состояние в форме узла, используйте сырой [Справочник RPC](https://docs.fastnear.com/ru/rpc). - Если пользователю нужна история, квитанции или последовательности событий, используйте API, ориентированные на историю, прежде чем возвращаться к RPC. - Если пользователю нужны самые свежие данные семейства блоков, используйте [NEAR Data API](https://docs.fastnear.com/ru/neardata) для свежести, ориентированной на опрос. - Если пользователю нужны инструкции по подъёму инфраструктуры, направляйте его к [Снапшотам](https://docs.fastnear.com/ru/snapshots), а не к прикладным поверхностям запросов. ## Порядок принятия решений Используйте этот порядок перед выбором поверхности: 1. Пользователь пытается поднять инфраструктуру, а не запрашивать данные цепочки? Если да — используйте [Снапшоты](https://docs.fastnear.com/ru/snapshots). 2. Пользователь просит сводку в продуктовой форме: балансы, NFT, стейкинг или активы аккаунта? Если да — начните с [FastNear API](https://docs.fastnear.com/ru/api). 3. Пользователь спрашивает, что происходило со временем: транзакции, квитанции, переводы или история активности? Если да — начните с [Транзакции API](https://docs.fastnear.com/ru/tx) или с [API переводов](https://docs.fastnear.com/ru/transfers) для вопросов только о переводах. 4. Пользователю нужны самые свежие блоки или чтения семейства блоков с низкой задержкой? Если да — используйте [NEAR Data API](https://docs.fastnear.com/ru/neardata). 5. Корректность зависит от канонического поведения узла, полей протокола или точного состояния в цепочке? Если да — используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc). 6. Пользователь спрашивает об истории индексированного хранилища «ключ–значение» или о последнем индексированном состоянии контракта? Если да — используйте [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv). Если подходит несколько поверхностей, выбирайте ту, которая даёт наиболее прямой полезный ответ с минимумом реконструкции со стороны агента. ## Перед первым вызовом Попробуйте определить эти входные данные до отправки запроса: - сеть: mainnet или testnet - первичный идентификатор: идентификатор аккаунта, публичный ключ, хеш транзакции, ID квитанции, высота / хеш блока, идентификатор контракта плюс ключ хранилища - ожидаемый вывод: сводка, история, канонические поля или шаги оператора - требование к свежести: последнее, финализированное, историческое или «что актуально сейчас» Если чего-то не хватает: - делайте небольшое предположение, когда вероятный стартовый API от этого не меняется - задавайте уточняющий вопрос только тогда, когда неверный выбор существенно изменит результат ## Направление типовых запросов пользователя | Если пользователь говорит... | Вероятно, ему нужно... | Начните с | Переключайтесь, только если... | | --- | --- | --- | --- | | «Каково точное состояние аккаунта в цепочке?» | Каноническое состояние на уровне протокола | [Справочник RPC](https://docs.fastnear.com/ru/rpc) | Также нужна сводка более высокого уровня для людей. | | «Что принадлежит этому аккаунту?» | Балансы, NFT, стейкинг и активы в продуктовой форме | [FastNear API](https://docs.fastnear.com/ru/api) | Нужны точные поля узла, которых нет в индексированном представлении. | | «Какая активность затронула этот аккаунт?» | Индексированная история транзакций и квитанций | [Транзакции API](https://docs.fastnear.com/ru/tx) | Пользователю нужны только события переводов или требуется канонический протокольный уровень детализации. | | «Покажи только переводы.» | История переводов по аккаунту | [API переводов](https://docs.fastnear.com/ru/transfers) | Пользователю на самом деле нужен более широкий контекст исполнения транзакции. | | «Что изменилось в последних блоках?» | Свежие оптимистичные или финализированные чтения семейства блоков | [NEAR Data API](https://docs.fastnear.com/ru/neardata) | Нужны канонические детали RPC по конкретному блоку или чтению состояния. | | «Какая история хранилища у этого контракта?» | Индексированная история состояния «ключ–значение» | [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) | Нужно текущее каноническое состояние в цепочке, а не индексированная история. | | «Почему эта транзакция упала?» | Сначала хронология исполнения, затем канонические детали | [Транзакции API](https://docs.fastnear.com/ru/tx) | Нужно подтверждение финального статуса протокола на уровне RPC или поведение при отправке транзакции. | | «Как мне отправить транзакцию или посмотреть поле протокола?» | Каноническое поведение узла | [Справочник RPC](https://docs.fastnear.com/ru/rpc) | Позже понадобится сводка по итоговому состоянию аккаунта или активности для человека. | | «Как поднять узел или архивную установку?» | Инфраструктурный сценарий, а не данные приложения | [Снапшоты](https://docs.fastnear.com/ru/snapshots) | Пользователь затем начинает задавать прикладные вопросы о цепочке. | ## Когда подсказкой служит идентификатор Если формулировка пользователя размытая, но идентификатор ясен — пусть идентификатор задаст первый шаг: | Если есть... | Первый шаг по умолчанию | Почему | | --- | --- | --- | | `account_id` | Начните с [FastNear API](https://docs.fastnear.com/ru/api) для сводок или со [Справочника RPC](https://docs.fastnear.com/ru/rpc), если пользователь явно просит точное состояние | Вопросы по аккаунту обычно означают сначала балансы и активы, если пользователь не попросил канонический уровень. | | публичный ключ | Начните с [FastNear API](https://docs.fastnear.com/ru/api) для разрешения ключа в аккаунт | Обычно это задача обнаружения аккаунта, а не первой задачи на уровне RPC. | | хеш транзакции | Начните с [Транзакции API](https://docs.fastnear.com/ru/tx) | Большинству пользователей нужен контекст исполнения и читаемая история, а не сырые поля протокола. | | ID квитанции | Начните с [Транзакции API](https://docs.fastnear.com/ru/tx) | Трассировка квитанций уже индексирована там. | | высота или хеш блока | Начните с [NEAR Data API](https://docs.fastnear.com/ru/neardata) для мониторинга, ориентированного на свежесть, либо со [Справочника RPC](https://docs.fastnear.com/ru/rpc) для точных канонических данных блока | Нужна либо свежесть, либо каноничность. | | идентификатор контракта плюс ключ хранилища | Начните с [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) для индексированной истории ключа или со [Справочника RPC](https://docs.fastnear.com/ru/rpc) для точного текущего состояния в цепочке | Вопрос о хранилище обычно определяет, что важнее: индексированная история или каноническое состояние. | | задача по подъёму узла или архива | Начните со [Снапшотов](https://docs.fastnear.com/ru/snapshots) | Это операторский сценарий, а не доступ к данным приложения. | ## Для чего лучше всего подходит каждая поверхность ### Справочник RPC Используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc), когда пользователю нужны точные данные или поведение на уровне протокола: - точное состояние аккаунта, ключи доступа, валидаторы, чанки, блоки, метаданные протокола - view-вызовы контрактов и отправка транзакций - ответы, где имена и семантика полей должны быть максимально близки к узлам NEAR Не стартуйте с RPC, когда пользователю на самом деле нужна аккуратная сводка по активам или истории. Это заставит агента пересобирать продуктовый ответ из данных более низкого уровня. ### FastNear API Используйте [FastNear API](https://docs.fastnear.com/ru/api), когда пользователю нужен ответ, уже похожий на данные приложения: - балансы - NFT - позиции стейкинга - поиск по публичному ключу - объединённые снимки аккаунта Обычно это первый шаг для запросов кошелька, портфеля, обозревателя и обзора аккаунта. ### Транзакции API Используйте [Транзакции API](https://docs.fastnear.com/ru/tx), когда пользователю нужна история исполнения: - активность аккаунта - поиск транзакции - трассировка квитанций - история транзакций по блокам Это поверхность истории по умолчанию, когда пользователь спрашивает «что произошло?», а не «что есть прямо сейчас?». ### API переводов Используйте [API переводов](https://docs.fastnear.com/ru/transfers), когда вопрос пользователя именно о событиях переводов, а не о полном контексте исполнения: - входящие и исходящие переводы - пагинация, ориентированная на переводы - представления активности аккаунта только по переводам Если пользователь начинает спрашивать про квитанции, действия кроме переводов или полное поведение транзакций — переходите в [Транзакции API](https://docs.fastnear.com/ru/tx). ### NEAR Data API Используйте [NEAR Data API](https://docs.fastnear.com/ru/neardata), когда свежесть важнее сводки в продуктовой форме: - оптимистичные или недавно финализированные блоки - чтения последних блоков семейства - явные сценарии с опросом Не представляйте это как сервис на основе WebSocket или webhook. Это поверхность чтения, ориентированная на опрос. ### KV FastData API Используйте [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv), когда вопрос об истории индексированного хранилища контракта или о последнем индексированном состоянии «ключ–значение»: - анализ хранилища - история ключей - поиск состояния контракта, где уместна индексированная абстракция «ключ–значение» ### Снапшоты Используйте [Снапшоты](https://docs.fastnear.com/ru/snapshots), когда сценарий связан с подъёмом инфраструктуры оператором: - подъём mainnet или testnet - инициализация RPC- или архивного узла - операторские руководства Это не путь прикладных запросов. ## Ближайшие шаги после выбора Как только выбрана стартовая поверхность, следующий шаг тоже должен быть предсказуемым: | Выбранный API | Первое, что нужно сделать | Как выглядит успех | Расширяйтесь только если... | | --- | --- | --- | --- | | [FastNear API](https://docs.fastnear.com/ru/api) | Выберите эндпоинт, соответствующий идентификатору или запросу на сводку | Можно сразу ответить на вопросы по балансам, активам, стейкингу или сводке аккаунта | Нужны точные канонические поля узла или подтверждение на уровне протокола | | [Справочник RPC](https://docs.fastnear.com/ru/rpc) | Выберите конкретный RPC-метод, соответствующий объекту и требуемому набору канонических полей | Можно вернуть поля на уровне протокола или выполнить точное действие по состоянию / отправке | Также нужна сводка более высокого уровня или индексированная история | | [Транзакции API](https://docs.fastnear.com/ru/tx) | Начните с эндпоинта по хешу транзакции, квитанции, истории аккаунта или истории блока, подходящего под вопрос | Можно объяснить, что произошло и в каком порядке | Нужна точная семантика финальности или отправки на уровне RPC | | [API переводов](https://docs.fastnear.com/ru/transfers) | Запросите историю переводов для аккаунта или в нужном объёме актива | Можно отвечать на вопросы только о переводах без лишних деталей исполнения | Вопрос расширяется до квитанций, действий или полного контекста транзакции | | [NEAR Data API](https://docs.fastnear.com/ru/neardata) | Запросите последние оптимистичные или финализированные данные семейства блоков по требованию к свежести | Можно отвечать «что изменилось недавно?» или «каково последнее состояние семейства блоков?» | Нужно точное каноническое продолжение по блоку или состоянию | | [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) | Запросите последнее индексированное состояние «ключ–значение» или историю ключа | Можно отвечать на вопросы инспекции хранилища контракта в индексированном виде | Нужно точное текущее состояние в цепочке, а не индексированные представления хранилища | | [Снапшоты](https://docs.fastnear.com/ru/snapshots) | Выберите нужную сеть и тип узла, затем следуйте руководству по подъёму | Можно дать операторские шаги, предусловия и ориентиры для подъёма | Пользователь переключается с настройки инфраструктуры на прикладные вопросы о цепочке | ## Условия остановки перед расширением Не расширяйтесь на второй API только потому, что он существует. Оставайтесь на первом API, когда: - ответ уже соответствует ожидаемой пользователем форме - текущий API уже отдаёт поля, которые просил пользователь - пользователь просил историю и индексированная история уже получена - пользователь просил сводку и сводка уже получена Расширяйтесь, когда: - пользователь явно просит каноническое подтверждение - текущему API не хватает поля, свежести или детализации исполнения - вопрос расширился с истории только переводов до общего поведения транзакций - вопрос расширился со сводки до инспекции на уровне протокола ## Комбинируйте поверхности, только когда это помогает пользователю Хорошие шаблоны с несколькими поверхностями: - Начните с [FastNear API](https://docs.fastnear.com/ru/api), затем опуститесь в [Справочник RPC](https://docs.fastnear.com/ru/rpc), если пользователь просит каноническое подтверждение. - Начните с [Транзакции API](https://docs.fastnear.com/ru/tx), затем используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc), когда нужны финальные детали протокола по конкретной транзакции или квитанции. - Начните с [NEAR Data API](https://docs.fastnear.com/ru/neardata) для самых свежих блоков, затем используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc) для точной инспекции конкретного блока или запроса состояния. - Начните с [API переводов](https://docs.fastnear.com/ru/transfers) для вопросов только о переводах, затем расширяйтесь в [Транзакции API](https://docs.fastnear.com/ru/tx), если пользователь просит больше контекста исполнения. Плохой шаблон с несколькими поверхностями: - Тянуть данные из нескольких поверхностей до того, как понятно, что именно нужно пользователю. Обычно это даёт более шумный ответ, а не более полезный. ## Что агенту стоит вывести из типовых формулировок - «Что есть у этого кошелька?» обычно означает балансы, NFT, стейкинг и, возможно, разрешение по публичному ключу. Начните с [FastNear API](https://docs.fastnear.com/ru/api). - «Почему эта транзакция упала?» обычно означает, что пользователю сначала нужна читаемая история исполнения, а не сырой вывод протокола. Начните с [Транзакции API](https://docs.fastnear.com/ru/tx). - «Это точное состояние цепочки?» обычно означает, что каноническая корректность важнее удобства. Начните со [Справочника RPC](https://docs.fastnear.com/ru/rpc). - «Что только что произошло в последнем блоке?» обычно означает, что главное требование — свежесть. Начните с [NEAR Data API](https://docs.fastnear.com/ru/neardata). - «Как быстро поднять узел?» — это операторский сценарий. Начните со [Снапшотов](https://docs.fastnear.com/ru/snapshots). ## Частые ошибки маршрутизации - Не начинайте с RPC только потому, что он канонический. Каноничность не равна полезности для каждой задачи пользователя. - Не используйте снапшоты для прикладных чтений. - Не описывайте [NEAR Data API](https://docs.fastnear.com/ru/neardata) как поверхность потоковой передачи. - Не расширяйтесь с истории переводов до полной истории транзакций, если вопрос пользователя сам не стал шире. - Не уходите с индексированного API только потому, что существует сырой RPC. Переходите, только когда индексированного ответа недостаточно. ## Если намерение пользователя неоднозначно Когда пользователь формулирует размыто, делайте наименьшее полезное предположение о маршруте: - «Проверь этот аккаунт» обычно стоит начинать с [FastNear API](https://docs.fastnear.com/ru/api) — большинству пользователей нужна читаемая сводка по аккаунту. - «Проверь эту транзакцию» обычно стоит начинать с [Транзакции API](https://docs.fastnear.com/ru/tx) — большинству пользователей нужен контекст исполнения, а не только поля протокола. - «Проверь этот блок» можно начинать с [NEAR Data API](https://docs.fastnear.com/ru/neardata) для мониторинга, ориентированного на свежесть, либо со [Справочника RPC](https://docs.fastnear.com/ru/rpc), когда пользователя явно интересует канонический вывод узла. Если делаете предположение — кратко укажите его в ответе и идите дальше. Просите уточнения только тогда, когда выбор неверной поверхности существенно изменит результат. ## Что агенту делать после первого результата После возврата первого ответа: 1. Проверьте, можно ли теперь ответить на вопрос пользователя напрямую. 2. Если да — отвечайте в ожидаемой пользователем форме, а не собирайте дополнительные данные. 3. Если нет — точно назовите недостающую часть. Примеры: каноническое подтверждение, более широкая история, более свежие данные семейства блоков, точное поле протокола или специфический контекст инфраструктуры. 4. Только тогда переключайте API. Цель — не доказать, что существует несколько API FastNear. Цель — ответить на следующий реальный вопрос пользователя за минимальное число необходимых шагов. ## Связанные руководства - [Агенты на FastNear](https://docs.fastnear.com/ru/agents) — полная карта поверхностей, базовые URL и подсказки по поглощению промптов. - [Аутентификация для агентов](https://docs.fastnear.com/ru/agents/auth) — работа с учётными данными и операционный режим. - [Плейбуки для агентов](https://docs.fastnear.com/ru/agents/playbooks) — примеры многошаговых сценариев. --- ## Плейбуки для агентов - HTML-маршрут: https://docs.fastnear.com/ru/agents/playbooks - Markdown-маршрут: https://docs.fastnear.com/ru/agents/playbooks.md **Источник:** [https://docs.fastnear.com/ru/agents/playbooks](https://docs.fastnear.com/ru/agents/playbooks) # Плейбуки для агентов {/* FASTNEAR_AI_DISCOVERY: Эта страница даёт ИИ-агентам конкретные многошаговые сценарии для типовых задач FastNear. Каждый плейбук называет минимальные входы, первый API, с которого начать, момент для расширения на другой API и то, что должен содержать полезный ответ. */} Используйте эту страницу, когда агент уже знает, какой тип задачи он обрабатывает, и ему нужны ближайшие шаги по умолчанию. Каждый плейбук начинается с одного API FastNear, называет минимально полезные входы и подсказывает, когда остановиться, а когда расширяться. Базовое правило остаётся одним для всех плейбуков: начните с одного API, получите минимальный полезный результат и расширяйтесь, только когда можете точно назвать недостающую часть. ## Как использовать эти плейбуки 1. Сопоставьте запрос пользователя с ближайшим плейбуком ниже. 2. Соберите минимальные входы. 3. Сделайте первый запрос к рекомендуемому стартовому API. 4. Остановитесь, как только можете ответить в форме, которая реально нужна пользователю. 5. Расширяйтесь только под конкретное недостающее поле, требование к свежести или к каноничности. ## Быстрая карта | Если пользователю нужно... | Начните с... | Расширяйтесь, только если... | | --- | --- | --- | | балансы, активы, стейкинг или сводка аккаунта в стиле кошелька | [FastNear API](https://docs.fastnear.com/ru/api) | требуются точные канонические поля узла | | история транзакций, квитанций или исполнения по аккаунту | [Транзакции API](https://docs.fastnear.com/ru/tx) | требуется точный статус или семантика отправки на уровне RPC | | история только переводов | [API переводов](https://docs.fastnear.com/ru/transfers) | вопрос выходит за рамки переводов | | последние оптимистичные или финализированные блоки | [NEAR Data API](https://docs.fastnear.com/ru/neardata) | требуется точное каноническое продолжение по блоку или состоянию | | индексированное состояние ключей контракта или история ключей | [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) | требуется точное текущее состояние в цепочке | | подъём узла или настройка оператором | [Снапшоты](https://docs.fastnear.com/ru/snapshots) | задача уходит обратно к прикладным данным цепочки | Если до сих пор непонятно, какой плейбук подходит — сначала используйте [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces). ## Сводка и активы аккаунта Используйте, когда пользователь говорит «проверь этот аккаунт», «что хранит этот кошелёк», «какие NFT у этого аккаунта» или «какому аккаунту принадлежит этот ключ?». **Минимальные входы** - сеть - `account_id` или публичный ключ - хочет пользователь широкую сводку или один конкретный класс активов **Начните здесь** - [Полный снимок аккаунта V1](https://docs.fastnear.com/ru/api/v1/account-full) для широкой сводки аккаунта - [Поиск по публичному ключу V1](https://docs.fastnear.com/ru/api/v1/public-key), если стартовый идентификатор — публичный ключ - [Индекс FastNear API](https://docs.fastnear.com/ru/api), когда сначала нужно выбрать более узкий эндпоинт **Последовательность по умолчанию** 1. Если стартовый идентификатор — публичный ключ, разрешите его в один или несколько `account_id` через [Поиск по публичному ключу V1](https://docs.fastnear.com/ru/api/v1/public-key). 2. Возьмите самое широкое полезное представление аккаунта через [Полный снимок аккаунта V1](https://docs.fastnear.com/ru/api/v1/account-full). 3. Если пользователь просит только одно семейство активов или нужна более узкая детализация — переходите к целевым эндпоинтам: [балансы FT-токенов](https://docs.fastnear.com/ru/api/v1/account-ft), [активы NFT](https://docs.fastnear.com/ru/api/v1/account-nft) или [позиции стейкинга](https://docs.fastnear.com/ru/api/v1/account-staking). 4. Остановитесь, как только можете напрямую ответить на вопрос об активах. **Расширяйтесь, только если** - пользователь просит точные канонические поля состояния, а не индексированные сводки - пользователю нужна протокольная семантика аккаунта или ключей доступа Тогда расширяйтесь на [Состояние аккаунта](https://docs.fastnear.com/ru/rpc/account/view-account) или другие страницы [Справочника RPC](https://docs.fastnear.com/ru/rpc). **Полезный ответ должен содержать** - определённую идентичность аккаунта - балансы или активы, о которых спросил пользователь - короткую пометку, что это индексированные сводные данные, а не сырое состояние RPC ## Расследование транзакции или квитанции Используйте, когда пользователь говорит «прошла ли эта транзакция», «почему она упала», «что случилось с этой квитанцией» или «покажи недавнюю активность аккаунта». **Минимальные входы** - сеть - хеш транзакции, ID квитанции или `account_id` - нужна инспекция одного элемента или диапазон истории **Начните здесь** - [Поиск транзакций](https://docs.fastnear.com/ru/tx/transactions) для хеша транзакции - [Поиск квитанций](https://docs.fastnear.com/ru/tx/receipt) для ID квитанции - [История аккаунта](https://docs.fastnear.com/ru/tx/account) для активности по аккаунту **Последовательность по умолчанию** 1. Выберите стартовый эндпоинт по уже известному идентификатору. 2. Запросите индексированную запись исполнения и восстановите историю в читаемом порядке. 3. Выделите статус, затронутые аккаунты, ключевые квитанции и контекст блока, если он существенен. 4. Остановитесь, если можете объяснить, что произошло, без канонического подтверждения через RPC. **Расширяйтесь, только если** - пользователь явно просит точную семантику статуса RPC - индексированной записи недостаточно, чтобы ответить на вопрос уровня протокола - вопрос сместился к поведению при отправке транзакции Тогда расширяйтесь на [Статус транзакции](https://docs.fastnear.com/ru/rpc/transaction/tx-status) или другой подходящий метод [Справочника RPC](https://docs.fastnear.com/ru/rpc). **Полезный ответ должен содержать** - успех, неудачу или ожидание транзакции или квитанции - сначала главный вывод исполнения, потом сырые поля - путь продолжения — только если он добавляет ценность, например «используйте RPC для канонического подтверждения» ## История только переводов Используйте, когда пользователя интересует движение активов и не нужен более широкий контекст квитанций или действий. **Минимальные входы** - сеть - `account_id` - опциональные фильтры: токен, направление или временной интервал **Начните здесь** - [Запрос переводов](https://docs.fastnear.com/ru/transfers/query) - [Индекс API переводов](https://docs.fastnear.com/ru/transfers) **Последовательность по умолчанию** 1. Запросите историю переводов для нужного аккаунта и фильтров. 2. Используйте пагинацию только до такой глубины, которая реально нужна для ответа. 3. Сосредоточьте ответ на переводах и не пересобирайте полную историю транзакции. 4. Остановитесь, если пользователь спросил только кто, когда и какой актив отправил. **Расширяйтесь, только если** - пользователь начинает спрашивать про действия, не связанные с переводами - пользователю нужны трассировки квитанций или более широкий контекст исполнения - пользователь хочет понять, почему действие произошло, а не просто что был перевод Тогда расширяйтесь на [Историю аккаунта](https://docs.fastnear.com/ru/tx/account) или другую страницу [Транзакций API](https://docs.fastnear.com/ru/tx). **Полезный ответ должен содержать** - значимые входящие или исходящие события переводов - предположения о фильтрах, которые были сделаны - пометку, что это история переводов, а не полная история исполнения ## Мониторинг свежих блоков Используйте, когда пользователю нужны самые свежие данные оптимистичных или финализированных блоков или он спрашивает «что изменилось недавно?». **Минимальные входы** - сеть - требование к свежести: оптимистичная или финализированная - опционально — высота или хеш блока, если пользователь привязывается к конкретному блоку **Начните здесь** - [Редирект на последний финализированный блок](https://docs.fastnear.com/ru/neardata/last-block-final) для последнего финализированного блока - [Оптимистичный блок по высоте](https://docs.fastnear.com/ru/neardata/block-optimistic), когда сценарий явно оптимистичный - [Заголовки блоков](https://docs.fastnear.com/ru/neardata/block-headers), когда достаточно опроса на уровне заголовков - [Индекс NEAR Data API](https://docs.fastnear.com/ru/neardata), когда нужно выбрать между ними **Последовательность по умолчанию** 1. Определите, нужна ли пользователю оптимистичная свежесть или финализированная стабильность. 2. Используйте помощника по последнему блоку или маршрут семейства блоков, соответствующий требованию к свежести. 3. Опрашивайте явно и в ответе чётко указывайте, какой режим свежести использован. 4. Остановитесь, если пользователю достаточно свежих данных семейства блоков и каноническое продолжение через RPC не требуется. **Расширяйтесь, только если** - пользователь просит точный канонический вывод блока - пользователь хочет проверить состояние или поля протокола за пределами данных семейства блоков - пользователю нужна точная семантика RPC для конкретного продолжения по блоку Тогда расширяйтесь на [Справочник RPC](https://docs.fastnear.com/ru/rpc), обычно начиная с [Блока по высоте](https://docs.fastnear.com/ru/rpc/block/block-by-height) или [Блока по ID](https://docs.fastnear.com/ru/rpc/block/block-by-id). **Полезный ответ должен содержать** - пометку, что данные получены из оптимистичных или финализированных чтений - детали последнего блока или заголовка, которые реально отвечают на вопрос пользователя - пометку, если более глубокое каноническое продолжение существенно изменит интерпретацию ## Инспекция хранилища контракта Используйте, когда пользователю нужна индексированная история ключей контракта, последнее индексированное состояние ключей или анализ хранилища контракта по ключу. **Минимальные входы** - сеть - идентификатор контракта - точный ключ, префикс ключа или область аккаунта / `predecessor_id` - хочет пользователь последнее индексированное состояние или исторические изменения ключа **Начните здесь** - [Последнее по точному ключу](https://docs.fastnear.com/ru/fastdata/kv/get-latest-key) для одного точного ключа - [Индекс KV FastData API](https://docs.fastnear.com/ru/fastdata/kv), когда вопрос шире одного ключа **Последовательность по умолчанию** 1. Определите, хочет пользователь один ключ, семейство ключей или историю хранилища в разрезе аккаунта. 2. Запросите минимальное индексированное представление «ключ–значение», соответствующее этой области. 3. Если нужна история, а не последнее значение — оставайтесь внутри [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) и переключайтесь на подходящий исторический эндпоинт. 4. Остановитесь, если индексированные данные «ключ–значение» уже отвечают на вопрос. **Расширяйтесь, только если** - пользователю нужно точное текущее состояние в цепочке, а не индексированное состояние хранилища - пользователю нужна протокольная семантика состояния контракта - индексированного представления хранилища недостаточно для запрошенного точного ключа или префикса Тогда расширяйтесь на [Просмотр состояния контракта](https://docs.fastnear.com/ru/rpc/contract/view-state) в [Справочнике RPC](https://docs.fastnear.com/ru/rpc). **Полезный ответ должен содержать** - контракт и область ключа, которая была проинспектирована - пометку, это последнее индексированное состояние или история ключа - пометку, если каноническое состояние RPC отличается по свежести или семантике ## Подъём узла и настройка оператором Используйте, когда пользователь пытается поднять инфраструктуру, а не запросить данные цепочки. **Минимальные входы** - сеть - тип узла, например RPC или архивный - цель: скорость подъёма, восстановление синхронизации или операционный сценарий **Начните здесь** - [Снапшоты](https://docs.fastnear.com/ru/snapshots) **Последовательность по умолчанию** 1. Сразу направляйте к подходящему снапшоту или операторскому руководству. 2. Сосредоточьте ответ на предусловиях, пути подъёма и следующих операционных шагах. 3. Не подтягивайте прикладные API, пока пользователь сам не сменит задачу. **Расширяйтесь, только если** - пользователь перестаёт спрашивать про инфраструктуру и начинает спрашивать про сами данные цепочки Тогда возвращайтесь к [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces) и выбирайте нужный API данных. **Полезный ответ должен содержать** - сеть и тип узла, которые вы предполагаете - операторские шаги, которые нужно сделать дальше - любое чёткое предусловие или оговорку, меняющую путь подъёма ## Общие правила для всех плейбуков - Называйте сеть, если её пришлось вывести по контексту. - Называйте выбранный API, если выбор был выводом. - Предпочитайте один достаточный ответ исчерпывающему ответу по нескольким API. - Считайте токены пагинации непрозрачными и переиспользуйте их только с тем же эндпоинтом и набором фильтров, которые их создали. - Не расширяйтесь только потому, что существует более канонический API. ## Если ни один плейбук не подходит чисто Если запрос по-прежнему неоднозначен после этой страницы: - используйте [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces), чтобы выбрать первый API - используйте [Аутентификацию для агентов](https://docs.fastnear.com/ru/agents/auth), если блокер — работа с учётными данными - возвращайтесь к [Агентам на FastNear](https://docs.fastnear.com/ru/agents) за правилами рабочего цикла по умолчанию и формы ответа --- ## FastNear API - HTML-маршрут: https://docs.fastnear.com/ru/api - Markdown-маршрут: https://docs.fastnear.com/ru/api.md **Источник:** [https://docs.fastnear.com/ru/api](https://docs.fastnear.com/ru/api) # FastNear API FastNear API — это индексированное REST-семейство для продуктовых представлений аккаунтов. Это самый быстрый способ ответить на вопросы вроде «чем владеет этот аккаунт?» или «какие аккаунты соответствуют этому публичному ключу?» без сборки результата из сырых RPC-вызовов. ## Базовые URL ```bash title="FastNear API Mainnet" https://api.fastnear.com ``` ```bash title="FastNear API Testnet" https://test.api.fastnear.com ``` ## Лучше всего подходит для - балансов кошельков и обзоров активов; - представлений аккаунта по NFT и FT-токенам; - поиска аккаунтов по публичному ключу; - объединённых снимков аккаунта для дашбордов, обозревателей и агентов. ## Когда его не стоит использовать - Используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc), когда нужны канонические методы JSON-RPC из протокола. - Используйте [Транзакции API](https://docs.fastnear.com/ru/tx), когда основная задача — история транзакций или квитанций. - Используйте [NEAR Data API](https://docs.fastnear.com/ru/neardata), когда нужен опрос данных по блокам и проверка свежести. ## Аутентификация и доступность по сетям - Публичные REST-эндпоинты FastNear не требуют API-ключа. - Интерфейс документации может передать необязательный API-ключ FastNear, если нужно аутентифицированное поведение или повышенные лимиты на поддерживаемых поверхностях. - Добавьте `?network=testnet`, чтобы переключить совместимые страницы на testnet-бэкенд и подготовленные значения по умолчанию для testnet. ## С чего обычно начинают - [V1 полный снимок аккаунта](https://docs.fastnear.com/ru/api/v1/account-full) — для объединённого снимка аккаунта. - [V1 FT-токены аккаунта](https://docs.fastnear.com/ru/api/v1/account-ft) и [V1 NFT аккаунта](https://docs.fastnear.com/ru/api/v1/account-nft) — для продуктовых представлений активов. - [V1 поиск по публичному ключу](https://docs.fastnear.com/ru/api/v1/public-key) — когда нужно определить аккаунт по ключу. - [V1 топ держателей FT](https://docs.fastnear.com/ru/api/v1/ft-top) — для представлений распределения токенов. ## Устранение неполадок ### Мне нужно только одно низкоуровневое значение из состояния цепочки Используйте сырой RPC. Эта индексированная поверхность оптимизирована для продуктовых представлений, а не для дублирования каждого RPC-метода. ### Страница всё ещё показывает данные mainnet Проверьте, поддерживает ли страница `?network=testnet`. Некоторые сценарии работают только с mainnet, и документация явно отмечает такие случаи. ### Мне нужны транзакции, а не балансы Переходите в [Транзакции API](https://docs.fastnear.com/ru/tx), чтобы не перегружать поверхность представления аккаунта запросами по истории. --- ## Справочник API - HTML-маршрут: https://docs.fastnear.com/ru/api/reference - Markdown-маршрут: https://docs.fastnear.com/ru/api/reference.md **Источник:** [https://docs.fastnear.com/ru/api/reference](https://docs.fastnear.com/ru/api/reference) # Справочник API Этот раздел объясняет, что относится к REST-слою FastNear и как выбрать между REST-семействами до перехода к сырому JSON-RPC. Сайдбар `/api` намеренно посвящён именно **FastNear API**, а не универсальному REST-разделу. Другие REST-семейства — [Транзакции API](https://docs.fastnear.com/ru/tx), [API переводов](https://docs.fastnear.com/ru/transfers), [NEAR Data API](https://docs.fastnear.com/ru/neardata) и [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) — живут в собственных верхнеуровневых разделах. ## REST-семейства с одного взгляда | Семейство | Начните здесь, когда... | Переключайтесь, когда... | | --- | --- | --- | | [FastNear API](https://docs.fastnear.com/ru/api) | нужны индексированные представления аккаунтов, токенов, NFT, стейкинга или публичных ключей | требуется каноническая семантика RPC на уровне протокола | | [Транзакции API](https://docs.fastnear.com/ru/tx) | нужна история транзакций, квитанций, аккаунта или блока | нужны только события переводов или точное поведение на уровне RPC | | [API переводов](https://docs.fastnear.com/ru/transfers) | вопрос именно о движении NEAR или FT-токенов | вопрос расширяется до общей истории исполнения | | [NEAR Data API](https://docs.fastnear.com/ru/neardata) | нужны свежие оптимистичные или финализированные чтения семейства блоков | нужно точное каноническое продолжение по блоку или состоянию | | [KV FastData API](https://docs.fastnear.com/ru/fastdata/kv) | нужна индексированная история «ключ–значение» или последнее индексированное состояние ключа | нужно точное текущее состояние контракта в цепочке | ## Для чего нужен сам `/api` Используйте раздел [FastNear API](https://docs.fastnear.com/ru/api), когда пользователю нужен ответ в продуктовой форме без сшивания сырых ответов узла: - сводки по аккаунту - балансы FT-токенов - активы NFT - позиции стейкинга - разрешение публичного ключа в аккаунт Хорошие стартовые страницы в этом сайдбаре: - [V1 Full Account View](https://docs.fastnear.com/ru/api/v1/account-full) - [V1 Account FT](https://docs.fastnear.com/ru/api/v1/account-ft) - [V1 Account NFT](https://docs.fastnear.com/ru/api/v1/account-nft) - [V1 Account Staking](https://docs.fastnear.com/ru/api/v1/account-staking) - [V1 Public Key](https://docs.fastnear.com/ru/api/v1/public-key) ## Когда не стоит стартовать с `/api` Не начинайте с этого сайдбара, когда: - основная задача — история; используйте [Транзакции API](https://docs.fastnear.com/ru/tx) или [API переводов](https://docs.fastnear.com/ru/transfers) - основная задача — опрос свежих блоков; используйте [NEAR Data API](https://docs.fastnear.com/ru/neardata) - ответ должен оставаться близким к каноническим формам запроса и ответа узла; используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc) ## Для агентов Если вызывающая сторона — ИИ-агент и выбор всё ещё не ясен: - [Агенты на FastNear](https://docs.fastnear.com/ru/agents) - [Как выбрать подходящую поверхность](https://docs.fastnear.com/ru/agents/choosing-surfaces) --- ## Аутентификация и доступ - HTML-маршрут: https://docs.fastnear.com/ru/auth - Markdown-маршрут: https://docs.fastnear.com/ru/auth.md **Источник:** [https://docs.fastnear.com/ru/auth](https://docs.fastnear.com/ru/auth) # Аутентификация и доступ Один API-ключ FastNear работает и для [RPC](https://docs.fastnear.com/ru/rpc), и для [REST API](https://docs.fastnear.com/ru/api). Войдите на [dashboard.fastnear.com](https://dashboard.fastnear.com), чтобы получить ключ, и отправляйте его в каждом запросе одним из способов ниже. ## Через заголовок Authorization ```bash curl "https://rpc.mainnet.fastnear.com" \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ --data '{"method":"block","params":{"finality":"final"},"id":1,"jsonrpc":"2.0"}' ``` ## Через URL-параметр `?apiKey=` ```bash curl "https://rpc.mainnet.fastnear.com?apiKey=${API_KEY}" \ -H "Content-Type: application/json" \ --data '{"method":"block","params":{"finality":"final"},"id":1,"jsonrpc":"2.0"}' ``` --- ## KV FastData API - HTML-маршрут: https://docs.fastnear.com/ru/fastdata/kv - Markdown-маршрут: https://docs.fastnear.com/ru/fastdata/kv.md **Источник:** [https://docs.fastnear.com/ru/fastdata/kv](https://docs.fastnear.com/ru/fastdata/kv) # KV FastData API KV FastData API — это индексированное семейство «ключ–значение». Используйте его, когда уже известен контракт, аккаунт, `predecessor_id` или область ключа, которую нужно проинспектировать, и нужны индексированные строки без построения собственного слоя индексации хранилища. ## Базовые URL ```bash title="KV FastData API Mainnet" https://kv.main.fastnear.com ``` ```bash title="KV FastData API Testnet" https://kv.test.fastnear.com ``` ## Используйте этот API, когда - нужно последнее индексированное состояние по одному ключу или известному семейству ключей - нужна история изменений по аккаунту, ключу или `predecessor_id` - нужны пакетные поиски по уже известным точным ключам - идёт отладка хранилища контракта в индексированном виде ## Не стартуйте здесь, когда - нужны балансы, активы токенов, NFT или сводки аккаунта - нужны свежие данные семейства блоков - нужно точное текущее состояние в цепочке с канонической семантикой RPC Используйте [FastNear API](https://docs.fastnear.com/ru/api) для представлений аккаунта более высокого уровня, [NEAR Data API](https://docs.fastnear.com/ru/neardata) для чтений семейства блоков и [Справочник RPC](https://docs.fastnear.com/ru/rpc) для канонической инспекции состояния контракта. ## Минимально полезные входы - сеть - идентификатор контракта или другая точная область — аккаунт, `predecessor_id` или точный ключ - нужно пользователю последнее индексированное значение или история изменений ## Выберите форму запроса - [Последнее по точному ключу](https://docs.fastnear.com/ru/fastdata/kv/get-latest-key) — когда уже известен один точный ключ - [История по точному ключу](https://docs.fastnear.com/ru/fastdata/kv/get-history-key) — когда нужна история изменений одного точного ключа - [Последнее по аккаунту](https://docs.fastnear.com/ru/fastdata/kv/latest-by-account) или [История по аккаунту](https://docs.fastnear.com/ru/fastdata/kv/history-by-account) — когда область привязана к аккаунту - [Всё по `predecessor_id`](https://docs.fastnear.com/ru/fastdata/kv/all-by-predecessor) или [История по `predecessor_id`](https://docs.fastnear.com/ru/fastdata/kv/history-by-predecessor) — когда правильная область — `predecessor_id` - [Пакетный поиск по ключам](https://docs.fastnear.com/ru/fastdata/kv/multi) — когда уже известно несколько точных ключей ## Рабочий цикл по умолчанию 1. Выберите самую узкую область, подходящую под вопрос пользователя. 2. Оставайтесь внутри KV FastData, пока вопрос остаётся про индексированные данные «ключ–значение». 3. Используйте эндпоинты «последнего значения» для текущих индексированных представлений, а исторические эндпоинты — только когда пользователю нужны ответы с изменением во времени. 4. Остановитесь, как только индексированных строк уже достаточно для ответа на вопрос о хранилище. ## Аутентификация и доступность - Эти встраиваемые страницы не передают API-ключи и Bearer-токены. - Добавьте `?network=testnet`, чтобы переключить страницу на testnet-бэкенд там, где это поддерживается. - В ответах со списками поле `page_token` отсутствует, когда новых результатов больше нет. ## Расширяйтесь, только если - пользователю нужно точное текущее состояние в цепочке, а не индексированные данные хранилища - пользователю нужна каноническая семантика состояния контракта - индексированное представление хранилища — неподходящая абстракция для вопроса Тогда расширяйтесь на [Просмотр состояния контракта](https://docs.fastnear.com/ru/rpc/contract/view-state) в [Справочнике RPC](https://docs.fastnear.com/ru/rpc). ## Устранение неполадок ### Токен пагинации перестал работать Считайте значения `page_token` непрозрачными и переиспользуйте их только с тем же эндпоинтом и фильтрами. ### Мне нужны продуктовые балансы аккаунта, а не сырые строки «ключ–значение» Переходите на [FastNear API](https://docs.fastnear.com/ru/api). --- ## Руководство по интернационализации - HTML-маршрут: https://docs.fastnear.com/ru/internationalization - Markdown-маршрут: https://docs.fastnear.com/ru/internationalization.md **Источник:** [https://docs.fastnear.com/ru/internationalization](https://docs.fastnear.com/ru/internationalization) Это руководство описывает локализационный фреймворк в `builder-docs`. Русская локаль была первой полной реализацией, но теперь это уже не отдельный разовый проект. Следующие локали должны использовать тот же каркас: - общий реестр локалей - собственные для локали файлы glossary и policy - безопасный bootstrap без перезаписи вычитанного контента - редакционный QA по волнам - маршрутизация, SEO и discovery-артефакты с учётом локали - локализованные FastNear-оверлеи без изменения сгенерированного английского источника ## Цели Этот фреймворк нужен, чтобы следующие локали были в основном задачей контента, а не инфраструктуры. Базовые правила такие: - английский остаётся локалью по умолчанию на `/` - локализованные docs публикуются по `//...` - канонические технические идентификаторы не переводятся - slug - пути эндпоинтов - ключи payload - имена свойств схем - operation ID - локализация сгенерированного контента остаётся оверлеем, а не правкой vendored-данных на месте ## Основные файлы ### Реестр локалей Поддерживаемые локали находятся в `src/data/localeRegistry.json`. Этот реестр является общим источником истины для: - конфигурации локалей Docusaurus - locale-aware route helpers - bootstrap и audit-скриптов - клиентских метаданных для скрытых разделов ### Глоссарий локали У каждой недефолтной локали есть `i18n//glossary.yml`. Глоссарий задаёт терминологический контракт и для людей, и для скриптов. Благодаря этому решения о переводе не расползаются по JS-массивам и prose-документам. Текущая схема: - `preserve` Термины, которые должны оставаться в канонической форме, например `RPC`, `API`, `JSON-RPC`, `GET`, `POST`, `FastNear`, `mainnet`. - `translate` Предпочтительные точные и словарные замены для повторяющихся UI- и docs-фраз. - `transliterate` Предпочтительные транслитерации для технического жаргона, если это лучше, чем оставлять латиницу. - `notes` Человеческие примечания с редакционным смыслом, которые не нужны скриптам напрямую. ### Policy-файл локали У каждой недефолтной локали есть и `i18n//translation-policy.yml`. Этот файл описывает редакционный объём и правила процесса: - `waves.wave1` Обязательные для ship docs и page model IDs. Это редакционная планка, которую проверяет CI. - `waves.wave2` Более широкий публичный охват для следующего прохода. - `hiddenSections` Префиксы маршрутов и путей docs, которые намеренно остаются вне редакционной планки, пока раздел не станет публичным. - `bootstrap` Локальные route labels и JSON overrides, которые использует scaffold-поток. Для русской локали первым таким скрытым разделом является `/transaction-flow`. ## Общие команды Теперь фреймворк использует generic-команды вместо русско-специфичных скриптов. ```bash yarn bootstrap:i18n --locale yarn bootstrap:i18n:reseed --locale yarn audit:i18n --locale --wave <1|2|all> yarn audit:i18n:all ``` Что они делают: - `bootstrap:i18n` Безопасно обновляет scaffold и добавляет отсутствующие файлы и ключи, не перезаписывая вычитанный контент. - `bootstrap:i18n:reseed` Явно разрушительный режим для случая, когда локаль нужно полностью пересоздать из bootstrap-эвристик. - `audit:i18n` Glossary-aware редакционный QA для одной локали и выбранной волны. - `audit:i18n:all` CI-ориентированная проверка `wave1` для всех недефолтных локалей. Русские совместимые алиасы всё ещё поддерживаются: ```bash yarn bootstrap:i18n:ru yarn bootstrap:i18n:ru:reseed yarn audit:i18n:ru ``` Но каноническим интерфейсом теперь считаются generic-команды. ## Как работает bootstrap `scripts/bootstrap-i18n.js` по умолчанию ведёт себя безопасно. Для локали вроде `ru` он: - запускает `write-translations --locale ru` - создаёт отсутствующие docs в `i18n/ru/docusaurus-plugin-content-docs/current` - сохраняет уже вычитанные локальные docs - добавляет отсутствующие ключи рантайма в locale JSON catalogs - обновляет `src/data/fastnearTranslations..json`, не выбрасывая уже вычитанные оверлеи - применяет локальные route labels и JSON overrides из `translation-policy.yml` То есть свежесть scaffold и ручная редактура больше не конфликтуют. ## Как работает audit `scripts/audit-i18n.js` — это лёгкий редакционный барьер качества. Он читает: - glossary локали для списка допустимых literal-терминов - translation policy для границ волн и исключений скрытых разделов - docs локали в `i18n//...` - каталоги переводов рантайма для локали - FastNear overlay catalog локали Проверка ищет подозрительные английские остатки, но уважает допустимые literal-термины: - названия протоколов - HTTP verbs - продуктовые имена - code identifiers - канонические фрагменты путей Это практический QA, а не попытка отполировать весь длинный хвост в первый же день. ## Политика волн Каждая локаль должна проходить через одну и ту же редакционную модель. ### Wave 1 Wave 1 — это shipping bar. Сюда входят: - главная страница и ключевые decision pages - основные входные точки для auth, API, RPC и transactions - самые заметные generated operation wrappers и overlay entries - живые строки интерфейса рантайма на этих страницах Только Wave 1 проверяется в CI. ### Wave 2 Wave 2 — это расширение публичной поверхности. Сюда входят: - дополнительные leaf docs - overview-страницы из длинного хвоста - дополнительные generated overlay entries - менее приоритетный, но всё ещё публичный текст рантайма Wave 2 важен, но специально остаётся неблокирующим. ### Long tail Long-tail работа — это дальнейшая полировка: - maintainer docs - редкие leaf pages - редко видимые theme strings - малопосещаемые generated pages Эта работа должна продолжаться, но не должна блокировать здоровый выпуск локали. ## Скрытые разделы Скрытые разделы должны быть явно помечены, чтобы широкое файловое покрытие не принимали за редакционную готовность. Источник истины — `translation-policy.yml.hiddenSections`. Эти префиксы влияют на две вещи: - исключаются из обязательной `wave1`-готовности - на страницах этих разделов показывается заметный баннер, который объясняет, что перевод и редакторская полировка намеренно отложены до публикации раздела Сейчас по этому правилу живёт `/transaction-flow`. ## Рантайм, маршрутизация и discovery Фреймворк покрывает не только prose, но и остальные поверхности, которые будущие локали должны наследовать автоматически. Важные файлы: - `docusaurus.config.js` - `src/utils/localizedRoutes.js` - `src/utils/fastnearLocalization.js` - `scripts/generate-ai-surfaces.js` - `plugins/finalizeLocalizedStaticAssets.cjs` Вместе они обеспечивают: - корректную работу locale dropdown и locale-aware routing - сохранение активной локали для внутренних ссылок - локализацию FastNear overlay без изменения source page models - выпуск локализованных Markdown mirrors, `llms.txt` и site graph из правильного корня локали - локализованные URL и `inLanguage` в structured data и SEO ## Лёгкий CI-барьер Locale-quality gate намеренно сделан небольшим. Обязательный workflow запускает: ```bash yarn audit:i18n:all yarn build node scripts/audit-indexing-surface.js ``` Этого достаточно, чтобы защитить: - качество `wave1` - корректность сборки - корректность discovery и indexing Playwright, relevance scoring и более тяжёлые редакционные проверки сюда специально не включены. ## Как добавить новую локаль Используйте такой чеклист: 1. Добавьте локаль в `src/data/localeRegistry.json`. 2. Создайте `i18n//glossary.yml`. 3. Создайте `i18n//translation-policy.yml`. 4. Запустите `yarn bootstrap:i18n --locale `. 5. Вычитайте `i18n//code.json` и дерево docs. 6. Добавьте `src/data/fastnearTranslations..json` для generated FastNear overlay. 7. Запустите `yarn audit:i18n --locale --wave 1`. 8. Запустите `yarn build` и `node scripts/audit-indexing-surface.js`. 9. Добавьте браузерные smoke-checks только там, где локаль вносит новое поведение рантайма. Если идти по этому списку, следующие локали будут в основном редакционной задачей поверх уже готового фреймворка. --- ## NEAR Data API - HTML-маршрут: https://docs.fastnear.com/ru/neardata - Markdown-маршрут: https://docs.fastnear.com/ru/neardata.md **Источник:** [https://docs.fastnear.com/ru/neardata](https://docs.fastnear.com/ru/neardata) # NEAR Data API NEAR Data API — это поверхность для чтения данных почти в реальном времени, а также по семействам блоков. Используйте её, когда нужны свежие срезы блоков, вспомогательные маршруты с перенаправлением или недавние финализированные и оптимистичные чтения, но без позиционирования продукта как потокового сервиса. ## Базовые URL ```bash title="NEAR Data API Mainnet" https://mainnet.neardata.xyz ``` ```bash title="NEAR Data API Testnet" https://testnet.neardata.xyz ``` ## Лучше всего подходит для - опроса недавних финализированных и оптимистичных блоков; - вспомогательных маршрутов по блокам и сценариев с перенаправлением; - лёгких проверок свежести данных и мониторинга. ## Когда его не стоит использовать - Используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc) для канонических методов JSON-RPC и отправки транзакций. - Используйте [Снапшоты](https://docs.fastnear.com/ru/snapshots) для поднятия инфраструктуры, а не для чтения живых данных. ## Аутентификация и доступность - В подписках FastNear на поддерживаемом трафике можно использовать необязательный параметр запроса `apiKey`. - Неверный API-ключ возвращает `401` ещё до того, как сработают вспомогательные перенаправления, поэтому при отладке с неверным ключом канонический URL не будет виден. - Добавьте `?network=testnet`, чтобы переключить совместимые страницы на значения по умолчанию для testnet. ## С чего обычно начинают - [Оптимистичный блок](https://docs.fastnear.com/ru/neardata/block-optimistic) — для самого свежего опроса блоков. - [Финализированный блок по высоте](https://docs.fastnear.com/ru/neardata/block) и [Заголовки блока](https://docs.fastnear.com/ru/neardata/block-headers) — для запросов по финализированным блокам. - [Перенаправление на последний финализированный блок](https://docs.fastnear.com/ru/neardata/last-block-final) и [Перенаправление на последний оптимистичный блок](https://docs.fastnear.com/ru/neardata/last-block-optimistic) — когда нужны вспомогательные маршруты с перенаправлением. ## Устранение неполадок ### Некоторые эндпоинты перенаправляют на канонический URL вместо прямого возврата результата Это ожидаемое поведение для вспомогательных маршрутов с перенаправлением. Если клиенту нужен итоговый ресурс, переходите по канонической цели. ### Ответ по блоку равен `null` Обычно это означает, что запрошенной высоты нет в этой сети или запрос вышел за ожидаемый диапазон свежести либо архива. ### Нужна потоковая передача, а не опрос Эта поверхность предназначена для чтения через опрос почти в реальном времени. Не позиционируйте её как продукт на основе WebSocket или вебхуков. --- ## redocly-config - HTML-маршрут: https://docs.fastnear.com/ru/redocly-config - Markdown-маршрут: https://docs.fastnear.com/ru/redocly-config.md **Источник:** [https://docs.fastnear.com/ru/redocly-config](https://docs.fastnear.com/ru/redocly-config) # Заметки о прежнем бэкенде Redocly Этот документ фиксирует текущую роль прежнего бэкенда Redocly в `mike-docs`. ## Текущее состояние Публичная документация больше не использует Redocly как основной рантайм. - Публичные страницы API и RPC рендерятся напрямую в `builder-docs`. - Канонические маршруты `/rpcs/...` и `/apis/...` хостятся в `builder-docs`. - `mike-docs` сохраняет Redocly только для проверок, сверки паритета и завершающей миграционной очистки. ## Где Redocly всё ещё нужен Используйте путь через Redocly только тогда, когда нужно проверить: - поведение `@theme/ext/configure.ts`; - параметры, влияющие на форму запроса, такие как `preset`, `body`, `path.*`, `query.*` и `header.*`; - локальный паритет между прямым рантаймом и прежним порталом. Локальные команды: ```bash cd /Users/mikepurvis/near/mike-docs npm run preview:headless npm run preview:portal ``` ## Текущая схема аутентификации Общий браузерный контракт аутентификации такой: 1. `?apiKey=` 2. `localStorage.fastnear:apiKey` 3. legacy `localStorage.fastnear_api_key` Bearer-токены по-прежнему используют: 1. `?token=` 2. `localStorage.fastnear:bearer` ## Текущие источники истины Для актуальных деталей реализации используйте: - `mike-docs/README.md` - `mike-docs/INTEGRATION_GUIDE.md` - `builder-docs/CLAUDE.md` --- ## Справочник RPC - HTML-маршрут: https://docs.fastnear.com/ru/rpc - Markdown-маршрут: https://docs.fastnear.com/ru/rpc.md **Источник:** [https://docs.fastnear.com/ru/rpc](https://docs.fastnear.com/ru/rpc) # Справочник RPC FastNear RPC даёт прямой доступ по JSON-RPC к узлам NEAR для запросов состояния, проверки блоков и чанков, отправки транзакций, чтения данных валидаторов и диагностики протокола. ## Базовые URL Обычные RPC хранят самые свежие эпохи состояния и подходят для большинства прикладных запросов по умолчанию: ```bash title="Обычный RPC mainnet" https://rpc.mainnet.fastnear.com ``` ```bash title="Обычный RPC testnet" https://rpc.testnet.fastnear.com ``` Архивные RPC открывают всю историю цепочки, когда нужны старые блоки, квитанции или историческое состояние контракта: ```bash title="Архивный RPC mainnet" https://archival-rpc.mainnet.fastnear.com ``` ```bash title="Архивный RPC testnet" https://archival-rpc.testnet.fastnear.com ``` ## С чего обычно начинают - [`view_account`](https://docs.fastnear.com/ru/rpc/account/view-account), [`view_access_key`](https://docs.fastnear.com/ru/rpc/account/view-access-key), [`view_access_key_list`](https://docs.fastnear.com/ru/rpc/account/view-access-key-list) — запросы по аккаунту и ключам доступа. - [`block`](https://docs.fastnear.com/ru/rpc/block/block-by-id) — поиск по высоте или хешу; [`block_effects`](https://docs.fastnear.com/ru/rpc/block/block-effects) — изменения внутри блока. - [`call_function`](https://docs.fastnear.com/ru/rpc/contract/call-function), [`view_code`](https://docs.fastnear.com/ru/rpc/contract/view-code), [`view_state`](https://docs.fastnear.com/ru/rpc/contract/view-state) — работа с контрактами. - [`status`](https://docs.fastnear.com/ru/rpc/protocol/status), [`health`](https://docs.fastnear.com/ru/rpc/protocol/health), [`gas_price`](https://docs.fastnear.com/ru/rpc/protocol/gas-price) — диагностика узла и протокола. - [`send_tx`](https://docs.fastnear.com/ru/rpc/transaction/send-tx) — отправка транзакций; [`tx`](https://docs.fastnear.com/ru/rpc/transaction/tx-status) — статус исполнения. - [`validators`](https://docs.fastnear.com/ru/rpc/validators/validators-current) — валидаторы текущей эпохи. ## Используйте RPC, когда - нужны канонические формы запросов и ответов из протокола; - важно поведение настоящего узла для запросов состояния и поиска блоков; - требуется отправка транзакций или проверка результатов исполнения; - нужен самый низкоуровневый доступ до перехода к индексированным или продуктовым представлениям. ## Не используйте RPC, когда - нужен единый вызов для получения балансов, NFT, позиций стейкинга или поиска по публичному ключу; - нужна индексированная история транзакций по аккаунту вместо опроса узлов и сшивания ответов; - простота продуктового интерфейса важнее прямого контроля над протоколом. В этих случаях переходите к индексированным REST-семействам, например [FastNear API](https://docs.fastnear.com/ru/api), [Транзакции API](https://docs.fastnear.com/ru/tx) или [NEAR Data API](https://docs.fastnear.com/ru/neardata). ## Аутентификация и лимиты - API-ключи FastNear необязательны; публичные эндпоинты работают и без них. - Для повышенных лимитов или платного доступа используйте [Аутентификацию и доступ](https://docs.fastnear.com/ru/auth): один и тот же ключ передаётся либо в заголовке `Authorization: Bearer`, либо в URL-параметре `?apiKey=`. ## Устранение неполадок ### Запрос работает локально, но падает на продовом контуре Проверьте, не полагались ли вы на то, что интерфейс документации автоматически подставляет API-ключ. Продовые бэкенды должны передавать учётные данные явно и не зависеть от хранения в браузере. ### Мне нужно более старое состояние, чем возвращает обычный RPC Переключитесь с обычного RPC-эндпоинта на архивный RPC-эндпоинт. ### Мне нужен более простой ответ, чем даёт JSON-RPC Обычно это означает, что нужно индексированное REST-семейство, а не сырой RPC. Воспользуйтесь страницей выбора поверхности и подберите более высокий уровень абстракции. --- ## Снапшоты для валидаторов - HTML-маршрут: https://docs.fastnear.com/ru/snapshots - Markdown-маршрут: https://docs.fastnear.com/ru/snapshots.md **Источник:** [https://docs.fastnear.com/ru/snapshots](https://docs.fastnear.com/ru/snapshots) # Снапшоты блокчейна Этот раздел — для операторов узлов, которые поднимают или восстанавливают инфраструктуру NEAR. Это не поверхность для прикладных данных. Если задача — читать балансы, историю, блоки или состояние контракта, используйте документацию API и RPC, а не сценарии со снапшотами. :::warning[Бесплатные снапшоты устарели] Бесплатные снапшоты данных nearcore больше не выпускаются. Infrastructure Committee и Near One рекомендуют Epoch Sync вместе с децентрализованной синхронизацией состояния. Актуальные рекомендации и режим подъёма смотрите на [NEAR Nodes](https://near-nodes.io). ::: ## Используйте этот раздел, когда - нужно поднять узел mainnet или testnet из данных снапшота - идёт восстановление RPC- или архивного узла - уже известно, что нужен путь загрузки снапшота FastNear ## Не используйте этот раздел, когда - идёт запрос данных цепочки для приложения - нужны свежие блоки, балансы, история или состояние контракта - нужны общие рекомендации по продуктовому API, а не настройка оператором В этих случаях используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc), [FastNear API](https://docs.fastnear.com/ru/api), [Транзакции API](https://docs.fastnear.com/ru/tx) или [NEAR Data API](https://docs.fastnear.com/ru/neardata). ## Перед загрузкой - Сначала выберите сеть: mainnet или testnet. - Решите, нужны обычные данные RPC или архивные. - Убедитесь, что понимаете, где должны лежать горячие и холодные данные, прежде чем стартовать архивную загрузку. - Установите `rclone` — скрипты загрузки от него зависят. :::info[Установка `rclone`] Установите `rclone` командой: ```bash sudo -v ; curl https://rclone.org/install.sh | sudo bash ``` ::: ## Что покрывает каждый путь - **Mainnet** включает оптимизированный `fast-rpc`, обычный RPC и архивные пути загрузки для горячих и холодных данных. - **Testnet** включает RPC и архивные пути снапшотов для операторов testnet. Требования к узлам смотрите в [nearcore](https://github.com/near/nearcore?tab=readme-ov-file#about-near), а исходники скриптов загрузки, которые используются в этих руководствах, — в [fastnear/static](https://github.com/fastnear/static). ## Выберите сеть - [Снапшоты mainnet](https://docs.fastnear.com/ru/snapshots/mainnet) - [Снапшоты testnet](https://docs.fastnear.com/ru/snapshots/testnet) --- ## mainnet - HTML-маршрут: https://docs.fastnear.com/ru/snapshots/mainnet - Markdown-маршрут: https://docs.fastnear.com/ru/snapshots/mainnet.md **Источник:** [https://docs.fastnear.com/ru/snapshots/mainnet](https://docs.fastnear.com/ru/snapshots/mainnet) # Mainnet ## Оптимизированный снапшот mainnet Обычно это предпочтительный способ синхронизации. Архивный снапшот заметно больше и подходит для более узких задач. Узлы с достаточными ресурсами могут использовать значение `$RPC_TYPE=fast-rpc`. По умолчанию используется `rpc`. Перед запуском скрипта загрузки снапшота можно задать следующие переменные окружения: - `CHAIN_ID` — `mainnet` или `testnet` (по умолчанию: `mainnet`) - `RPC_TYPE` — `rpc` (по умолчанию) или `fast-rpc` - `THREADS` — число потоков для загрузки. Используйте `128` для 10Gbps и `16` для 1Gbps (по умолчанию: `128`) - `TPSLIMIT` — максимальное число новых HTTP-действий в секунду (по умолчанию: `4096`) - `BWLIMIT` — максимальная пропускная способность для загрузки, если её нужно ограничить (по умолчанию: `10G`) - `DATA_PATH` — путь, куда будет загружен снапшот (по умолчанию: `~/.near/data`) - `BLOCK` — высота блока нужного снапшота. Если не указать, будет загружен последний снапшот. **Выполните эту команду, чтобы скачать RPC-снапшот mainnet:** :::info Будут заданы следующие переменные окружения: - `DATA_PATH=~/.near/data` — стандартный путь nearcore - `CHAIN_ID=mainnet` — явно выбирает данные mainnet - `RPC_TYPE=fast-rpc` — включает оптимизированный режим ::: `RPC Mainnet Snapshot » ~/.near/data`: ```bash curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/fastnear/static/refs/heads/main/down_rclone.sh | DATA_PATH=~/.near/data CHAIN_ID=mainnet RPC_TYPE=fast-rpc bash ``` ## RPC-снапшот mainnet Это стандартный способ получить снапшот без оптимизированного режима из предыдущего раздела. Перед запуском скрипта загрузки снапшота можно задать следующие переменные окружения: - `CHAIN_ID` — `mainnet` или `testnet` (по умолчанию: `mainnet`) - `RPC_TYPE` — `rpc` (по умолчанию) или `fast-rpc` - `THREADS` — число потоков для загрузки. Используйте `128` для 10Gbps и `16` для 1Gbps (по умолчанию: `128`) - `TPSLIMIT` — максимальное число новых HTTP-действий в секунду (по умолчанию: `4096`) - `BWLIMIT` — максимальная пропускная способность для загрузки, если её нужно ограничить (по умолчанию: `10G`) - `DATA_PATH` — путь, куда будет загружен снапшот (по умолчанию: `~/.near/data`) - `BLOCK` — высота блока нужного снапшота. Если не указать, будет загружен последний снапшот. **Выполните эту команду, чтобы скачать RPC-снапшот mainnet:** :::info Будут заданы следующие переменные окружения: - `DATA_PATH=~/.near/data` — стандартный путь nearcore - `CHAIN_ID=mainnet` — явно выбирает данные mainnet ::: `RPC Mainnet Snapshot » ~/.near/data`: ```bash curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/fastnear/static/refs/heads/main/down_rclone.sh | DATA_PATH=~/.near/data CHAIN_ID=mainnet bash ``` ## Архивный снапшот mainnet :::warning **Требует много времени и места на диске.** Подготовьтесь к очень большому объёму загрузки и длительному времени выполнения. Размер снапшота составляет около 60 ТБ, и он содержит более 1 миллиона файлов. ::: Перед запуском скрипта загрузки можно задать следующие переменные окружения: - `CHAIN_ID` — `mainnet` или `testnet` (по умолчанию: `mainnet`) - `THREADS` — число потоков для загрузки. Используйте `128` для 10Gbps и `16` для 1Gbps (по умолчанию: `128`) - `TPSLIMIT` — максимальное число новых HTTP-действий в секунду (по умолчанию: `4096`) - `DATA_TYPE` — `hot-data` или `cold-data` (по умолчанию: `cold-data`) - `BWLIMIT` — максимальная пропускная способность для загрузки, если её нужно ограничить (по умолчанию: `10G`) - `DATA_PATH` — путь, куда будет загружен снапшот (по умолчанию: `/mnt/nvme/data/$DATA_TYPE`) - `BLOCK` — высота блока нужного снапшота. Если не указать, будет загружен последний снапшот. По умолчанию скрипт ожидает следующие пути для данных: - Hot data, которые должны лежать на NVME: `/mnt/nvme/data/hot-data` - Cold data, которые можно хранить на HDD: `/mnt/nvme/data/cold-data` **Выполните следующие команды, чтобы скачать архивный снапшот mainnet:** 1. Получите высоту блока последнего снапшота: `Latest archival mainnet snapshot block`: ```bash LATEST=$(curl -s "https://snapshot.neardata.xyz/mainnet/archival/latest.txt") echo "Latest snapshot block: $LATEST" ``` 2. Скачайте данные HOT из снапшота. Их нужно разместить на NVME. :::info Будут заданы следующие переменные окружения: - `DATA_TYPE=hot-data` — выбирает загрузку Hot data - `DATA_PATH=~/.near/data` — стандартный путь nearcore - `CHAIN_ID=mainnet` — явно выбирает данные mainnet - `BLOCK=$LATEST` — указывает блок снапшота ::: `Archival Mainnet Snapshot (hot-data) » ~/.near/data`: ```bash curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/fastnear/static/refs/heads/main/down_rclone_archival.sh | DATA_TYPE=hot-data DATA_PATH=~/.near/data CHAIN_ID=mainnet BLOCK=$LATEST bash ``` 3. Скачайте данные COLD из снапшота. Их можно разместить на HDD. :::info Будут заданы следующие переменные окружения: - `DATA_TYPE=cold-data` — выбирает загрузку Cold data - `DATA_PATH=/mnt/hdds/cold-data` — путь для размещения cold data. **Обратите внимание:** конфигурация nearcore должна указывать на тот же путь для cold data. - `CHAIN_ID=mainnet` — явно выбирает данные mainnet - `BLOCK=$LATEST` — указывает блок снапшота ::: `Archival Mainnet Snapshot (cold-data) » /mnt/hdds/cold-data`: ```bash curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/fastnear/static/refs/heads/main/down_rclone_archival.sh | DATA_TYPE=cold-data DATA_PATH=/mnt/hdds/cold-data CHAIN_ID=mainnet BLOCK=$LATEST bash ``` --- ## testnet - HTML-маршрут: https://docs.fastnear.com/ru/snapshots/testnet - Markdown-маршрут: https://docs.fastnear.com/ru/snapshots/testnet.md **Источник:** [https://docs.fastnear.com/ru/snapshots/testnet](https://docs.fastnear.com/ru/snapshots/testnet) # Testnet ## RPC-снапшот testnet Обычно это предпочтительный способ синхронизации. Архивный снапшот заметно больше и нужен для более узких задач. Перед запуском скрипта загрузки снапшота можно задать следующие переменные окружения: - `CHAIN_ID` — `mainnet` или `testnet` (по умолчанию: `mainnet`) - `THREADS` — число потоков для загрузки. Используйте `128` для 10Gbps и `16` для 1Gbps (по умолчанию: `128`) - `TPSLIMIT` — максимальное число новых HTTP-действий в секунду (по умолчанию: `4096`) - `BWLIMIT` — максимальная пропускная способность для загрузки, если её нужно ограничить (по умолчанию: `10G`) - `DATA_PATH` — путь, куда будет загружен снапшот (по умолчанию: `~/.near/data`) - `BLOCK` — высота блока нужного снапшота. Если не указать, будет загружен последний снапшот. **Выполните эту команду, чтобы скачать RPC-снапшот testnet:** :::info Будут заданы следующие переменные окружения: - `DATA_PATH=~/.near/data` — стандартный путь nearcore - `CHAIN_ID=testnet` — явно выбирает данные testnet ::: `RPC Testnet Snapshot » ~/.near/data`: ```bash curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/fastnear/static/refs/heads/main/down_rclone.sh | DATA_PATH=~/.near/data CHAIN_ID=testnet bash ``` ## Архивный снапшот testnet :::warning **Требует много времени и места на диске.** Подготовьтесь к большому объёму загрузки и длительному времени выполнения. ::: Перед запуском скрипта загрузки можно задать следующие переменные окружения: - `CHAIN_ID` — `mainnet` или `testnet` (по умолчанию: `mainnet`) - `THREADS` — число потоков для загрузки. Используйте `128` для 10Gbps и `16` для 1Gbps (по умолчанию: `128`) - `TPSLIMIT` — максимальное число новых HTTP-действий в секунду (по умолчанию: `4096`) - `DATA_TYPE` — `hot-data` или `cold-data` (по умолчанию: `cold-data`) - `BWLIMIT` — максимальная пропускная способность для загрузки, если её нужно ограничить (по умолчанию: `10G`) - `DATA_PATH` — путь, куда будет загружен снапшот (по умолчанию: `/mnt/nvme/data/$DATA_TYPE`) - `BLOCK` — высота блока нужного снапшота. Если не указать, будет загружен последний снапшот. По умолчанию скрипт ожидает следующий путь для данных: - Hot data, которые должны лежать на NVME: `/mnt/nvme/data/hot-data` **Выполните следующие команды, чтобы скачать архивный снапшот testnet:** 1. Получите высоту блока последнего снапшота: `Latest archival testnet snapshot block`: ```bash LATEST=$(curl -s "https://snapshot.neardata.xyz/testnet/archival/latest.txt") echo "Latest snapshot block: $LATEST" ``` 2. Скачайте данные HOT из снапшота. Их нужно разместить на NVME. :::info Будут заданы следующие переменные окружения: - `DATA_TYPE=hot-data` — выбирает загрузку Hot data - `DATA_PATH=~/.near/data` — стандартный путь nearcore - `CHAIN_ID=testnet` — явно выбирает сеть testnet - `BLOCK=$LATEST` — указывает блок снапшота ::: `Archival Testnet Snapshot (hot-data) » ~/.near/data`: ```bash curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/fastnear/static/refs/heads/main/down_rclone_archival.sh | DATA_TYPE=hot-data DATA_PATH=~/.near/data CHAIN_ID=testnet BLOCK=$LATEST bash ``` --- ## API переводов - HTML-маршрут: https://docs.fastnear.com/ru/transfers - Markdown-маршрут: https://docs.fastnear.com/ru/transfers.md **Источник:** [https://docs.fastnear.com/ru/transfers](https://docs.fastnear.com/ru/transfers) # API переводов API переводов — это самая узкая поверхность истории FastNear. Стартуйте здесь, когда вопрос именно о движении активов, а не о более широкой истории исполнения за этим движением. ## Базовый URL ```bash title="Transfers API Mainnet" https://transfers.main.fastnear.com ``` Эта поверхность сейчас доступна только в mainnet. `?network=testnet` не переключает бэкенд. ## Используйте этот API, когда - нужна история переводов NEAR или FT-токенов по аккаунту - строятся ленты кошелька или представления активности только по переводам - отвечаете на вопросы поддержки или комплаенса про отправку и получение ## Не стартуйте здесь, когда - нужна более широкая история транзакций или квитанций - нужны балансы, активы, NFT или представления стейкинга - нужен трафик testnet Используйте [Транзакции API](https://docs.fastnear.com/ru/tx) для более широкой истории исполнения и [FastNear API](https://docs.fastnear.com/ru/api) для ответов в стиле состояния аккаунта. ## Минимально полезные входы - `account_id` - опциональные фильтры: актив, направление, сумма или время - нужно пользователю несколько событий или более длинный обзор истории ## Рабочий цикл по умолчанию 1. Начните с [Запроса переводов](https://docs.fastnear.com/ru/transfers/query), используя самый узкий набор фильтров, который всё ещё отвечает на вопрос. 2. Читайте возвращённые события как историю только переводов. Не пересобирайте полную хронологию квитанций, пока пользователь не попросит. 3. Переиспользуйте непрозрачный `resume_token` ровно в том виде, в каком его вернул сервис, при листании дальше. 4. Остановитесь, как только можете ответить, кто, что, когда и в каком активе отправил. ## Аутентификация и доступность - Эти страницы не используют API-ключи и Bearer-токены. - Ответы включают непрозрачный `resume_token` для пагинации. - Сервис сейчас доступен только в mainnet. ## Расширяйтесь, только если - пользователь начинает спрашивать о квитанциях или действиях кроме переводов - пользователь хочет более широкий контекст транзакции за переводом - пользователь на самом деле спрашивает о балансах или текущих активах, а не о движении Тогда расширяйтесь на [Транзакции API](https://docs.fastnear.com/ru/tx) или [FastNear API](https://docs.fastnear.com/ru/api), а не перегружайте представление переводов. ## Типовые стартовые страницы - [Запрос переводов](https://docs.fastnear.com/ru/transfers/query) — лента по аккаунту с фильтрами по направлению, активу, сумме и времени ## Устранение неполадок ### Нужны полные метаданные транзакции Переходите на [Транзакции API](https://docs.fastnear.com/ru/tx), если одной истории переводов недостаточно. ### `resume_token` перестал работать Считайте токен непрозрачным и переиспользуйте его только с тем же эндпоинтом и фильтрами, которые его вернули. --- ## Транзакции API - HTML-маршрут: https://docs.fastnear.com/ru/tx - Markdown-маршрут: https://docs.fastnear.com/ru/tx.md **Источник:** [https://docs.fastnear.com/ru/tx](https://docs.fastnear.com/ru/tx) # Транзакции API Транзакции API — это поверхность истории. Используйте её, когда нужны индексированные представления транзакций или квитанций без постоянного опроса сырых RPC-методов и ручного объединения результатов. ## Базовые URL ```bash title="Transactions API Mainnet" https://tx.main.fastnear.com ``` ```bash title="Transactions API Testnet" https://tx.test.fastnear.com ``` ## Лучше всего подходит для - лент активности аккаунта; - инструментов отладки и поддержки; - поиска транзакций и квитанций по хешу; - запросов по блокам и диапазонам блоков. ## Когда его не стоит использовать - Используйте [FastNear API](https://docs.fastnear.com/ru/api), когда нужны балансы, NFT, стейкинг или поиск по публичному ключу. - Используйте [Справочник RPC](https://docs.fastnear.com/ru/rpc), когда нужно каноническое поведение узла или отправка транзакций. ## Аутентификация и доступность - Эти страницы сейчас не используют API-ключи или Bearer-токены. - Сервис предназначен для индексированного доступа к истории, а не для отправки транзакций. ## С чего обычно начинают - [Транзакции по хешу](https://docs.fastnear.com/ru/tx/transactions) — когда вы уже знаете идентификатор транзакции. - [История аккаунта](https://docs.fastnear.com/ru/tx/account) — для лент активности и отладки аккаунта. - [Поиск квитанции](https://docs.fastnear.com/ru/tx/receipt) — для расследования цепочки исполнения. - [Диапазон блоков](https://docs.fastnear.com/ru/tx/blocks) — когда нужен ограниченный по диапазону просмотр истории. ## Устранение неполадок ### Я ожидал, что здесь можно отправлять транзакции Это семейство предназначено для индексированных запросов по истории, а не для отправки подписанных транзакций. Для отправки используйте сырой RPC. ### Мне нужны пояснения по пагинации `/v0/account` использует непрозрачный `resume_token`, а `/v0/blocks` опирается на диапазон и лимит. Повторно используйте непрозрачные токены ровно в том виде, в каком их вернул сервис. ### Мне нужен только один канонический результат статуса транзакции из RPC Используйте сырой RPC вместо индексированного семейства истории. --- ## RPC протокола NEAR: Просмотр ключа доступа - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/account/view_access_key - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/account/view_access_key.md # RPC протокола NEAR: Просмотр ключа доступа Просмотр ключа доступа аккаунта Получите права и nonce одного ключа доступа аккаунта по его публичному ключу. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/account/view_access_key - https://docs.fastnear.com/ru/rpcs/account/view_access_key/other/view_access_key - https://docs.fastnear.com/ru/reference/operation/view_access_key ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/account/view_access_key.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "root.near", "public_key": "ed25519:CByX7HPjgSGFi5G26zwgZGDFCFyBHvSv1fe7AFzmVe3", "request_type": "view_access_key", "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "root.near", "public_key": "ed25519:CByX7HPjgSGFi5G26zwgZGDFCFyBHvSv1fe7AFzmVe3", "request_type": "view_access_key", "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. - `public_key` (body, обязательный, string): Публичный ключ в формате `ed25519:...` или `secp256k1:...`. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "public_key", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "public_key", "required": true, "schema": { "type": "string", "description": "Публичный ключ с префиксом ed25519: или secp256k1:" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_access_key" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Информация о ключе доступа ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Описывает область действия ключа доступа и nonce.", "required": [ "nonce", "permission" ], "properties": [ { "name": "nonce", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "permission", "required": true, "schema": { "type": "object", "description": "One of multiple possible types" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Список ключей доступа - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/account/view_access_key_list - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/account/view_access_key_list.md # RPC протокола NEAR: Список ключей доступа Просмотр списка ключей доступа аккаунта Получите все ключи доступа аккаунта — каждый с правами и nonce. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/account/view_access_key_list - https://docs.fastnear.com/ru/rpcs/account/view_access_key_list/other/view_access_key_list - https://docs.fastnear.com/ru/reference/operation/view_access_key_list ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/account/view_access_key_list.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "root.near", "request_type": "view_access_key_list", "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "root.near", "request_type": "view_access_key_list", "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_access_key_list" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Список ключей доступа аккаунта ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Список ключей доступа", "required": [ "ключи" ], "properties": [ { "name": "ключи", "required": true, "schema": { "type": "array", "items": { "type": "object", "description": "Описывает информацию о ключе доступа, включая публичный ключ." } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Просмотр аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/account/view_account - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/account/view_account.md # RPC протокола NEAR: Просмотр аккаунта Просмотр аккаунта Получите баланс аккаунта, размер хранилища и хеш кода на выбранной высоте блока или финальности. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/account/view_account - https://docs.fastnear.com/ru/rpcs/account/view_account/other/view_account - https://docs.fastnear.com/ru/reference/operation/view_account ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/account/view_account.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "root.near", "request_type": "view_account", "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "root.near", "request_type": "view_account", "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_account" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Сведения об аккаунте ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Представление аккаунта", "required": [ "amount", "locked", "code_hash", "storage_usage" ], "properties": [ { "name": "amount", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "code_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "global_contract_account_id", "required": false, "schema": { "type": "string", "nullable": true, "description": "ID аккаунта NEAR" } }, { "name": "global_contract_hash", "required": false, "schema": { "type": "string", "nullable": true, "description": "Base58-encoded hash" } }, { "name": "locked", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "storage_paid_at", "required": false, "schema": { "type": "integer", "description": "TODO(2271): deprecated.", "format": "uint64", "default": 0 } }, { "name": "storage_usage", "required": true, "schema": { "type": "integer", "format": "uint64" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Блок по высоте - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/block/block_by_height - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/block/block_by_height.md # RPC протокола NEAR: Блок по высоте Получить блок по высоте Получите заголовок и сводку по чанкам блока по его высоте в цепочке. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/block/block_by_height - https://docs.fastnear.com/ru/rpcs/block/block_by_height/other/block_by_height - https://docs.fastnear.com/ru/reference/operation/block_by_height ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/block/block_by_height.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "блок", "params": { "block_id": 194263739 } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "блок", "params": { "block_id": 194263739 } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, integer): Высота блока NEAR для запроса. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "блок" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "block_id" ], "properties": [ { "name": "block_id", "required": true, "schema": { "type": "integer", "description": "Высота блока для запроса" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object" } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Блок по хешу - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/block/block_by_id - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/block/block_by_id.md # RPC протокола NEAR: Блок по хешу Получить блок по хешу Получите заголовок и сводку по чанкам блока по его SHA-256-хешу. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/block/block_by_id - https://docs.fastnear.com/ru/rpcs/block/block_by_id/other/block_by_id - https://docs.fastnear.com/ru/reference/operation/block_by_id ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/block/block_by_id.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "блок", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "блок", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, string): Хеш блока в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "блок" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "block_id" ], "properties": [ { "name": "block_id", "required": true, "schema": { "type": "string", "description": "Хеш блока в кодировке Base58" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object" } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Эффекты блока - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/block/block_effects - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/block/block_effects.md # RPC протокола NEAR: Эффекты блока Получить эффекты блока Получите сводку всех изменений состояния в одном блоке — какие аккаунты, ключи и записи состояния контрактов были затронуты. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/block/block_effects - https://docs.fastnear.com/ru/rpcs/block/block_effects/other/block_effects - https://docs.fastnear.com/ru/reference/operation/block_effects ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/block/block_effects.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "block_effects", "params": { "block_id": 194263739 } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "block_effects", "params": { "block_id": 194263739 } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, integer | string): Высота блока (целое число) или хеш блока (строка). ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "block_effects" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "block_id" ], "properties": [ { "name": "block_id", "required": true, "schema": { "description": "Высота блока (целое число) или хеш блока (строка)", "oneOf": [ { "type": "integer", "description": "Высота блока" }, { "type": "string", "description": "Хеш блока в кодировке Base58" } ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "block_hash", "changes" ], "properties": [ { "name": "block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "changes", "required": true, "schema": { "type": "array", "items": { "type": "object", "description": "One of multiple possible types" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Вызов view-метода - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/contract/call - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/contract/call.md # RPC протокола NEAR: Вызов view-метода Вызвать view-метод контракта Вызовите view-метод контракта без газа и изменений состояния — чтение вычисляемых значений из логики контракта. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/contract/call - https://docs.fastnear.com/ru/rpcs/contract/call/other/call_function - https://docs.fastnear.com/ru/reference/operation/call_function ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/contract/call.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "request_type": "call_function", "finality": "final", "account_id": "contract.near", "method_name": "get_info", "args_base64": "e30=" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "request_type": "call_function", "finality": "final", "account_id": "contract.near", "method_name": "get_info", "args_base64": "e30=" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. - `args_base64` (body, обязательный, string): Аргументы метода в кодировке Base64. - `method_name` (body, обязательный, string): Имя view-метода контракта. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "method_name", "args_base64", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "args_base64", "required": true, "schema": { "type": "string", "description": "Base64-encoded method arguments" } }, { "name": "method_name", "required": true, "schema": { "type": "string" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "call_function" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Результат, возвращённый методом контракта", "required": [ "result", "logs" ], "properties": [ { "name": "logs", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "result", "required": true, "schema": { "type": "array", "items": { "type": "integer", "format": "uint8" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Код контракта - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_code - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_code.md # RPC протокола NEAR: Код контракта Получить код контракта Получите скомпилированный WebAssembly-байткод, развёрнутый непосредственно на одном аккаунте. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/contract/view_code - https://docs.fastnear.com/ru/rpcs/contract/view_code/other/view_code - https://docs.fastnear.com/ru/reference/operation/view_code ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/contract/view_code.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "intents.near", "request_type": "view_code", "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "intents.near", "request_type": "view_code", "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_code" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Представление кода контракта.", "required": [ "code_base64", "hash" ], "properties": [ { "name": "code_base64", "required": true, "schema": { "type": "string" } }, { "name": "hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Глобальный код контракта - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code.md # RPC протокола NEAR: Глобальный код контракта Получить глобальный код контракта Найдите WebAssembly-байткод глобального контракта по SHA-256-хешу его кода. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code - https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code/other/view_global_contract_code - https://docs.fastnear.com/ru/reference/operation/view_global_contract_code ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/contract/view_global_contract_code.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "code_hash": "A2VxywASqbnarBAfTWobhDZjMXobjnYyJmkjhoXAiYBz", "request_type": "view_global_contract_code", "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "code_hash": "A2VxywASqbnarBAfTWobhDZjMXobjnYyJmkjhoXAiYBz", "request_type": "view_global_contract_code", "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `code_hash` (body, обязательный, string): Хеш в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "code_hash", "финальность" ], "properties": [ { "name": "code_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_global_contract_code" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Представление кода контракта.", "required": [ "code_base64", "hash" ], "properties": [ { "name": "code_base64", "required": true, "schema": { "type": "string" } }, { "name": "hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Глобальный код контракта по аккаунту - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code_by_account_id - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code_by_account_id.md # RPC протокола NEAR: Глобальный код контракта по аккаунту Получить глобальный код контракта по аккаунту Найдите WebAssembly-байткод глобального контракта по ID аккаунта, который его зарегистрировал. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code_by_account_id - https://docs.fastnear.com/ru/rpcs/contract/view_global_contract_code_by_account_id/other/view_global_contract_code_by_account_id - https://docs.fastnear.com/ru/reference/operation/view_global_contract_code_by_account_id ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/contract/view_global_contract_code_by_account_id.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "global-contract.nfts.tg", "request_type": "view_global_contract_code_by_account_id", "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "account_id": "global-contract.nfts.tg", "request_type": "view_global_contract_code_by_account_id", "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_global_contract_code_by_account_id" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Представление кода контракта.", "required": [ "code_base64", "hash" ], "properties": [ { "name": "code_base64", "required": true, "schema": { "type": "string" } }, { "name": "hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Состояние контракта - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_state - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/contract/view_state.md # RPC протокола NEAR: Состояние контракта Получить состояние контракта Получите сырое состояние «ключ-значение», записанное контрактом, с опциональным фильтром по префиксу ключа. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/contract/view_state - https://docs.fastnear.com/ru/rpcs/contract/view_state/other/view_state - https://docs.fastnear.com/ru/reference/operation/view_state ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/contract/view_state.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "request_type": "view_state", "finality": "final", "account_id": "lockup.near", "prefix_base64": "U1RBVEU=" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "query", "params": { "request_type": "view_state", "finality": "final", "account_id": "lockup.near", "prefix_base64": "U1RBVEU=" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. - `include_proof` (body, boolean): Добавить криптографическое доказательство к ответу. - `prefix_base64` (body, обязательный, string): Префикс ключа хранилища в кодировке Base64. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "query" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "request_type", "account_id", "prefix_base64", "финальность" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "include_proof", "required": false, "schema": { "type": "boolean" } }, { "name": "prefix_base64", "required": true, "schema": { "type": "string", "description": "Ключ хранилища в кодировке Base64" } }, { "name": "request_type", "required": true, "schema": { "type": "string", "enum": [ "view_state" ] } }, { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Финальность блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Итоговые значения состояния для запроса просмотра состояния", "required": [ "values" ], "properties": [ { "name": "доказательство", "required": false, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "values", "required": true, "schema": { "type": "array", "items": { "type": "object", "description": "Элемент состояния: ключ и значение сериализованы в Base64, а также приложено доказательство включения этого элемента состояния." } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Изменения состояния - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/changes - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/changes.md # RPC протокола NEAR: Изменения состояния Получить изменения состояния Получите подробные изменения состояния в блоке — с фильтром по аккаунту, префиксу ключа или типу изменения. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/changes - https://docs.fastnear.com/ru/rpcs/protocol/changes/other/changes - https://docs.fastnear.com/ru/reference/operation/changes ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/changes.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "changes", "params": { "finality": "final", "changes_type": "account_changes", "account_ids": [ "root.near" ] } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "changes", "params": { "finality": "final", "changes_type": "account_changes", "account_ids": [ "root.near" ] } }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "changes" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "description": "One of multiple possible types" } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "block_hash", "changes" ], "properties": [ { "name": "block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "changes", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "cause" ], "properties": [ { "name": "cause", "required": true, "schema": { "type": "object", "description": "One of multiple possible types" } } ] } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Чанк по блоку и шарду - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_block_shard - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_block_shard.md # RPC протокола NEAR: Чанк по блоку и шарду Получить чанк по блоку и шарду Получите транзакции и квитанции одного чанка по родительскому блоку и индексу шарда. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_block_shard - https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_block_shard/other/chunk_by_block_shard - https://docs.fastnear.com/ru/reference/operation/chunk_by_block_shard ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/chunk_by_block_shard.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "chunk", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T", "shard_id": 10 } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "chunk", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T", "shard_id": 10 } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, integer | string): Высота блока (целое число) или хеш блока (строка). - `shard_id` (body, обязательный, integer): Идентификатор шарда. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "chunk" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "block_id", "shard_id" ], "properties": [ { "name": "block_id", "required": true, "schema": { "description": "Высота блока (целое число) или хеш блока (строка)", "oneOf": [ { "type": "integer", "description": "Высота блока" }, { "type": "string", "description": "Хеш блока в кодировке Base58" } ] } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "description": "Shard identifier" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "author", "header", "транзакции", "квитанции" ], "properties": [ { "name": "author", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "header", "required": true, "schema": { "type": "object", "description": "Contains main info about the chunk.", "required": [ "chunk_hash", "prev_block_hash", "outcome_root", "prev_state_root", "encoded_merkle_root", "encoded_length", "height_created", "height_included", "shard_id", "gas_used", "gas_limit", "balance_burnt", "outgoing_receipts_root", "tx_root", "validator_proposals", "signature" ], "properties": [ { "name": "balance_burnt", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "bandwidth_requests", "required": false, "schema": { "type": "object", "nullable": true, "description": "One of multiple possible types" } }, { "name": "chunk_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "congestion_info", "required": false, "schema": { "type": "object", "nullable": true, "description": "Хранит уровень перегрузки шарда. Подробнее о перегрузке [здесь](https://near.github.io/nearcore/architecture/how/receipt-congestion.html?highlight=congestion#receipt-congestion)" } }, { "name": "encoded_length", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "encoded_merkle_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "gas_limit", "required": true, "schema": { "type": "string", "description": "Количество газа" } }, { "name": "gas_used", "required": true, "schema": { "type": "string", "description": "Количество газа" } }, { "name": "height_created", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "height_included", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "outcome_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "outgoing_receipts_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_state_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "rent_paid", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR", "default": "0" } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "description": "Shard identifier" } }, { "name": "signature", "required": true, "schema": { "type": "string", "description": "Base58-encoded cryptographic signature" } }, { "name": "tx_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "validator_proposals", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "validator_reward", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR", "default": "0" } } ] } }, { "name": "квитанции", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "транзакции", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Чанк по хешу - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_hash - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_hash.md # RPC протокола NEAR: Чанк по хешу Получить чанк по хешу Получите транзакции и квитанции одного чанка по его хешу содержимого. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_hash - https://docs.fastnear.com/ru/rpcs/protocol/chunk_by_hash/other/chunk_by_hash - https://docs.fastnear.com/ru/reference/operation/chunk_by_hash ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/chunk_by_hash.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "chunk", "params": { "chunk_id": "349Wr5HMm2Bvyy8GuhExAZ4F353tXCChx1FfAsYnQTAn" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "chunk", "params": { "chunk_id": "349Wr5HMm2Bvyy8GuhExAZ4F353tXCChx1FfAsYnQTAn" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `chunk_id` (body, обязательный, string): Хеш чанка в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "chunk" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "chunk_id" ], "properties": [ { "name": "chunk_id", "required": true, "schema": { "type": "string", "description": "Base58-encoded chunk hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "author", "header", "транзакции", "квитанции" ], "properties": [ { "name": "author", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "header", "required": true, "schema": { "type": "object", "description": "Contains main info about the chunk.", "required": [ "chunk_hash", "prev_block_hash", "outcome_root", "prev_state_root", "encoded_merkle_root", "encoded_length", "height_created", "height_included", "shard_id", "gas_used", "gas_limit", "balance_burnt", "outgoing_receipts_root", "tx_root", "validator_proposals", "signature" ], "properties": [ { "name": "balance_burnt", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "bandwidth_requests", "required": false, "schema": { "type": "object", "nullable": true, "description": "One of multiple possible types" } }, { "name": "chunk_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "congestion_info", "required": false, "schema": { "type": "object", "nullable": true, "description": "Хранит уровень перегрузки шарда. Подробнее о перегрузке [здесь](https://near.github.io/nearcore/architecture/how/receipt-congestion.html?highlight=congestion#receipt-congestion)" } }, { "name": "encoded_length", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "encoded_merkle_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "gas_limit", "required": true, "schema": { "type": "string", "description": "Количество газа" } }, { "name": "gas_used", "required": true, "schema": { "type": "string", "description": "Количество газа" } }, { "name": "height_created", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "height_included", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "outcome_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "outgoing_receipts_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_state_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "rent_paid", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR", "default": "0" } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "description": "Shard identifier" } }, { "name": "signature", "required": true, "schema": { "type": "string", "description": "Base58-encoded cryptographic signature" } }, { "name": "tx_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "validator_proposals", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "validator_reward", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR", "default": "0" } } ] } }, { "name": "квитанции", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "транзакции", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Конфигурация клиента - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/client_config - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/client_config.md # RPC протокола NEAR: Конфигурация клиента Получить конфигурацию клиента Получите локальную клиентскую конфигурацию узла — таймауты, настройки повторов и параметры оператора. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/client_config - https://docs.fastnear.com/ru/rpcs/protocol/client_config/other/client_config - https://docs.fastnear.com/ru/reference/operation/client_config ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/client_config.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "client_config", "params": [] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "client_config", "params": [] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "client_config" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "description": "Empty array as this method takes no parameters", "example": [] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "ClientConfig where some fields can be updated at runtime.", "properties": [ { "name": "archive", "required": false, "schema": { "type": "boolean", "description": "Not clear old data, set `true` for archive nodes." } }, { "name": "block_fetch_horizon", "required": false, "schema": { "type": "integer", "description": "Горизонт, после которого вместо получения блока извлекается полное состояние.", "format": "uint64" } }, { "name": "block_header_fetch_horizon", "required": false, "schema": { "type": "integer", "description": "Behind this horizon header fetch kicks in.", "format": "uint64" } }, { "name": "block_production_tracking_delay", "required": false, "schema": { "type": "array", "description": "Интервал проверки необходимости выпустить или пропустить блок.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "catchup_step_period", "required": false, "schema": { "type": "array", "description": "Time between check to perform catchup.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "chain_id", "required": false, "schema": { "type": "string", "description": "ID цепочки для статуса." } }, { "name": "chunk_distribution_network", "required": false, "schema": { "type": "object", "nullable": true, "description": "Конфигурация функции Chunk Distribution Network.\nОна позволяет узлам отправлять и получать чанки через центральный поток.\nПреимущества такого подхода: (1) меньше трафика запросов и ответов\nв одноранговой сети и (2) меньшая задержка для RPC-узлов, индексирующих цепочку.", "properties": [ { "name": "enabled", "required": false, "schema": { "type": "boolean" } }, { "name": "uris", "required": false, "schema": { "type": "object", "description": "URI для функции Chunk Distribution Network." } } ] } }, { "name": "chunk_request_retry_period", "required": false, "schema": { "type": "array", "description": "Время между проверками на повторный запрос чанков.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "chunk_validation_threads", "required": false, "schema": { "type": "integer", "description": "Number of threads for ChunkValidationActor pool.", "format": "uint" } }, { "name": "chunk_wait_mult", "required": false, "schema": { "type": "array", "description": "Multiplier for the wait time for all chunks to be received.", "items": { "type": "integer", "format": "int32" } } }, { "name": "chunks_cache_height_horizon", "required": false, "schema": { "type": "integer", "description": "Height horizon for the chunk cache. A chunk is removed from the cache\nif its height + chunks_cache_height_horizon < largest_seen_height.\nThe default value is DEFAULT_CHUNKS_CACHE_HEIGHT_HORIZON.", "format": "uint64" } }, { "name": "client_background_migration_threads", "required": false, "schema": { "type": "integer", "description": "Количество потоков, выполняющих фоновые миграционные работы в клиенте.", "format": "uint" } }, { "name": "cloud_archival_writer", "required": false, "schema": { "type": "object", "nullable": true, "description": "Конфигурация облачного компонента записи архивных данных. Если эта конфигурация задана, компонент включается и\nзаписывает данные, связанные с чанками, на основе отслеживаемых шардов. Эта конфигурация также управляет дополнительным архивным\nповедением, например записью данных блоков и интервалом опроса.", "properties": [ { "name": "archive_block_data", "required": false, "schema": { "type": "boolean", "description": "Определяет, должны ли данные, связанные с блоками, записываться в облачное хранилище.", "default": false } }, { "name": "polling_interval", "required": false, "schema": { "type": "object", "description": "Интервал, с которым система проверяет новые блоки или чанки для архивации.", "default": { "nanos": 0, "secs": 1 } } } ] } }, { "name": "disable_tx_routing", "required": false, "schema": { "type": "boolean", "description": "Если значение `true`, узел не будет пересылать транзакции следующим производителям чанков." } }, { "name": "doomslug_step_period", "required": false, "schema": { "type": "array", "description": "Time between running doomslug timer.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "enable_early_prepare_transactions", "required": false, "schema": { "type": "boolean", "description": "Если значение `true`, транзакции для следующего чанка будут подготавливаться заранее, сразу после того,\nкак будет готово post-state предыдущего чанка. Это помогает быстрее выпускать чанки в сетях с высокой пропускной способностью.\nТекущая реализация увеличивает задержку в сетях с низкой нагрузкой; это будет исправлено позже.\nПо умолчанию параметр отключён." } }, { "name": "enable_multiline_logging", "required": false, "schema": { "type": "boolean" } }, { "name": "enable_statistics_export", "required": false, "schema": { "type": "boolean", "description": "Re-export storage layer statistics as prometheus metrics." } }, { "name": "epoch_length", "required": false, "schema": { "type": "integer", "description": "Epoch length.", "format": "uint64" } }, { "name": "epoch_sync", "required": false, "schema": { "type": "object", "description": "Options for epoch sync.", "properties": [ { "name": "epoch_sync_horizon_num_epochs", "required": false, "schema": { "type": "integer", "description": "Количество эпох от головы сети, за пределами которого узел переключится с header-синхронизации\nна epoch-синхронизацию. На стороне потребителя это значение\nумножается на epoch_length, чтобы получить горизонт в блоках.", "format": "uint64", "default": 2 } }, { "name": "timeout_for_epoch_sync", "required": false, "schema": { "type": "object", "description": "Timeout for epoch sync requests. The node will continue retrying indefinitely even\nif this timeout is exceeded." } } ] } }, { "name": "expected_shutdown", "required": false, "schema": { "type": "string", "description": "Корректное завершение работы на ожидаемой высоте блока." } }, { "name": "gc", "required": false, "schema": { "type": "object", "description": "Configuration for garbage collection.", "properties": [ { "name": "gc_blocks_limit", "required": false, "schema": { "type": "integer", "description": "Максимальное количество блоков, собираемых сборщиком мусора\nза один вызов.", "format": "uint64", "default": 2 } }, { "name": "gc_fork_clean_step", "required": false, "schema": { "type": "integer", "description": "Maximum number of height to go through at each garbage collection step\nwhen cleaning forks during garbage collection.", "format": "uint64", "default": 100 } }, { "name": "gc_num_epochs_to_keep", "required": false, "schema": { "type": "integer", "description": "Number of epochs for which we keep store data.", "format": "uint64", "default": 5 } }, { "name": "gc_step_period", "required": false, "schema": { "type": "object", "description": "How often gc should be run", "default": { "nanos": 500000000, "secs": 0 } } } ] } }, { "name": "header_sync_expected_height_per_second", "required": false, "schema": { "type": "integer", "description": "Expected increase of header head height per second during header sync", "format": "uint64" } }, { "name": "header_sync_initial_timeout", "required": false, "schema": { "type": "array", "description": "How much time to wait after initial header sync", "items": { "type": "integer", "format": "uint64" } } }, { "name": "header_sync_progress_timeout", "required": false, "schema": { "type": "array", "description": "How much time to wait after some progress is made in header sync", "items": { "type": "integer", "format": "uint64" } } }, { "name": "header_sync_stall_ban_timeout", "required": false, "schema": { "type": "array", "description": "How much time to wait before banning a peer in header sync if sync is too slow", "items": { "type": "integer", "format": "uint64" } } }, { "name": "log_summary_period", "required": false, "schema": { "type": "array", "description": "Period between logging summary information.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "log_summary_style", "required": false, "schema": { "type": "string", "description": "Enable coloring of the logs", "enum": [ "plain", "colored" ] } }, { "name": "max_block_production_delay", "required": false, "schema": { "type": "array", "description": "Максимальное время ожидания подтверждений перед выпуском блока.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "max_block_wait_delay", "required": false, "schema": { "type": "array", "description": "Maximum duration before skipping given height.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "max_gas_burnt_view", "required": false, "schema": { "type": "string", "nullable": true, "description": "Количество газа" } }, { "name": "min_block_production_delay", "required": false, "schema": { "type": "array", "description": "Минимальная длительность перед выпуском блока.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "min_num_peers", "required": false, "schema": { "type": "integer", "description": "Minimum number of peers to start syncing.", "format": "uint" } }, { "name": "num_block_producer_seats", "required": false, "schema": { "type": "integer", "description": "Количество мест для производителей блоков", "format": "uint64" } }, { "name": "orphan_state_witness_max_size", "required": false, "schema": { "type": "integer", "description": "Максимальный размер state witness в OrphanStateWitnessPool.\nВ пуле сохраняются только orphan-witness, размер которых меньше этого значения.\nЭто ограничивает максимальное потребление памяти пулом OrphanStateWitnessPool.", "format": "uint64" } }, { "name": "orphan_state_witness_pool_size", "required": false, "schema": { "type": "integer", "description": "OrphanStateWitnessPool хранит экземпляры ChunkStateWitness, которые нельзя обработать,\nпотому что предыдущий блок недоступен. Эти witness остаются в пуле, пока\nне появится нужный блок. Эта переменная определяет, сколько witness можно хранить в пуле.", "format": "uint" } }, { "name": "produce_chunk_add_transactions_time_limit", "required": false, "schema": { "type": "string", "description": "Ограничивает время добавления транзакций в чанк.\nНода формирует чанк, добавляя транзакции из пула транзакций, пока\nне будет достигнут один из лимитов. Этот лимит по времени гарантирует, что добавление транзакций не займёт\nдольше указанной длительности и поможет быстрее выпустить чанк." } }, { "name": "produce_empty_blocks", "required": false, "schema": { "type": "boolean", "description": "Выпускать пустые блоки; значение `false` используется для тестирования." } }, { "name": "protocol_version_check", "required": false, "schema": { "type": "string", "description": "Определяет, проверяет ли узел совместимость версии сети для следующей или через одну эпохи.", "enum": [ "Next", "NextNext" ] } }, { "name": "resharding_config", "required": false, "schema": { "type": "string" } }, { "name": "rpc_addr", "required": false, "schema": { "type": "string", "nullable": true, "description": "Порт RPC для статуса, на котором слушает узел." } }, { "name": "save_invalid_witnesses", "required": false, "schema": { "type": "boolean", "description": "Save observed instances of invalid ChunkStateWitness to the database in DBCol::InvalidChunkStateWitnesses.\nSaving invalid witnesses is useful for analysis and debugging.\nThis option can cause extra load on the database and is not recommended for production use." } }, { "name": "save_latest_witnesses", "required": false, "schema": { "type": "boolean", "description": "Сохраняет наблюдаемые экземпляры ChunkStateWitness в базу данных DBCol::LatestChunkStateWitnesses.\nСохранение последних экземпляров ChunkStateWitness полезно для анализа и отладки.\nЭта опция может создавать дополнительную нагрузку на базу данных и не рекомендуется для продового контура." } }, { "name": "save_state_changes", "required": false, "schema": { "type": "boolean", "description": "Нужно ли сохранять изменения состояния на диск." } }, { "name": "save_trie_changes", "required": false, "schema": { "type": "boolean", "description": "save_trie_changes should be set to true iff\n- archive if false - non-archival nodes need trie changes to perform garbage collection\n- archive is true, cold_store is configured and migration to split_storage is finished - node\nworking in split storage mode needs trie changes in order to do garbage collection on hot." } }, { "name": "save_tx_outcomes", "required": false, "schema": { "type": "boolean", "description": "Нужно ли сохранять результаты транзакций на диск." } }, { "name": "save_untracked_partial_chunks_parts", "required": false, "schema": { "type": "boolean", "description": "Whether to persist partial chunk parts for untracked shards or not." } }, { "name": "skip_sync_wait", "required": false, "schema": { "type": "boolean", "description": "Skip waiting for sync (for testing or single node testnet)." } }, { "name": "state_request_server_threads", "required": false, "schema": { "type": "integer", "description": "Number of threads for StateRequestActor pool.", "format": "uint" } }, { "name": "state_request_throttle_period", "required": false, "schema": { "type": "array", "description": "Количество секунд между запросами состояния для view-клиента.\nОкно троттлинга для запросов состояния (заголовки и части).", "items": { "type": "integer", "format": "uint64" } } }, { "name": "state_requests_per_throttle_period", "required": false, "schema": { "type": "integer", "description": "Максимальное количество запросов состояния, обслуживаемых за период троттлинга", "format": "uint" } }, { "name": "state_sync", "required": false, "schema": { "type": "object", "description": "Параметры синхронизации состояния.", "properties": [ { "name": "concurrency", "required": false, "schema": { "type": "object" } }, { "name": "dump", "required": false, "schema": { "type": "object", "nullable": true, "description": "Настраивает способ выгрузки состояния во внешнее хранилище." } }, { "name": "parts_compression_lvl", "required": false, "schema": { "type": "integer", "description": "Уровень сжатия Zstd для частей состояния.", "format": "int32", "default": 1 } }, { "name": "sync", "required": false, "schema": { "type": "string", "nullable": true, "description": "Синхронизирует состояние от пиров, не читая ничего из внешнего хранилища.", "enum": [ "Peers" ] } } ] } }, { "name": "state_sync_enabled", "required": false, "schema": { "type": "boolean", "description": "Использовать ли механизм State Sync.\nЕсли отключён, узел будет выполнять Block Sync вместо State Sync." } }, { "name": "state_sync_external_backoff", "required": false, "schema": { "type": "array", "description": "Дополнительное время ожидания после неудачного запроса к внешнему хранилищу", "items": { "type": "integer", "format": "uint64" } } }, { "name": "state_sync_external_timeout", "required": false, "schema": { "type": "array", "description": "Как долго ждать ответа от централизованной синхронизации состояния", "items": { "type": "integer", "format": "uint64" } } }, { "name": "state_sync_p2p_timeout", "required": false, "schema": { "type": "array", "description": "Как долго ждать ответа от p2p-синхронизации состояния", "items": { "type": "integer", "format": "uint64" } } }, { "name": "state_sync_retry_backoff", "required": false, "schema": { "type": "array", "description": "Как долго ждать после неудачного запроса синхронизации состояния", "items": { "type": "integer", "format": "uint64" } } }, { "name": "sync_check_period", "required": false, "schema": { "type": "array", "description": "How often to check that we are not out of sync.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "sync_height_threshold", "required": false, "schema": { "type": "integer", "description": "Sync height threshold: below this difference in height don't start syncing.", "format": "uint64" } }, { "name": "sync_max_block_requests", "required": false, "schema": { "type": "integer", "description": "Максимальное количество запросов блоков, отправляемых пирам для синхронизации", "format": "uint" } }, { "name": "sync_step_period", "required": false, "schema": { "type": "array", "description": "While syncing, how long to check for each step.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "tracked_shards_config", "required": false, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "transaction_pool_size_limit", "required": false, "schema": { "type": "integer", "nullable": true, "description": "Ограничение размера пула транзакций одного шарда в байтах. Если не задано,\nразмер не ограничен.", "format": "uint64" } }, { "name": "transaction_request_handler_threads", "required": false, "schema": { "type": "integer", "format": "uint" } }, { "name": "trie_viewer_state_size_limit", "required": false, "schema": { "type": "integer", "nullable": true, "description": "Верхняя граница размера состояния контракта в байтах, при котором оно ещё доступно для просмотра. None — без ограничения", "format": "uint64" } }, { "name": "ttl_account_id_router", "required": false, "schema": { "type": "array", "description": "Time to persist Accounts Id in the router without removing them.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "tx_routing_height_horizon", "required": false, "schema": { "type": "integer", "description": "Если узел не является производителем чанков в пределах этого числа блоков,\nмаршрутизировать запросы к будущим производителям чанков.", "format": "uint64" } }, { "name": "version", "required": false, "schema": { "type": "object", "description": "Data structure for semver version and github tag or commit.", "required": [ "version", "build", "commit" ], "properties": [ { "name": "build", "required": true, "schema": { "type": "string" } }, { "name": "commit", "required": true, "schema": { "type": "string" } }, { "name": "rustc_version", "required": false, "schema": { "type": "string", "default": "" } }, { "name": "version", "required": true, "schema": { "type": "string" } } ] } }, { "name": "view_client_threads", "required": false, "schema": { "type": "integer", "description": "Количество потоков для пула ViewClientActor.", "format": "uint" } }, { "name": "dynamic_resharding_dry_run", "required": false, "schema": { "type": "boolean", "description": "Если значение `true`, рантайм выполнит пробный динамический ресхардинг на последнем блоке каждой эпохи.\nЭто означает вычисление предварительных граничных аккаунтов для разделения отслеживаемых шардов." } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Уровень перегрузки - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_congestion_level - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_congestion_level.md # RPC протокола NEAR: Уровень перегрузки Получить уровень перегрузки Измерьте нагрузку одного шарда на выбранном блоке — оценка насыщения от 0.0 до 1.0. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_congestion_level - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_congestion_level/other/EXPERIMENTAL_congestion_level - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_congestion_level ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/EXPERIMENTAL_congestion_level.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_congestion_level", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T", "shard_id": 10 } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_congestion_level", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T", "shard_id": 10 } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, integer | string): Высота блока (целое число) или хеш блока (строка). - `shard_id` (body, обязательный, integer): Идентификатор шарда. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_congestion_level" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "nullable": true, "required": [ "block_id", "shard_id" ], "properties": [ { "name": "block_id", "required": true, "schema": { "description": "Высота блока (целое число) или хеш блока (строка)", "oneOf": [ { "type": "integer", "description": "Высота блока" }, { "type": "string", "description": "Хеш блока в кодировке Base58" } ] } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "description": "Shard identifier" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "congestion_level" ], "properties": [ { "name": "congestion_level", "required": true, "schema": { "type": "number", "format": "double" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Доказательство блока для лайт-клиента - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_block_proof - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_block_proof.md # RPC протокола NEAR: Доказательство блока для лайт-клиента Получить доказательство блока для лайт-клиента Получите Merkle-доказательство того, что блок включён в верифицированную цепочку лайт-клиента. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_block_proof - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_block_proof/other/EXPERIMENTAL_light_client_block_proof - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_light_client_block_proof ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/EXPERIMENTAL_light_client_block_proof.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_light_client_block_proof", "params": { "block_hash": "64utzv4G8AwNSxVnj23KPwU46VL435jQbQokbaYFtZ6V", "light_client_head": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_light_client_block_proof", "params": { "block_hash": "64utzv4G8AwNSxVnj23KPwU46VL435jQbQokbaYFtZ6V", "light_client_head": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_hash` (body, обязательный, string): Хеш в кодировке Base58. - `light_client_head` (body, обязательный, string): Хеш в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_light_client_block_proof" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "block_hash", "light_client_head" ], "properties": [ { "name": "block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "light_client_head", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "block_header_lite", "block_proof" ], "properties": [ { "name": "block_header_lite", "required": true, "schema": { "type": "object", "required": [ "prev_block_hash", "inner_rest_hash", "inner_lite" ], "properties": [ { "name": "inner_lite", "required": true, "schema": { "type": "object", "description": "Часть состояния для текущей головы лёгкого клиента. Подробнее [здесь](https://nomicon.io/ChainSpec/LightClient)." } }, { "name": "inner_rest_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "block_proof", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Доказательство исполнения для лайт-клиента - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_proof - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_proof.md # RPC протокола NEAR: Доказательство исполнения для лайт-клиента Получить доказательство исполнения для лайт-клиента Получите Merkle-доказательство включения транзакции или квитанции — EXPERIMENTAL-вариант метода `light_client_proof`. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_proof - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_light_client_proof/other/EXPERIMENTAL_light_client_proof - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_light_client_proof ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/EXPERIMENTAL_light_client_proof.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_light_client_proof", "params": { "light_client_head": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T", "sender_id": "escrow.ai.near", "transaction_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx", "type": "транзакция" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_light_client_proof", "params": { "light_client_head": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T", "sender_id": "escrow.ai.near", "transaction_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx", "type": "транзакция" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `light_client_head` (body, обязательный, string): Хеш в кодировке Base58. - `sender_id` (body, string): ID аккаунта NEAR. - `transaction_hash` (body, string): Хеш в кодировке Base58. - `type` (body, string): Предмет доказательства — `transaction` подтверждает включение транзакции верхнего уровня, `receipt` подтверждает включение конкретной квитанции, сформированной в ходе исполнения. - `receipt_id` (body, string): Base58-encoded hash - `receiver_id` (body, string): ID аккаунта NEAR ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_light_client_proof" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "light_client_head" ], "properties": [ { "name": "light_client_head", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "sender_id", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "transaction_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "type", "required": false, "schema": { "type": "string", "description": "Предмет доказательства — `transaction` подтверждает включение транзакции верхнего уровня, `receipt` подтверждает включение конкретной квитанции, сформированной в ходе исполнения.", "enum": [ "транзакция", "квитанция" ] } }, { "name": "receipt_id", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "receiver_id", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "outcome_proof", "outcome_root_proof", "block_header_lite", "block_proof" ], "properties": [ { "name": "block_header_lite", "required": true, "schema": { "type": "object", "required": [ "prev_block_hash", "inner_rest_hash", "inner_lite" ], "properties": [ { "name": "inner_lite", "required": true, "schema": { "type": "object", "description": "Часть состояния для текущей головы лёгкого клиента. Подробнее [здесь](https://nomicon.io/ChainSpec/LightClient)." } }, { "name": "inner_rest_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "block_proof", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "outcome_proof", "required": true, "schema": { "type": "object", "required": [ "доказательство", "block_hash", "id", "outcome" ], "properties": [ { "name": "block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "id", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "outcome", "required": true, "schema": { "type": "object" } }, { "name": "доказательство", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "outcome_root_proof", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Конфигурация протокола - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_protocol_config - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_protocol_config.md # RPC протокола NEAR: Конфигурация протокола Получить конфигурацию протокола Получите рантайм-конфигурацию протокола на выбранном блоке — стоимость газа, цены хранилища и действующие лимиты. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_protocol_config - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_protocol_config/other/EXPERIMENTAL_protocol_config - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_protocol_config ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/EXPERIMENTAL_protocol_config.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_protocol_config", "params": { "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_protocol_config", "params": { "finality": "final" } }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_protocol_config" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "description": "One of multiple possible types" } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "properties": [ { "name": "avg_hidden_validator_seats_per_shard", "required": false, "schema": { "type": "array", "description": "Ожидаемое количество скрытых валидаторов на шард.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "block_producer_kickout_threshold", "required": false, "schema": { "type": "integer", "description": "Порог исключения производителей блоков, значение от 0 до 100.", "format": "uint8" } }, { "name": "chain_id", "required": false, "schema": { "type": "string", "description": "ID блокчейна. Должен быть уникальным для каждого блокчейна.\nЕсли у ваших testnet-блокчейнов chain ID не уникальны, вас ждут проблемы." } }, { "name": "chunk_producer_kickout_threshold", "required": false, "schema": { "type": "integer", "description": "Threshold for kicking out chunk producers, between 0 and 100.", "format": "uint8" } }, { "name": "chunk_validator_only_kickout_threshold", "required": false, "schema": { "type": "integer", "description": "Порог исключения нод, которые являются только валидаторами чанков, значение от 0 до 100.", "format": "uint8" } }, { "name": "dynamic_resharding", "required": false, "schema": { "type": "boolean", "description": "Enable dynamic re-sharding." } }, { "name": "epoch_length", "required": false, "schema": { "type": "integer", "description": "Длина эпохи, измеряемая в высотах блоков.", "format": "uint64" } }, { "name": "fishermen_threshold", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "gas_limit", "required": false, "schema": { "type": "string", "description": "Количество газа" } }, { "name": "gas_price_adjustment_rate", "required": false, "schema": { "type": "array", "description": "Коэффициент корректировки цены газа", "items": { "type": "integer", "format": "int32" } } }, { "name": "genesis_height", "required": false, "schema": { "type": "integer", "description": "Высота генезис-блока.", "format": "uint64" } }, { "name": "genesis_time", "required": false, "schema": { "type": "string", "description": "Официальное время запуска блокчейна.", "format": "date-time" } }, { "name": "max_gas_price", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "max_inflation_rate", "required": false, "schema": { "type": "array", "description": "Maximum inflation on the total supply every epoch.", "items": { "type": "integer", "format": "int32" } } }, { "name": "max_kickout_stake_perc", "required": false, "schema": { "type": "integer", "description": "Максимальный процент стейка валидаторов, которых будем исключать.", "format": "uint8" } }, { "name": "min_gas_price", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "minimum_stake_divisor", "required": false, "schema": { "type": "integer", "description": "Минимальный стейк, необходимый для стейкинга, — это последняя цена места, делённая на это число.", "format": "uint64" } }, { "name": "minimum_stake_ratio", "required": false, "schema": { "type": "array", "description": "Минимальное отношение s/s_total, которое может быть у производителя блоков.\nПодробнее см. ", "items": { "type": "integer", "format": "int32" } } }, { "name": "minimum_validators_per_shard", "required": false, "schema": { "type": "integer", "description": "Минимальное количество валидаторов, которое должно быть в каждом шарде", "format": "uint64" } }, { "name": "num_block_producer_seats", "required": false, "schema": { "type": "integer", "description": "Количество мест для производителей блоков в генезисе.", "format": "uint64" } }, { "name": "num_block_producer_seats_per_shard", "required": false, "schema": { "type": "array", "description": "Задаёт количество шардов и количество мест для производителей блоков на каждый шард в генезисе.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "num_blocks_per_year", "required": false, "schema": { "type": "integer", "description": "Ожидаемое количество блоков в год", "format": "uint64" } }, { "name": "online_max_threshold", "required": false, "schema": { "type": "array", "description": "Максимальный порог онлайна, выше которого валидатор получает полную награду.", "items": { "type": "integer", "format": "int32" } } }, { "name": "online_min_threshold", "required": false, "schema": { "type": "array", "description": "Минимальный порог онлайна, ниже которого валидатор не получает награду.", "items": { "type": "integer", "format": "int32" } } }, { "name": "protocol_reward_rate", "required": false, "schema": { "type": "array", "description": "Ставка казны протокола", "items": { "type": "integer", "format": "int32" } } }, { "name": "protocol_treasury_account", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "protocol_upgrade_stake_threshold", "required": false, "schema": { "type": "array", "description": "Threshold of stake that needs to indicate that they ready for upgrade.", "items": { "type": "integer", "format": "int32" } } }, { "name": "protocol_version", "required": false, "schema": { "type": "integer", "description": "Текущая версия протокола", "format": "uint32" } }, { "name": "runtime_config", "required": false, "schema": { "type": "object", "description": "Представление, сохраняющее JSON-формат конфигурации рантайма.", "properties": [ { "name": "account_creation_config", "required": false, "schema": { "type": "object", "description": "Структура описывает конфигурацию создания новых аккаунтов." } }, { "name": "congestion_control_config", "required": false, "schema": { "type": "object", "description": "The configuration for congestion control. More info about congestion [here](https://near.github.io/nearcore/architecture/how/receipt-congestion.html?highlight=congestion#receipt-congestion)" } }, { "name": "storage_amount_per_byte", "required": false, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "transaction_costs", "required": false, "schema": { "type": "object", "description": "Describes different fees for the runtime" } }, { "name": "wasm_config", "required": false, "schema": { "type": "object", "description": "Конфигурация операций wasm." } }, { "name": "witness_config", "required": false, "schema": { "type": "object", "description": "Configuration specific to ChunkStateWitness." } } ] } }, { "name": "shard_layout", "required": false, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "shuffle_shard_assignment_for_chunk_producers", "required": false, "schema": { "type": "boolean", "description": "Если значение `true`, производители чанков перемешиваются между шардами. Иными словами, если\nраспределение шардов было `[S_0, S_1, S_2, S_3]`, где `S_i` — множество\nпроизводителей чанков для шарда `i`, то при включённом флаге\nраспределение может стать, например, `[S_2, S_0, S_3, S_1]`." } }, { "name": "target_validator_mandates_per_shard", "required": false, "schema": { "type": "integer", "description": "Целевое количество мандатов валидаторов чанков для каждого шарда.", "format": "uint64" } }, { "name": "transaction_validity_period", "required": false, "schema": { "type": "integer", "description": "Количество блоков, в течение которых заданная транзакция действительна", "format": "uint64" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Информация о разделённом хранилище - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_split_storage_info - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_split_storage_info.md # RPC протокола NEAR: Информация о разделённом хранилище Получить сведения о разделённом хранилище Изучите раскладку разделённого хранилища узла — границу между горячими недавними и холодными архивными данными. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_split_storage_info - https://docs.fastnear.com/ru/rpcs/protocol/EXPERIMENTAL_split_storage_info/other/EXPERIMENTAL_split_storage_info - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_split_storage_info ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/EXPERIMENTAL_split_storage_info.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_split_storage_info", "params": [] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_split_storage_info", "params": [] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_split_storage_info" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "description": "Empty array as this method takes no parameters", "example": [] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Contains the split storage information.", "properties": [ { "name": "cold_head_height", "required": false, "schema": { "type": "integer", "nullable": true, "format": "uint64" } }, { "name": "final_head_height", "required": false, "schema": { "type": "integer", "nullable": true, "format": "uint64" } }, { "name": "head_height", "required": false, "schema": { "type": "integer", "nullable": true, "format": "uint64" } }, { "name": "hot_db_kind", "required": false, "schema": { "type": "string", "nullable": true } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Цена газа - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/gas_price - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/gas_price.md # RPC протокола NEAR: Цена газа Получить текущую цену газа Получите текущую общесетевую цену газа для самого последнего блока. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/gas_price - https://docs.fastnear.com/ru/rpcs/protocol/gas_price/other/gas_price - https://docs.fastnear.com/ru/reference/operation/gas_price ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/gas_price.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "gas_price", "params": [ null ] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "gas_price", "params": [ null ] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "gas_price" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "example": [ null ], "items": { "nullable": true } } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "gas_price" ], "properties": [ { "name": "gas_price", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Цена газа по блоку - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/gas_price_by_block - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/gas_price_by_block.md # RPC протокола NEAR: Цена газа по блоку Получить цену газа по блоку Получите общесетевую цену газа на выбранном историческом блоке — по высоте или хешу. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/gas_price_by_block - https://docs.fastnear.com/ru/rpcs/protocol/gas_price_by_block/other/gas_price_by_block - https://docs.fastnear.com/ru/reference/operation/gas_price_by_block ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/gas_price_by_block.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "gas_price", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "gas_price", "params": { "block_id": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, integer | string): Высота блока (целое число) или хеш блока (строка). ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "gas_price" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "block_id" ], "properties": [ { "name": "block_id", "required": true, "schema": { "description": "Высота блока (целое число) или хеш блока (строка)", "oneOf": [ { "type": "integer", "description": "Высота блока" }, { "type": "string", "description": "Хеш блока в кодировке Base58" } ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "gas_price" ], "properties": [ { "name": "gas_price", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Конфигурация генезиса - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/genesis_config - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/genesis_config.md # RPC протокола NEAR: Конфигурация генезиса Получить конфигурацию генезиса Получите неизменяемую генезис-конфигурацию цепочки — начальные записи, настройки протокола и длину эпохи в блоке 0. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/genesis_config - https://docs.fastnear.com/ru/rpcs/protocol/genesis_config/other/genesis_config - https://docs.fastnear.com/ru/reference/operation/genesis_config ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/genesis_config.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "genesis_config", "params": [] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "genesis_config", "params": [] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "genesis_config" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "description": "Empty array as this method takes no parameters", "example": [] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "protocol_version", "genesis_time", "chain_id", "genesis_height", "num_block_producer_seats", "num_block_producer_seats_per_shard", "avg_hidden_validator_seats_per_shard", "dynamic_resharding", "epoch_length", "gas_limit", "min_gas_price", "max_gas_price", "block_producer_kickout_threshold", "chunk_producer_kickout_threshold", "gas_price_adjustment_rate", "валидаторы", "transaction_validity_period", "protocol_reward_rate", "max_inflation_rate", "total_supply", "num_blocks_per_year", "protocol_treasury_account", "fishermen_threshold" ], "properties": [ { "name": "avg_hidden_validator_seats_per_shard", "required": true, "schema": { "type": "array", "description": "Ожидаемое количество скрытых валидаторов на шард.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "block_producer_kickout_threshold", "required": true, "schema": { "type": "integer", "description": "Порог исключения производителей блоков, значение от 0 до 100.", "format": "uint8" } }, { "name": "chain_id", "required": true, "schema": { "type": "string", "description": "ID блокчейна. Должен быть уникальным для каждого блокчейна.\nЕсли у ваших testnet-блокчейнов chain ID не уникальны, вас ждут проблемы." } }, { "name": "chunk_producer_assignment_changes_limit", "required": false, "schema": { "type": "integer", "description": "Ограничивает число изменений шардов в распределении производителей чанков,\nесли алгоритм способен выбрать распределение с лучшим балансом\nчисла производителей чанков по шардам.", "format": "uint64", "default": 5 } }, { "name": "chunk_producer_kickout_threshold", "required": true, "schema": { "type": "integer", "description": "Threshold for kicking out chunk producers, between 0 and 100.", "format": "uint8" } }, { "name": "chunk_validator_only_kickout_threshold", "required": false, "schema": { "type": "integer", "description": "Порог исключения нод, которые являются только валидаторами чанков, значение от 0 до 100.", "format": "uint8", "default": 80 } }, { "name": "dynamic_resharding", "required": true, "schema": { "type": "boolean", "description": "Enable dynamic re-sharding." } }, { "name": "epoch_length", "required": true, "schema": { "type": "integer", "description": "Длина эпохи, измеряемая в высотах блоков.", "format": "uint64" } }, { "name": "fishermen_threshold", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "gas_limit", "required": true, "schema": { "type": "string", "description": "Количество газа" } }, { "name": "gas_price_adjustment_rate", "required": true, "schema": { "type": "array", "description": "Коэффициент корректировки цены газа", "items": { "type": "integer", "format": "int32" } } }, { "name": "genesis_height", "required": true, "schema": { "type": "integer", "description": "Высота генезис-блока.", "format": "uint64" } }, { "name": "genesis_time", "required": true, "schema": { "type": "string", "description": "Официальное время запуска блокчейна.", "format": "date-time" } }, { "name": "max_gas_price", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "max_inflation_rate", "required": true, "schema": { "type": "array", "description": "Maximum inflation on the total supply every epoch.", "items": { "type": "integer", "format": "int32" } } }, { "name": "max_kickout_stake_perc", "required": false, "schema": { "type": "integer", "description": "Максимальный процент стейка валидаторов, которых будем исключать.", "format": "uint8", "default": 100 } }, { "name": "min_gas_price", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "minimum_stake_divisor", "required": false, "schema": { "type": "integer", "description": "Минимальный стейк, необходимый для стейкинга, — это последняя цена места, делённая на это число.", "format": "uint64", "default": 10 } }, { "name": "minimum_stake_ratio", "required": false, "schema": { "type": "array", "description": "Минимальное отношение s/s_total, которое может быть у производителя блоков.\nПодробнее см. ", "items": { "type": "integer", "format": "int32" } } }, { "name": "minimum_validators_per_shard", "required": false, "schema": { "type": "integer", "description": "Минимальное количество валидаторов, которое должно быть в каждом шарде", "format": "uint64", "default": 1 } }, { "name": "num_block_producer_seats", "required": true, "schema": { "type": "integer", "description": "Количество мест для производителей блоков в генезисе.", "format": "uint64" } }, { "name": "num_block_producer_seats_per_shard", "required": true, "schema": { "type": "array", "description": "Задаёт количество шардов и количество мест для производителей блоков на каждый шард в генезисе.\nПрим.: не используется с protocol_feature_chunk_only_producers — заменено на minimum_validators_per_shard.\nПрим.: раньше не использовалось, так как все производители блоков выпускали чанки для всех шардов.", "items": { "type": "integer", "format": "uint64" } } }, { "name": "num_blocks_per_year", "required": true, "schema": { "type": "integer", "description": "Ожидаемое количество блоков в год", "format": "uint64" } }, { "name": "num_chunk_only_producer_seats", "required": false, "schema": { "type": "integer", "description": "Deprecated.", "format": "uint64", "default": 300 } }, { "name": "num_chunk_producer_seats", "required": false, "schema": { "type": "integer", "description": "Number of chunk producers.\nDon't mess it up with chunk-only producers feature which is deprecated.", "format": "uint64", "default": 100 } }, { "name": "num_chunk_validator_seats", "required": false, "schema": { "type": "integer", "format": "uint64", "default": 300 } }, { "name": "online_max_threshold", "required": false, "schema": { "type": "array", "description": "Максимальный порог онлайна, выше которого валидатор получает полную награду.", "items": { "type": "integer", "format": "int32" } } }, { "name": "online_min_threshold", "required": false, "schema": { "type": "array", "description": "Минимальный порог онлайна, ниже которого валидатор не получает награду.", "items": { "type": "integer", "format": "int32" } } }, { "name": "protocol_reward_rate", "required": true, "schema": { "type": "array", "description": "Ставка казны протокола", "items": { "type": "integer", "format": "int32" } } }, { "name": "protocol_treasury_account", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "protocol_upgrade_stake_threshold", "required": false, "schema": { "type": "array", "description": "Threshold of stake that needs to indicate that they ready for upgrade.", "items": { "type": "integer", "format": "int32" } } }, { "name": "protocol_version", "required": true, "schema": { "type": "integer", "description": "Версия протокола, для которой предназначен этот genesis.", "format": "uint32" } }, { "name": "shard_layout", "required": false, "schema": { "type": "object", "description": "One of multiple possible types", "default": { "V2": { "boundary_accounts": [], "id_to_index_map": { "0": 0 }, "index_to_id_map": { "0": 0 }, "shard_ids": [ 0 ], "version": 0 } } } }, { "name": "shuffle_shard_assignment_for_chunk_producers", "required": false, "schema": { "type": "boolean", "description": "Если значение `true`, производители чанков перемешиваются между шардами. Иными словами, если\nраспределение шардов было `[S_0, S_1, S_2, S_3]`, где `S_i` — множество\nпроизводителей чанков для шарда `i`, то при включённом флаге\nраспределение может стать, например, `[S_2, S_0, S_3, S_1]`.", "default": false } }, { "name": "target_validator_mandates_per_shard", "required": false, "schema": { "type": "integer", "description": "Целевое количество мандатов валидаторов чанков для каждого шарда.", "format": "uint64", "default": 68 } }, { "name": "total_supply", "required": true, "schema": { "type": "string", "description": "Amount in yoctoNEAR" } }, { "name": "transaction_validity_period", "required": true, "schema": { "type": "integer", "description": "Количество блоков, в течение которых заданная транзакция действительна", "format": "uint64" } }, { "name": "use_production_config", "required": false, "schema": { "type": "boolean", "description": "Используется только для тестов. Мы жёстко задаём часть конфигурации для mainnet и testnet\nв AllEpochConfig, и нам нужен способ протестировать этот путь в коде. Для этого и служит этот флаг.\nЕсли установить `true`, узел будет использовать тот же путь переопределения конфигурации, что и mainnet и testnet.", "default": false } }, { "name": "валидаторы", "required": true, "schema": { "type": "array", "description": "Список начальных валидаторов.", "items": { "type": "object", "description": "Информация об аккаунтах валидаторов" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Состояние узла - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/health - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/health.md # RPC протокола NEAR: Состояние узла Проверить состояние узла Проверьте работоспособность узла — `null` при успехе, ошибка при проблемах. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/health - https://docs.fastnear.com/ru/rpcs/protocol/health/other/health - https://docs.fastnear.com/ru/reference/operation/health ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/health.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "health", "params": [] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "health", "params": [] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "health" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "description": "Empty array as this method takes no parameters", "example": [] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Статус состояния узла" } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Последний блок - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/latest_block - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/latest_block.md # RPC протокола NEAR: Последний блок Получить последний блок Получите последний финализированный блок — финальность выбирается автоматически, ID блока не требуется. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/latest_block - https://docs.fastnear.com/ru/rpcs/protocol/latest_block/other/latest_block - https://docs.fastnear.com/ru/reference/operation/latest_block ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/latest_block.yaml` ## Сети - Архивный RPC mainnet: https://rpc.mainnet.fastnear.com/ - Архивный RPC testnet: https://rpc.testnet.fastnear.com/ - Архивный RPC mainnet: https://archival-rpc.mainnet.fastnear.com/ - Архивный RPC testnet: https://archival-rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Архивный RPC mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "блок", "params": { "finality": "final" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "блок", "params": { "finality": "optimistic" } }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "блок" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "финальность" ], "properties": [ { "name": "финальность", "required": true, "schema": { "type": "string", "description": "Селектор финальности для последнего видимого блока", "enum": [ "final", "near-final", "optimistic" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object" } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Доказательство для лайт-клиента - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/light_client_proof - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/light_client_proof.md # RPC протокола NEAR: Доказательство для лайт-клиента Получить доказательство для лайт-клиента Получите Merkle-доказательство того, что транзакция или квитанция была включена и исполнена — для верификации лайт-клиентом. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/light_client_proof - https://docs.fastnear.com/ru/rpcs/protocol/light_client_proof/other/light_client_proof - https://docs.fastnear.com/ru/reference/operation/light_client_proof ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/light_client_proof.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "light_client_proof", "params": { "type": "транзакция", "transaction_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx", "sender_id": "escrow.ai.near", "light_client_head": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "light_client_proof", "params": { "type": "транзакция", "transaction_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx", "sender_id": "escrow.ai.near", "light_client_head": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `light_client_head` (body, обязательный, string): Хеш в кодировке Base58. - `sender_id` (body, string): ID аккаунта NEAR. - `transaction_hash` (body, string): Хеш в кодировке Base58. - `type` (body, string): Предмет доказательства — `transaction` подтверждает включение транзакции верхнего уровня, `receipt` подтверждает включение конкретной квитанции, сформированной в ходе исполнения. - `receipt_id` (body, string): Base58-encoded hash - `receiver_id` (body, string): ID аккаунта NEAR ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "light_client_proof" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "light_client_head" ], "properties": [ { "name": "light_client_head", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "sender_id", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "transaction_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "type", "required": false, "schema": { "type": "string", "description": "Предмет доказательства — `transaction` подтверждает включение транзакции верхнего уровня, `receipt` подтверждает включение конкретной квитанции, сформированной в ходе исполнения.", "enum": [ "транзакция", "квитанция" ] } }, { "name": "receipt_id", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "receiver_id", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "outcome_proof", "outcome_root_proof", "block_header_lite", "block_proof" ], "properties": [ { "name": "block_header_lite", "required": true, "schema": { "type": "object", "required": [ "prev_block_hash", "inner_rest_hash", "inner_lite" ], "properties": [ { "name": "inner_lite", "required": true, "schema": { "type": "object", "description": "Часть состояния для текущей головы лёгкого клиента. Подробнее [здесь](https://nomicon.io/ChainSpec/LightClient)." } }, { "name": "inner_rest_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "block_proof", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "outcome_proof", "required": true, "schema": { "type": "object", "required": [ "доказательство", "block_hash", "id", "outcome" ], "properties": [ { "name": "block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "id", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "outcome", "required": true, "schema": { "type": "object" } }, { "name": "доказательство", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "outcome_root_proof", "required": true, "schema": { "type": "array", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Окна обслуживания - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/maintenance_windows - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/maintenance_windows.md # RPC протокола NEAR: Окна обслуживания Получить окна обслуживания Найдите предстоящие диапазоны блоков, когда валидатор может безопасно перезапуститься, не пропуская производство блоков. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/maintenance_windows - https://docs.fastnear.com/ru/rpcs/protocol/maintenance_windows/other/maintenance_windows - https://docs.fastnear.com/ru/reference/operation/maintenance_windows ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/maintenance_windows.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "maintenance_windows", "params": { "account_id": "root.near" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "maintenance_windows", "params": { "account_id": "root.near" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): ID аккаунта NEAR. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "maintenance_windows" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "account_id" ], "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "array", "items": { "type": "object", "required": [ "start", "end" ], "properties": [ { "name": "end", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "start", "required": true, "schema": { "type": "integer", "format": "uint64" } } ] } } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Метрики узла - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/metrics - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/metrics.md # RPC протокола NEAR: Метрики узла Получить метрики узла Соберите метрики узла в Prometheus-формате для мониторинга. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/metrics - https://docs.fastnear.com/ru/rpcs/protocol/metrics/other/metrics - https://docs.fastnear.com/ru/reference/operation/metrics ## Операция - Транспорт: json-rpc - Метод: GET - Путь: `/metrics` - Исходная спецификация: `rpcs/protocol/metrics.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "metrics", "params": {} } ``` ## Справка по запросу ## Справка по ответу - Статус: 200 - Тип данных: text/plain - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "string", "description": "Prometheus exposition text", "example": "# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.\n# TYPE process_cpu_seconds_total counter\nprocess_cpu_seconds_total 12.34" } ``` --- ## RPC протокола NEAR: Сведения о сети - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/network_info - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/network_info.md # RPC протокола NEAR: Сведения о сети Получить сведения о сети Получите список активных подключений к пирам узла и отслеживаемых им производителей блоков. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/network_info - https://docs.fastnear.com/ru/rpcs/protocol/network_info/other/network_info - https://docs.fastnear.com/ru/reference/operation/network_info ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/network_info.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "network_info", "params": [] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "network_info", "params": [] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "network_info" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "description": "Empty array as this method takes no parameters", "example": [] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "active_peers", "num_active_peers", "peer_max_count", "sent_bytes_per_sec", "received_bytes_per_sec", "known_producers" ], "properties": [ { "name": "active_peers", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "known_producers", "required": true, "schema": { "type": "array", "description": "Аккаунты известных производителей блоков и чанков из таблицы маршрутизации.", "items": { "type": "object" } } }, { "name": "num_active_peers", "required": true, "schema": { "type": "integer", "format": "uint" } }, { "name": "peer_max_count", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "received_bytes_per_sec", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "sent_bytes_per_sec", "required": true, "schema": { "type": "integer", "format": "uint64" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Следующий блок для лайт-клиента - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/next_light_client_block - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/next_light_client_block.md # RPC протокола NEAR: Следующий блок для лайт-клиента Получить следующий блок для лайт-клиента Получите следующий заголовок блока для лайт-клиента после известной вершины его верифицированной цепочки. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/next_light_client_block - https://docs.fastnear.com/ru/rpcs/protocol/next_light_client_block/other/next_light_client_block - https://docs.fastnear.com/ru/reference/operation/next_light_client_block ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/next_light_client_block.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "next_light_client_block", "params": { "last_block_hash": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "next_light_client_block", "params": { "last_block_hash": "9XN7MtDywZvfGx6TKy1MT2iCZkKuHikJXmNazxdZ4x6T" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `last_block_hash` (body, обязательный, string): Хеш в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "next_light_client_block" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "last_block_hash" ], "properties": [ { "name": "last_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Состояние для текущей головы лёгкого клиента. Подробнее [здесь](https://nomicon.io/ChainSpec/LightClient).", "properties": [ { "name": "approvals_after_next", "required": false, "schema": { "type": "array", "items": { "type": "string", "nullable": true, "description": "Base58-encoded cryptographic signature" } } }, { "name": "inner_lite", "required": false, "schema": { "type": "object", "description": "Часть состояния для текущей головы лёгкого клиента. Подробнее [здесь](https://nomicon.io/ChainSpec/LightClient).", "required": [ "height", "epoch_id", "next_epoch_id", "prev_state_root", "outcome_root", "timestamp", "timestamp_nanosec", "next_bp_hash", "block_merkle_root" ], "properties": [ { "name": "block_merkle_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "epoch_id", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "next_bp_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "next_epoch_id", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "outcome_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "prev_state_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "timestamp", "required": true, "schema": { "type": "integer", "description": "Legacy json number. Should not be used.", "format": "uint64" } }, { "name": "timestamp_nanosec", "required": true, "schema": { "type": "string" } } ] } }, { "name": "inner_rest_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "next_block_inner_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "next_bps", "required": false, "schema": { "type": "array", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "prev_block_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Статус узла - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/status - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/protocol/status.md # RPC протокола NEAR: Статус узла Получить статус узла Получите версию узла, прогресс синхронизации и последний обработанный блок в одном ответе. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/protocol/status - https://docs.fastnear.com/ru/rpcs/protocol/status/other/status - https://docs.fastnear.com/ru/reference/operation/status ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/protocol/status.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "статус", "params": [] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "статус", "params": [] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "статус" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "description": "Empty array as this method takes no parameters", "example": [] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "version", "chain_id", "protocol_version", "latest_protocol_version", "валидаторы", "sync_info", "node_public_key", "uptime_sec", "genesis_hash" ], "properties": [ { "name": "chain_id", "required": true, "schema": { "type": "string", "description": "Unique chain id." } }, { "name": "detailed_debug_status", "required": false, "schema": { "type": "object", "nullable": true, "required": [ "network_info", "sync_status", "catchup_status", "current_head_status", "current_header_head_status", "block_production_delay_millis" ], "properties": [ { "name": "block_production_delay_millis", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "catchup_status", "required": true, "schema": { "type": "array", "items": { "type": "object" } } }, { "name": "current_head_status", "required": true, "schema": { "type": "object", "description": "Высота и хеш блока" } }, { "name": "current_header_head_status", "required": true, "schema": { "type": "object", "description": "Высота и хеш блока" } }, { "name": "network_info", "required": true, "schema": { "type": "object" } }, { "name": "sync_status", "required": true, "schema": { "type": "string" } } ] } }, { "name": "genesis_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "latest_protocol_version", "required": true, "schema": { "type": "integer", "description": "Последняя версия протокола, поддерживаемая этим клиентом.", "format": "uint32" } }, { "name": "node_key", "required": false, "schema": { "type": "string", "nullable": true, "description": "Публичный ключ с префиксом ed25519: или secp256k1:" } }, { "name": "node_public_key", "required": true, "schema": { "type": "string", "description": "Публичный ключ с префиксом ed25519: или secp256k1:" } }, { "name": "protocol_version", "required": true, "schema": { "type": "integer", "description": "Текущая активная версия протокола.", "format": "uint32" } }, { "name": "rpc_addr", "required": false, "schema": { "type": "string", "nullable": true, "description": "Адрес RPC-сервера. None, если у узла не включён RPC-эндпоинт." } }, { "name": "sync_info", "required": true, "schema": { "type": "object", "description": "Статус синхронизации узла.", "required": [ "latest_block_hash", "latest_block_height", "latest_state_root", "latest_block_time", "syncing" ], "properties": [ { "name": "earliest_block_hash", "required": false, "schema": { "type": "string", "nullable": true, "description": "Base58-encoded hash" } }, { "name": "earliest_block_height", "required": false, "schema": { "type": "integer", "nullable": true, "format": "uint64" } }, { "name": "earliest_block_time", "required": false, "schema": { "type": "string", "nullable": true } }, { "name": "epoch_id", "required": false, "schema": { "type": "string", "nullable": true, "description": "Base58-encoded epoch identifier hash" } }, { "name": "epoch_start_height", "required": false, "schema": { "type": "integer", "nullable": true, "format": "uint64" } }, { "name": "latest_block_hash", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "latest_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "latest_block_time", "required": true, "schema": { "type": "string" } }, { "name": "latest_state_root", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "syncing", "required": true, "schema": { "type": "boolean" } } ] } }, { "name": "uptime_sec", "required": true, "schema": { "type": "integer", "description": "Uptime of the node.", "format": "int64" } }, { "name": "validator_account_id", "required": false, "schema": { "type": "string", "nullable": true, "description": "ID аккаунта NEAR" } }, { "name": "validator_public_key", "required": false, "schema": { "type": "string", "nullable": true, "description": "Публичный ключ с префиксом ed25519: или secp256k1:" } }, { "name": "валидаторы", "required": true, "schema": { "type": "array", "description": "Валидаторы текущей эпохи.", "items": { "type": "object" } } }, { "name": "version", "required": true, "schema": { "type": "object", "description": "Data structure for semver version and github tag or commit.", "required": [ "version", "build", "commit" ], "properties": [ { "name": "build", "required": true, "schema": { "type": "string" } }, { "name": "commit", "required": true, "schema": { "type": "string" } }, { "name": "rustc_version", "required": false, "schema": { "type": "string", "default": "" } }, { "name": "version", "required": true, "schema": { "type": "string" } } ] } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Отправка транзакции (асинхронно) - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_async - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_async.md # RPC протокола NEAR: Отправка транзакции (асинхронно) Отправить транзакцию асинхронно Отправьте подписанную транзакцию и сразу получите её хеш — без ожидания исполнения. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_async - https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_async/other/broadcast_tx_async - https://docs.fastnear.com/ru/reference/operation/broadcast_tx_async ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/transaction/broadcast_tx_async.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "broadcast_tx_async", "params": { "signed_tx_base64": "DgAAAG1pa2UubmVhcgCpPJgEEFUwQjFQvL8V3CnZ0h688WG5sVsKE8JYM37ax2cUjgEAAAAAAAAADQAAAG1pa2V0ZXN0Lm5lYXIPfFBmYNAIe2/MicVhDXbvT3w06LxS2OCF0UHIYgjNDQAAAHRlc3RpbmcgbWVtbwEAAAADAQAAAAAAAAAAAAAAAAAAAA==" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "broadcast_tx_async", "params": { "signed_tx_base64": "DgAAAG1pa2UubmVhcgCpPJgEEFUwQjFQvL8V3CnZ0h688WG5sVsKE8JYM37ax2cUjgEAAAAAAAAADQAAAG1pa2V0ZXN0Lm5lYXIPfFBmYNAIe2/MicVhDXbvT3w06LxS2OCF0UHIYgjNDQAAAHRlc3RpbmcgbWVtbwEAAAADAQAAAAAAAAAAAAAAAAAAAA==" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `signed_tx_base64` (body, обязательный, string): Подписанная транзакция в кодировке Base64. Её нужно сформировать для аккаунта подписи непосредственно перед отправкой. - `wait_until` (body, string): Желаемый уровень гарантии статуса исполнения. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "broadcast_tx_async" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "signed_tx_base64" ], "properties": [ { "name": "signed_tx_base64", "required": true, "schema": { "type": "string", "description": "Подписанная транзакция в кодировке Base64" } }, { "name": "wait_until", "required": false, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "default": "EXECUTED_OPTIMISTIC", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Отправка транзакции (с подтверждением) - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_commit - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_commit.md # RPC протокола NEAR: Отправка транзакции (с подтверждением) Отправить транзакцию и дождаться подтверждения Отправьте подписанную транзакцию и дождитесь её подтверждения — устаревший синхронный способ, заменён на `send_tx`. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_commit - https://docs.fastnear.com/ru/rpcs/transaction/broadcast_tx_commit/other/broadcast_tx_commit - https://docs.fastnear.com/ru/reference/operation/broadcast_tx_commit ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/transaction/broadcast_tx_commit.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "broadcast_tx_commit", "params": { "signed_tx_base64": "DgAAAG1pa2UubmVhcgCpPJgEEFUwQjFQvL8V3CnZ0h688WG5sVsKE8JYM37ax2cUjgEAAAAAAAAADQAAAG1pa2V0ZXN0Lm5lYXIPfFBmYNAIe2/MicVhDXbvT3w06LxS2OCF0UHIYgjNDQAAAHRlc3RpbmcgbWVtbwEAAAADAQAAAAAAAAAAAAAAAAAAAA==" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "broadcast_tx_commit", "params": { "signed_tx_base64": "DgAAAG1pa2UubmVhcgCpPJgEEFUwQjFQvL8V3CnZ0h688WG5sVsKE8JYM37ax2cUjgEAAAAAAAAADQAAAG1pa2V0ZXN0Lm5lYXIPfFBmYNAIe2/MicVhDXbvT3w06LxS2OCF0UHIYgjNDQAAAHRlc3RpbmcgbWVtbwEAAAADAQAAAAAAAAAAAAAAAAAAAA==" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `signed_tx_base64` (body, обязательный, string): Подписанная транзакция в кодировке Base64. Её нужно сформировать для аккаунта подписи непосредственно перед отправкой. - `wait_until` (body, string): Желаемый уровень гарантии статуса исполнения. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "broadcast_tx_commit" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "signed_tx_base64" ], "properties": [ { "name": "signed_tx_base64", "required": true, "schema": { "type": "string", "description": "Подписанная транзакция в кодировке Base64" } }, { "name": "wait_until", "required": false, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "default": "EXECUTED_OPTIMISTIC", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "final_execution_status" ], "properties": [ { "name": "final_execution_status", "required": true, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } }, { "name": "квитанции", "required": false, "schema": { "type": "array", "description": "Квитанции, порождённые транзакцией", "items": { "type": "object" } } }, { "name": "receipts_outcome", "required": false, "schema": { "type": "array", "description": "Результаты исполнения квитанций.", "items": { "type": "object" } } }, { "name": "статус", "required": false, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "транзакция", "required": false, "schema": { "type": "object", "description": "Подписанная транзакция" } }, { "name": "transaction_outcome", "required": false, "schema": { "type": "object", "description": "Результат исполнения подписанной транзакции." } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Квитанция по ID - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_receipt - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_receipt.md # RPC протокола NEAR: Квитанция по ID Получить квитанцию по ID Получите одну квитанцию по её ID — межшардовую единицу исполнения, производимую транзакцией. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_receipt - https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_receipt/other/EXPERIMENTAL_receipt - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_receipt ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/transaction/EXPERIMENTAL_receipt.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_receipt", "params": { "receipt_id": "ETMK9HmPsAYcNxfSXBejMWQs57W4Ph5HDYoYhDMpotQn" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_receipt", "params": { "receipt_id": "ETMK9HmPsAYcNxfSXBejMWQs57W4Ph5HDYoYhDMpotQn" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `receipt_id` (body, обязательный, string): Хеш в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_receipt" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "receipt_id" ], "properties": [ { "name": "receipt_id", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "predecessor_id", "receiver_id", "receipt_id", "квитанция" ], "properties": [ { "name": "predecessor_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "priority", "required": false, "schema": { "type": "integer", "description": "Deprecated, retained for backward compatibility.", "format": "uint64", "default": 0 } }, { "name": "квитанция", "required": true, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "receipt_id", "required": true, "schema": { "type": "string", "description": "Base58-encoded hash" } }, { "name": "receiver_id", "required": true, "schema": { "type": "string", "description": "ID аккаунта NEAR" } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Подробный статус транзакции - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_tx_status - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_tx_status.md # RPC протокола NEAR: Подробный статус транзакции Получить подробный статус транзакции Получите полное дерево квитанций и результаты исполнения каждой квитанции — богаче, чем `tx_status`. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_tx_status - https://docs.fastnear.com/ru/rpcs/transaction/EXPERIMENTAL_tx_status/other/EXPERIMENTAL_tx_status - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_tx_status ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/transaction/EXPERIMENTAL_tx_status.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_tx_status", "params": { "wait_until": "EXECUTED_OPTIMISTIC", "sender_account_id": "escrow.ai.near", "tx_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_tx_status", "params": { "wait_until": "EXECUTED_OPTIMISTIC", "sender_account_id": "escrow.ai.near", "tx_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `wait_until` (body, string): Желаемый уровень гарантии статуса исполнения. - `signed_tx_base64` (body, string): Подписанная транзакция в кодировке Base64. - `sender_account_id` (body, string): ID аккаунта NEAR. - `tx_hash` (body, string): Хеш в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_tx_status" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "properties": [ { "name": "wait_until", "required": false, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "default": "EXECUTED_OPTIMISTIC", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } }, { "name": "signed_tx_base64", "required": false, "schema": { "type": "string", "description": "Подписанная транзакция в кодировке Base64" } }, { "name": "sender_account_id", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "final_execution_status" ], "properties": [ { "name": "final_execution_status", "required": true, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } }, { "name": "квитанции", "required": false, "schema": { "type": "array", "description": "Квитанции, порождённые транзакцией", "items": { "type": "object" } } }, { "name": "receipts_outcome", "required": false, "schema": { "type": "array", "description": "Результаты исполнения квитанций.", "items": { "type": "object" } } }, { "name": "статус", "required": false, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "транзакция", "required": false, "schema": { "type": "object", "description": "Подписанная транзакция" } }, { "name": "transaction_outcome", "required": false, "schema": { "type": "object", "description": "Результат исполнения подписанной транзакции." } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Отправить транзакцию - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/send_tx - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/send_tx.md # RPC протокола NEAR: Отправить транзакцию Отправить транзакцию Отправьте подписанную транзакцию и дождитесь её итогового результата исполнения — текущий синхронный способ. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/transaction/send_tx - https://docs.fastnear.com/ru/rpcs/transaction/send_tx/other/send_tx - https://docs.fastnear.com/ru/reference/operation/send_tx ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/transaction/send_tx.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "send_tx", "params": { "signed_tx_base64": "ExampleBase64EncodedTransaction", "wait_until": "EXECUTED_OPTIMISTIC" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "send_tx", "params": { "signed_tx_base64": "ExampleBase64EncodedTransaction", "wait_until": "EXECUTED_OPTIMISTIC" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `signed_tx_base64` (body, обязательный, string): Подписанная транзакция в кодировке Base64. Её нужно сформировать для аккаунта подписи непосредственно перед отправкой. - `wait_until` (body, string): Желаемый уровень гарантии статуса исполнения. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "send_tx" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "signed_tx_base64" ], "properties": [ { "name": "signed_tx_base64", "required": true, "schema": { "type": "string", "description": "Подписанная транзакция в кодировке Base64" } }, { "name": "wait_until", "required": false, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "default": "EXECUTED_OPTIMISTIC", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "final_execution_status" ], "properties": [ { "name": "final_execution_status", "required": true, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } }, { "name": "квитанции", "required": false, "schema": { "type": "array", "description": "Квитанции, порождённые транзакцией", "items": { "type": "object" } } }, { "name": "receipts_outcome", "required": false, "schema": { "type": "array", "description": "Результаты исполнения квитанций.", "items": { "type": "object" } } }, { "name": "статус", "required": false, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "транзакция", "required": false, "schema": { "type": "object", "description": "Подписанная транзакция" } }, { "name": "transaction_outcome", "required": false, "schema": { "type": "object", "description": "Результат исполнения подписанной транзакции." } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Статус транзакции - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/tx_status - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/transaction/tx_status.md # RPC протокола NEAR: Статус транзакции Проверить статус транзакции Проверьте итоговый результат транзакции по её хешу — успех, сбой или ещё не завершена. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/transaction/tx_status - https://docs.fastnear.com/ru/rpcs/transaction/tx_status/other/tx_status - https://docs.fastnear.com/ru/reference/operation/tx_status ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/transaction/tx_status.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "tx", "params": { "tx_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx", "sender_account_id": "escrow.ai.near" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "tx", "params": { "tx_hash": "34E7weKCDqXh3xPKdBgSWRqo44yTWjbka9deMK8JbAxx", "sender_account_id": "escrow.ai.near" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `wait_until` (body, string): Желаемый уровень гарантии статуса исполнения. - `signed_tx_base64` (body, string): Подписанная транзакция в кодировке Base64. - `sender_account_id` (body, string): ID аккаунта NEAR. - `tx_hash` (body, string): Хеш транзакции в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "tx" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "properties": [ { "name": "wait_until", "required": false, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "default": "EXECUTED_OPTIMISTIC", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } }, { "name": "signed_tx_base64", "required": false, "schema": { "type": "string", "description": "Подписанная транзакция в кодировке Base64" } }, { "name": "sender_account_id", "required": false, "schema": { "type": "string", "description": "ID аккаунта NEAR" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string", "description": "Base58-encoded hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "required": [ "final_execution_status" ], "properties": [ { "name": "final_execution_status", "required": true, "schema": { "type": "string", "description": "Желаемый уровень гарантии статуса исполнения", "enum": [ "NONE", "INCLUDED", "INCLUDED_FINAL", "EXECUTED", "EXECUTED_OPTIMISTIC", "FINAL" ] } }, { "name": "квитанции", "required": false, "schema": { "type": "array", "description": "Квитанции, порождённые транзакцией", "items": { "type": "object" } } }, { "name": "receipts_outcome", "required": false, "schema": { "type": "array", "description": "Результаты исполнения квитанций.", "items": { "type": "object" } } }, { "name": "статус", "required": false, "schema": { "type": "object", "description": "One of multiple possible types" } }, { "name": "транзакция", "required": false, "schema": { "type": "object", "description": "Подписанная транзакция" } }, { "name": "transaction_outcome", "required": false, "schema": { "type": "object", "description": "Результат исполнения подписанной транзакции." } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Упорядоченные валидаторы - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/validators/EXPERIMENTAL_validators_ordered - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/validators/EXPERIMENTAL_validators_ordered.md # RPC протокола NEAR: Упорядоченные валидаторы Получить упорядоченных валидаторов Получите список валидаторов, упорядоченный по размеру стейка на выбранном блоке — шире, чем только активный набор. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/validators/EXPERIMENTAL_validators_ordered - https://docs.fastnear.com/ru/rpcs/validators/EXPERIMENTAL_validators_ordered/other/EXPERIMENTAL_validators_ordered - https://docs.fastnear.com/ru/reference/operation/EXPERIMENTAL_validators_ordered ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/validators/EXPERIMENTAL_validators_ordered.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_validators_ordered", "params": { "block_id": 194263739 } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "EXPERIMENTAL_validators_ordered", "params": { "block_id": 194263739 } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, integer | string): Высота блока (целое число) или хеш блока (строка). ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "EXPERIMENTAL_validators_ordered" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "properties": [ { "name": "block_id", "required": false, "schema": { "description": "Высота блока (целое число) или хеш блока (строка)", "oneOf": [ { "type": "integer", "description": "Высота блока" }, { "type": "string", "description": "Хеш блока в кодировке Base58" }, { "nullable": true } ] } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "array", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Валидаторы по эпохе - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/validators/validators_by_epoch - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/validators/validators_by_epoch.md # RPC протокола NEAR: Валидаторы по эпохе Получить валидаторов по эпохе Получите набор валидаторов выбранной прошлой эпохи по высоте или хешу её начального блока. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/validators/validators_by_epoch - https://docs.fastnear.com/ru/rpcs/validators/validators_by_epoch/other/validators_by_epoch - https://docs.fastnear.com/ru/reference/operation/validators_by_epoch ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/validators/validators_by_epoch.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "валидаторы", "params": { "epoch_id": "4cPDvNDzf3zbKvAxPNWnNGGz8x2tty6xhowmsugAm3fo" } } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "валидаторы", "params": { "epoch_id": "4cPDvNDzf3zbKvAxPNWnNGGz8x2tty6xhowmsugAm3fo" } }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `epoch_id` (body, обязательный, string): Хеш-идентификатор эпохи в кодировке Base58. ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "валидаторы" ] } }, { "name": "params", "required": true, "schema": { "type": "object", "required": [ "epoch_id" ], "properties": [ { "name": "epoch_id", "required": true, "schema": { "type": "string", "description": "Base58-encoded epoch identifier hash" } } ] } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Информация о валидаторах текущей и следующей эпохи", "required": [ "current_validators", "next_validators", "current_fishermen", "next_fishermen", "current_proposals", "prev_epoch_kickout", "epoch_start_height", "epoch_height" ], "properties": [ { "name": "current_fishermen", "required": true, "schema": { "type": "array", "description": "Fishermen текущей эпохи", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "current_proposals", "required": true, "schema": { "type": "array", "description": "Заявки (proposals) в текущей эпохе", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "current_validators", "required": true, "schema": { "type": "array", "description": "Валидаторы текущей эпохи", "items": { "type": "object", "description": "Описывает сведения о валидаторе текущей эпохи" } } }, { "name": "epoch_height", "required": true, "schema": { "type": "integer", "description": "Epoch height", "format": "uint64" } }, { "name": "epoch_start_height", "required": true, "schema": { "type": "integer", "description": "Высота блока начала эпохи", "format": "uint64" } }, { "name": "next_fishermen", "required": true, "schema": { "type": "array", "description": "Fishermen for the next epoch", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "next_validators", "required": true, "schema": { "type": "array", "description": "Валидаторы следующей эпохи", "items": { "type": "object" } } }, { "name": "prev_epoch_kickout", "required": true, "schema": { "type": "array", "description": "Kickout in the previous epoch", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## RPC протокола NEAR: Текущие валидаторы - HTML-маршрут: https://docs.fastnear.com/ru/rpcs/validators/validators_current - Markdown-маршрут: https://docs.fastnear.com/ru/rpcs/validators/validators_current.md # RPC протокола NEAR: Текущие валидаторы Получить текущих валидаторов Получите активный набор валидаторов текущей эпохи со стейками и статистикой производительности. ## Ссылки на источник - https://docs.fastnear.com/ru/rpcs/validators/validators_current - https://docs.fastnear.com/ru/rpcs/validators/validators_current/other/validators_current - https://docs.fastnear.com/ru/reference/operation/validators_current ## Операция - Транспорт: json-rpc - Метод: POST - Путь: `/` - Исходная спецификация: `rpcs/validators/validators_current.yaml` ## Сети - Mainnet: https://rpc.mainnet.fastnear.com/ - Testnet: https://rpc.testnet.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Контракт OpenAPI описывает API-ключ FastNear как параметр запроса `apiKey`. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Финальность: final - Эндпоинт: https://rpc.mainnet.fastnear.com/ ### Тело запроса ```json { "jsonrpc": "2.0", "id": "fastnear", "method": "валидаторы", "params": [ null ] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "jsonrpc": "2.0", "id": "fastnear", "method": "валидаторы", "params": [ null ] }, "headers": {}, "path": {}, "query": {} } ``` ### Схема запроса ```json { "type": "object", "required": [ "jsonrpc", "id", "method", "params" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "type": "string", "example": "fastnear" } }, { "name": "method", "required": true, "schema": { "type": "string", "enum": [ "валидаторы" ] } }, { "name": "params", "required": true, "schema": { "type": "array", "example": [ null ], "items": { "nullable": true } } } ] } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Успешный ответ ### Схема ответа ```json { "type": "object", "required": [ "jsonrpc", "id" ], "properties": [ { "name": "jsonrpc", "required": true, "schema": { "type": "string", "enum": [ "2.0" ] } }, { "name": "id", "required": true, "schema": { "oneOf": [ { "type": "string" }, { "type": "number" } ] } }, { "name": "result", "required": false, "schema": { "type": "object", "description": "Информация о валидаторах текущей и следующей эпохи", "required": [ "current_validators", "next_validators", "current_fishermen", "next_fishermen", "current_proposals", "prev_epoch_kickout", "epoch_start_height", "epoch_height" ], "properties": [ { "name": "current_fishermen", "required": true, "schema": { "type": "array", "description": "Fishermen текущей эпохи", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "current_proposals", "required": true, "schema": { "type": "array", "description": "Заявки (proposals) в текущей эпохе", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "current_validators", "required": true, "schema": { "type": "array", "description": "Валидаторы текущей эпохи", "items": { "type": "object", "description": "Описывает сведения о валидаторе текущей эпохи" } } }, { "name": "epoch_height", "required": true, "schema": { "type": "integer", "description": "Epoch height", "format": "uint64" } }, { "name": "epoch_start_height", "required": true, "schema": { "type": "integer", "description": "Высота блока начала эпохи", "format": "uint64" } }, { "name": "next_fishermen", "required": true, "schema": { "type": "array", "description": "Fishermen for the next epoch", "items": { "type": "object", "description": "One of multiple possible types" } } }, { "name": "next_validators", "required": true, "schema": { "type": "array", "description": "Валидаторы следующей эпохи", "items": { "type": "object" } } }, { "name": "prev_epoch_kickout", "required": true, "schema": { "type": "array", "description": "Kickout in the previous epoch", "items": { "type": "object" } } } ] } }, { "name": "error", "required": false, "schema": { "type": "object", "properties": [ { "name": "код", "required": false, "schema": { "type": "integer" } }, { "name": "message", "required": false, "schema": { "type": "string" } }, { "name": "data", "required": false, "schema": { "type": "object" } } ] } } ], "refName": "JsonRpcResponse" } ``` --- ## FastNear API - Состояние - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/system/health - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/system/health.md # FastNear API - Состояние Проверить состояние сервиса Пинг FastNEAR API для проверки доступности — возвращает `{status: ok}` при успехе. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/system/health - https://docs.fastnear.com/ru/apis/fastnear/openapi/system/get_health ## Операция - Транспорт: http - Метод: GET - Путь: `/health` - Исходная спецификация: `apis/fastnear/system/health.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/health - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": {}, "query": {} } ``` ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Строка состояния сервиса ### Схема ответа ```json { "type": "object", "required": [ "статус" ], "additionalProperties": false, "properties": [ { "name": "статус", "required": true, "schema": { "type": "string" } } ], "refName": "HealthResponse" } ``` --- ## FastNear API - Статус - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/system/status - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/system/status.md # FastNear API - Статус Получить статус синхронизации сервиса Проверьте текущую индексированную высоту блока, задержку и версию развёрнутого сервиса. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/system/status - https://docs.fastnear.com/ru/apis/fastnear/openapi/system/get_status ## Операция - Транспорт: http - Метод: GET - Путь: `/status` - Исходная спецификация: `apis/fastnear/system/status.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/status - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": {}, "query": {} } ``` ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Текущий статус синхронизации FastNear API ### Схема ответа ```json { "type": "object", "required": [ "version", "sync_block_height", "sync_latency_sec", "sync_block_timestamp_nanosec", "sync_balance_block_height" ], "additionalProperties": false, "properties": [ { "name": "sync_balance_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "sync_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "sync_block_timestamp_nanosec", "required": true, "schema": { "type": "string" } }, { "name": "sync_latency_sec", "required": true, "schema": { "type": "number", "format": "double" } }, { "name": "version", "required": true, "schema": { "type": "string" } } ], "refName": "StatusResponse" } ``` --- ## FastNear API - V0 FT аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/account_ft - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/account_ft.md # FastNear API - V0 FT аккаунта Получить ID FT-контрактов аккаунта Получите ID FT-контрактов, которых касался аккаунт — только ID, без балансов. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v0/account_ft - https://docs.fastnear.com/ru/apis/fastnear/openapi/fungible-tokens/account_ft_v0 ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/account/{account_id}/ft` - Исходная спецификация: `apis/fastnear/v0/account_ft.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который передают встроенные клиенты портала. Публичный FastNear API его не требует. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v0/account/root.near/ft - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который передают встроенные клиенты портала. Публичный FastNear API его не требует. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: ID FT-контрактов для запрошенного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "contract_ids" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "contract_ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "refName": "V0ContractsResponse" } ``` --- ## FastNear API - V0 NFT аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/account_nft - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/account_nft.md # FastNear API - V0 NFT аккаунта Получить ID NFT-контрактов аккаунта Получите ID NFT-контрактов, которых касался аккаунт — только ID, без метаданных по высоте блока. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v0/account_nft - https://docs.fastnear.com/ru/apis/fastnear/openapi/non-fungible-tokens/account_nft_v0 ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/account/{account_id}/nft` - Исходная спецификация: `apis/fastnear/v0/account_nft.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который передают встроенные клиенты портала. Публичный FastNear API его не требует. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v0/account/root.near/nft - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который передают встроенные клиенты портала. Публичный FastNear API его не требует. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: ID NFT-контрактов для запрошенного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "contract_ids" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "contract_ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "refName": "V0ContractsResponse" } ``` --- ## FastNear API - V0 стейкинг аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/account_staking - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/account_staking.md # FastNear API - V0 стейкинг аккаунта Получить ID стейкинг-пулов аккаунта Получите ID стейкинг-пулов для одного аккаунта — только ID пулов, без метаданных по высоте блока. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v0/account_staking - https://docs.fastnear.com/ru/apis/fastnear/openapi/staking/account_staking_v0 ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/account/{account_id}/staking` - Исходная спецификация: `apis/fastnear/v0/account_staking.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который передают встроенные клиенты портала. Публичный FastNear API его не требует. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v0/account/root.near/staking - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который передают встроенные клиенты портала. Публичный FastNear API его не требует. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: ID стейкинг-пулов для запрошенного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "pools" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "pools", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "refName": "V0StakingResponse" } ``` --- ## FastNear API - V0 Поиск по публичному ключу - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/public_key_lookup - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/public_key_lookup.md # FastNear API - V0 Поиск по публичному ключу Найти аккаунты полного доступа по публичному ключу Получите индексированные ID аккаунтов, связанные с публичным ключом полного доступа. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v0/public_key_lookup - https://docs.fastnear.com/ru/apis/fastnear/openapi/public-key/lookup_by_public_key_v0 ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/public_key/{public_key}` - Исходная спецификация: `apis/fastnear/v0/public_key_lookup.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v0/public_key/ed25519%3ACCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "public_key": "ed25519:CCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT" }, "query": {} } ``` ### Входные данные - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры пути - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Подходящие ID аккаунтов для переданного публичного ключа полного доступа ### Схема ответа ```json { "type": "object", "required": [ "public_key", "account_ids" ], "additionalProperties": false, "properties": [ { "name": "account_ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "public_key", "required": true, "schema": { "type": "string" } } ], "refName": "PublicKeyLookupResponse" } ``` --- ## FastNear API - V0 Поиск по публичному ключу (все) - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/public_key_lookup_all - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v0/public_key_lookup_all.md # FastNear API - V0 Поиск по публичному ключу (все) Найти все аккаунты по публичному ключу Получите все аккаунты, связанные с публичным ключом — ключи полного доступа и ключи с ограничениями вместе. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v0/public_key_lookup_all - https://docs.fastnear.com/ru/apis/fastnear/openapi/public-key/lookup_by_public_key_all_v0 ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/public_key/{public_key}/all` - Исходная спецификация: `apis/fastnear/v0/public_key_lookup_all.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v0/public_key/ed25519%3ACCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT/all - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "public_key": "ed25519:CCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT" }, "query": {} } ``` ### Входные данные - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры пути - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Подходящие ID аккаунтов для переданного публичного ключа, включая ключи ограниченного доступа ### Схема ответа ```json { "type": "object", "required": [ "public_key", "account_ids" ], "additionalProperties": false, "properties": [ { "name": "account_ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "public_key", "required": true, "schema": { "type": "string" } } ], "refName": "PublicKeyLookupResponse" } ``` --- ## FastNear API - V1 FT аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_ft - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_ft.md # FastNear API - V1 FT аккаунта Получить индексированные строки FT-токенов аккаунта Получите строки балансов FT-токенов аккаунта — каждая с ID контракта, балансом и высотой последнего обновления. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/account_ft - https://docs.fastnear.com/ru/apis/fastnear/openapi/fungible-tokens/account_ft_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/account/{account_id}/ft` - Исходная спецификация: `apis/fastnear/v1/account_ft.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/account/root.near/ft - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Индексированные строки FT-токенов для указанного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "токены" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "токены", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "contract_id", "last_update_block_height", "balance" ], "additionalProperties": false, "properties": [ { "name": "balance", "required": true, "schema": { "type": "string" } }, { "name": "contract_id", "required": true, "schema": { "type": "string" } }, { "name": "last_update_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "TokenRow" } } } ], "refName": "V1FtResponse" } ``` --- ## FastNear API - V1 Полный снимок аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_full - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_full.md # FastNear API - V1 Полный снимок аккаунта Получить полный индексированный снимок аккаунта Получите объединённое индексированное представление аккаунта, включая стейкинг-пулы, FT-балансы, NFT и состояние аккаунта. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/account_full - https://docs.fastnear.com/ru/apis/fastnear/openapi/accounts/account_full_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/account/{account_id}/full` - Исходная спецификация: `apis/fastnear/v1/account_full.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/account/root.near/full - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Полный индексированный снимок указанного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "pools", "токены", "nfts", "состояние" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "nfts", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "contract_id", "last_update_block_height" ], "additionalProperties": false, "properties": [ { "name": "contract_id", "required": true, "schema": { "type": "string" } }, { "name": "last_update_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "NftRow" } } }, { "name": "pools", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "pool_id", "last_update_block_height" ], "additionalProperties": false, "properties": [ { "name": "last_update_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "pool_id", "required": true, "schema": { "type": "string" } } ], "refName": "PoolRow" } } }, { "name": "состояние", "required": true, "schema": { "type": "object" } }, { "name": "токены", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "contract_id", "last_update_block_height", "balance" ], "additionalProperties": false, "properties": [ { "name": "balance", "required": true, "schema": { "type": "string" } }, { "name": "contract_id", "required": true, "schema": { "type": "string" } }, { "name": "last_update_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "TokenRow" } } } ], "refName": "AccountFullResponse" } ``` --- ## FastNear API - V1 NFT аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_nft - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_nft.md # FastNear API - V1 NFT аккаунта Получить индексированные строки NFT аккаунта Получите строки NFT-контрактов для аккаунта, каждая с метаданными по высоте блока. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/account_nft - https://docs.fastnear.com/ru/apis/fastnear/openapi/non-fungible-tokens/account_nft_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/account/{account_id}/nft` - Исходная спецификация: `apis/fastnear/v1/account_nft.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/account/root.near/nft - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Индексированные строки NFT-контрактов для указанного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "токены" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "токены", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "contract_id", "last_update_block_height" ], "additionalProperties": false, "properties": [ { "name": "contract_id", "required": true, "schema": { "type": "string" } }, { "name": "last_update_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "NftRow" } } } ], "refName": "V1NftResponse" } ``` --- ## FastNEAR API — V1 стейкинг аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_staking - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/account_staking.md # FastNEAR API — V1 стейкинг аккаунта Поиск индексированных стейкинг-пулов аккаунта Получите строки по стейкинг-пулам для аккаунта, каждая с метаданными по высоте блока. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/account_staking - https://docs.fastnear.com/ru/apis/fastnear/openapi/staking/account_staking_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/account/{account_id}/staking` - Исходная спецификация: `apis/fastnear/v1/account_staking.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, передаваемый встраиваемыми клиентами портала. Публичный FastNEAR API его не требует. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/account/root.near/staking - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "account_id": "root.near" }, "query": {} } ``` ### Входные данные - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры пути - `account_id` (путь, обязательный, string): ID аккаунта NEAR для проверки. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, передаваемый встраиваемыми клиентами портала. Публичный FastNEAR API его не требует. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Индексированные записи стейкинг-пулов для указанного аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_id", "pools" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "pools", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "pool_id", "last_update_block_height" ], "additionalProperties": false, "properties": [ { "name": "last_update_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "pool_id", "required": true, "schema": { "type": "string" } } ], "refName": "PoolRow" } } } ], "refName": "V1StakingResponse" } ``` --- ## FastNEAR API — V1 топ держателей FT - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/ft_top - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/ft_top.md # FastNEAR API — V1 топ держателей FT Поиск индексированных топ-держателей FT-токена Получите список держателей с наибольшим балансом для FT-контракта, отсортированный по убыванию баланса. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/ft_top - https://docs.fastnear.com/ru/apis/fastnear/openapi/fungible-tokens/ft_top_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/ft/{token_id}/top` - Исходная спецификация: `apis/fastnear/v1/ft_top.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, передаваемый встраиваемыми клиентами портала. Публичный FastNEAR API его не требует. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/ft/wrap.near/top - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "token_id": "wrap.near" }, "query": {} } ``` ### Входные данные - `token_id` (путь, обязательный, string): ID аккаунта контракта FT-токена. ### Параметры пути - `token_id` (путь, обязательный, string): ID аккаунта контракта FT-токена. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, передаваемый встраиваемыми клиентами портала. Публичный FastNEAR API его не требует. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Индексированные топ-держатели указанного FT-токена ### Схема ответа ```json { "type": "object", "required": [ "token_id", "аккаунтов" ], "additionalProperties": false, "properties": [ { "name": "аккаунтов", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "account_id", "balance" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "balance", "required": true, "schema": { "type": "string" } } ], "refName": "AccountBalanceRow" } } }, { "name": "token_id", "required": true, "schema": { "type": "string" } } ], "refName": "TokenAccountsResponse" } ``` --- ## FastNear API - V1 Поиск по публичному ключу - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/public_key_lookup - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/public_key_lookup.md # FastNear API - V1 Поиск по публичному ключу Найти аккаунты полного доступа по публичному ключу Получите индексированные ID аккаунтов, связанные с публичным ключом полного доступа. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/public_key_lookup - https://docs.fastnear.com/ru/apis/fastnear/openapi/public-key/lookup_by_public_key_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/public_key/{public_key}` - Исходная спецификация: `apis/fastnear/v1/public_key_lookup.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/public_key/ed25519%3ACCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "public_key": "ed25519:CCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT" }, "query": {} } ``` ### Входные данные - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры пути - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Подходящие ID аккаунтов для переданного публичного ключа полного доступа ### Схема ответа ```json { "type": "object", "required": [ "public_key", "account_ids" ], "additionalProperties": false, "properties": [ { "name": "account_ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "public_key", "required": true, "schema": { "type": "string" } } ], "refName": "PublicKeyLookupResponse" } ``` --- ## FastNear API - V1 Поиск по публичному ключу (все) - HTML-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/public_key_lookup_all - Markdown-маршрут: https://docs.fastnear.com/ru/apis/fastnear/v1/public_key_lookup_all.md # FastNear API - V1 Поиск по публичному ключу (все) Найти все индексированные аккаунты по публичному ключу Получите все аккаунты, связанные с публичным ключом — ключи полного доступа и ключи с ограничениями вместе. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/fastnear/v1/public_key_lookup_all - https://docs.fastnear.com/ru/apis/fastnear/openapi/public-key/lookup_by_public_key_all_v1 ## Операция - Транспорт: http - Метод: GET - Путь: `/v1/public_key/{public_key}/all` - Исходная спецификация: `apis/fastnear/v1/public_key_lookup_all.yaml` ## Сети - Mainnet: https://api.fastnear.com/ - Testnet: https://test.api.fastnear.com/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://api.fastnear.com/v1/public_key/ed25519%3ACCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT/all - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "public_key": "ed25519:CCaThr3uokqnUs6Z5vVnaDcJdrfuTpYJHJWcAGubDjT" }, "query": {} } ``` ### Входные данные - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры пути - `public_key` (путь, обязательный, string): Публичный ключ NEAR в формате `ed25519:...` или `secp256k1:...`. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ, который могут передавать встроенные клиенты портала. Публичный FastNear API не требует его. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Подходящие ID аккаунтов для переданного публичного ключа, включая ключи ограниченного доступа ### Схема ответа ```json { "type": "object", "required": [ "public_key", "account_ids" ], "additionalProperties": false, "properties": [ { "name": "account_ids", "required": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "public_key", "required": true, "schema": { "type": "string" } } ], "refName": "PublicKeyLookupResponse" } ``` --- ## KV FastData API - Последние ключи по вызывающему аккаунту - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/all_by_predecessor - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/all_by_predecessor.md # KV FastData API - Последние ключи по вызывающему аккаунту Получить последние строки «ключ-значение» для одного вызывающего аккаунта по всем контрактам Получите последние значения для всех контрактов, к которым обращался один вызывающий аккаунт. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/all_by_predecessor - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/latest/all_by_predecessor ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/all/{predecessor_id}` - Исходная спецификация: `apis/kv-fastdata/v0/all_by_predecessor.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/all/james.near - Активный пример: Mainnet ### Тело запроса ```json { "include_metadata": true, "limit": 50 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "include_metadata": true, "limit": 50 }, "headers": {}, "path": { "predecessor_id": "james.near" }, "query": {} } ``` ### Входные данные - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `limit` (body, integer) - `page_token` (body, string): Непрозрачный токен страницы из предыдущего ответа `/v0/all/{predecessor_id}`. ### Схема запроса ```json { "type": "object", "additionalProperties": false, "properties": [ { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Непрозрачный токен страницы из предыдущего ответа `/v0/all/{predecessor_id}`." } } ], "refName": "AllRequest" } ``` ### Параметры пути - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Последние строки для выбранного вызывающего аккаунта ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - История по точному ключу - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/get_history_key - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/get_history_key.md # KV FastData API - История по точному ключу Получить исторические строки для одного точного ключа в рамках одного вызывающего аккаунта и контракта Получите каждую историческую запись для одного точного ключа под одним вызывающим аккаунтом и контрактом. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/get_history_key - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/history/get_history_key ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/history/{current_account_id}/{predecessor_id}/{key}` - Исходная спецификация: `apis/kv-fastdata/v0/get_history_key.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://kv.main.fastnear.com/v0/history/social.near/james.near/%7Bkey%7D - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "current_account_id": "social.near", "predecessor_id": "james.near", "key": "graph/follow/sleet.near" }, "query": {} } ``` ### Входные данные - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `ключ` (путь, обязательный, string): Точный ключ FastData, который нужно вернуть. ### Параметры пути - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `ключ` (путь, обязательный, string): Точный ключ FastData, который нужно вернуть. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Исторические строки для выбранного вызывающего аккаунта, контракта и ключа ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - Последнее значение по точному ключу - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/get_latest_key - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/get_latest_key.md # KV FastData API - Последнее значение по точному ключу Получить последнюю строку для одного точного ключа в рамках одного вызывающего аккаунта и контракта Получите последнее значение для одного точного ключа под одним вызывающим аккаунтом и контрактом. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/get_latest_key - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/latest/get_latest_key ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/latest/{current_account_id}/{predecessor_id}/{key}` - Исходная спецификация: `apis/kv-fastdata/v0/get_latest_key.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://kv.main.fastnear.com/v0/latest/social.near/james.near/%7Bkey%7D - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "current_account_id": "social.near", "predecessor_id": "james.near", "key": "graph/follow/sleet.near" }, "query": {} } ``` ### Входные данные - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `ключ` (путь, обязательный, string): Точный ключ FastData, который нужно вернуть. ### Параметры пути - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `ключ` (путь, обязательный, string): Точный ключ FastData, который нужно вернуть. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Последняя строка для выбранного вызывающего аккаунта, контракта и ключа ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - История по аккаунту - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_account - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_account.md # KV FastData API - История по аккаунту Получить историю записей «ключ-значение» для одного контракта по всем вызывающим аккаунтам Получите исторические строки FastData для одного целевого аккаунта по всем вызывающим аккаунтам. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_account - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/history/history_by_account ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/history/{current_account_id}` - Исходная спецификация: `apis/kv-fastdata/v0/history_by_account.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/history/social.near - Активный пример: Mainnet ### Тело запроса ```json { "asc": true, "include_metadata": true, "key_prefix": "graph/follow/sleet.near", "limit": 10 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "asc": true, "include_metadata": true, "key_prefix": "graph/follow/sleet.near", "limit": 10 }, "headers": {}, "path": { "current_account_id": "social.near" }, "query": {} } ``` ### Входные данные - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `asc` (body, boolean): Сортировать результаты истории по возрастанию. По умолчанию сначала идут новые записи. - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `ключ` (body, string): Фильтр по точному ключу. Взаимно исключающий с `key_prefix`. - `key_prefix` (body, string): Фильтр по префиксу для совпадения пространств имён ключей. - `limit` (body, integer) - `page_token` (body, string): Непрозрачный токен страницы из предыдущего ответа с тем же эндпоинтом и набором фильтров. ### Схема запроса ```json { "type": "object", "additionalProperties": false, "properties": [ { "name": "asc", "required": false, "schema": { "type": "boolean", "description": "Сортировать по возрастанию для эндпоинтов истории. По умолчанию — от новых к старым.", "default": false } }, { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "ключ", "required": false, "schema": { "type": "string", "description": "Фильтр по точному ключу. Взаимно исключающий с `key_prefix`." } }, { "name": "key_prefix", "required": false, "schema": { "type": "string", "description": "Фильтр по префиксу для сопоставления пространств имён ключей." } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Непрозрачный токен страницы из предыдущего ответа того же эндпоинта и набора фильтров." } } ], "refName": "QueryRequest" } ``` ### Параметры пути - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Исторические строки для выбранного контракта ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - История по глобальному ключу - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_key - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_key.md # KV FastData API - История по глобальному ключу Получить историю по точному ключу во всех индексированных контрактах Получите исторические значения выбранного ключа по аккаунтам и вызывающим аккаунтам. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_key - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/history/history_by_key ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/history` - Исходная спецификация: `apis/kv-fastdata/v0/history_by_key.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/history - Активный пример: Mainnet ### Тело запроса ```json { "asc": true, "include_metadata": false, "limit": 50 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "asc": true, "include_metadata": false, "key": "graph/follow/sleet.near", "limit": 50 }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `asc` (body, boolean): Сортировать результаты истории по возрастанию. По умолчанию сначала идут новые записи. - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `ключ` (body, обязательный, string): Точное имя ключа для сопоставления по всем аккаунтам и предшественникам. - `limit` (body, integer) - `page_token` (body, string): Непрозрачный токен страницы из предыдущего ответа с тем же эндпоинтом и набором фильтров. ### Схема запроса ```json { "type": "object", "required": [ "ключ" ], "additionalProperties": false, "properties": [ { "name": "asc", "required": false, "schema": { "type": "boolean", "description": "Сортировать результаты истории по возрастанию. По умолчанию — от новых к старым.", "default": false } }, { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "ключ", "required": true, "schema": { "type": "string", "description": "Точное имя ключа для сопоставления по всем аккаунтам и предшественникам." } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Непрозрачный токен страницы из предыдущего ответа того же эндпоинта и набора фильтров." } } ], "refName": "ByKeyRequest" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Исторические строки для выбранного ключа ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - История по вызывающему аккаунту - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_predecessor - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_predecessor.md # KV FastData API - История по вызывающему аккаунту Получить историю записей «ключ-значение» для одного вызывающего аккаунта и контракта Получите исторические строки FastData для одного вызывающего аккаунта и целевого аккаунта. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/history_by_predecessor - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/history/history_by_predecessor ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/history/{current_account_id}/{predecessor_id}` - Исходная спецификация: `apis/kv-fastdata/v0/history_by_predecessor.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/history/social.near/james.near - Активный пример: Mainnet ### Тело запроса ```json { "asc": false, "include_metadata": true, "key_prefix": "graph/follow/", "limit": 50 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "asc": false, "include_metadata": true, "key_prefix": "graph/follow/", "limit": 50 }, "headers": {}, "path": { "current_account_id": "social.near", "predecessor_id": "james.near" }, "query": {} } ``` ### Входные данные - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `asc` (body, boolean): Сортировать результаты истории по возрастанию. По умолчанию сначала идут новые записи. - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `ключ` (body, string): Фильтр по точному ключу. Взаимно исключающий с `key_prefix`. - `key_prefix` (body, string): Фильтр по префиксу для совпадения пространств имён ключей. - `limit` (body, integer) - `page_token` (body, string): Непрозрачный токен страницы из предыдущего ответа с тем же эндпоинтом и набором фильтров. ### Схема запроса ```json { "type": "object", "additionalProperties": false, "properties": [ { "name": "asc", "required": false, "schema": { "type": "boolean", "description": "Сортировать по возрастанию для эндпоинтов истории. По умолчанию — от новых к старым.", "default": false } }, { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "ключ", "required": false, "schema": { "type": "string", "description": "Фильтр по точному ключу. Взаимно исключающий с `key_prefix`." } }, { "name": "key_prefix", "required": false, "schema": { "type": "string", "description": "Фильтр по префиксу для сопоставления пространств имён ключей." } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Непрозрачный токен страницы из предыдущего ответа того же эндпоинта и набора фильтров." } } ], "refName": "QueryRequest" } ``` ### Параметры пути - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Исторические строки для выбранного вызывающего аккаунта и аккаунта контракта ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - Последние значения по аккаунту - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/latest_by_account - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/latest_by_account.md # KV FastData API - Последние значения по аккаунту Получить последние строки «ключ-значение» для одного контракта по всем вызывающим аккаунтам Получите последние строки FastData для одного целевого аккаунта по всем вызывающим аккаунтам. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/latest_by_account - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/latest/latest_by_account ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/latest/{current_account_id}` - Исходная спецификация: `apis/kv-fastdata/v0/latest_by_account.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/latest/social.near - Активный пример: Mainnet ### Тело запроса ```json { "include_metadata": true, "key_prefix": "graph/follow/", "limit": 50 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "include_metadata": true, "key_prefix": "graph/follow/", "limit": 50 }, "headers": {}, "path": { "current_account_id": "social.near" }, "query": {} } ``` ### Входные данные - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `ключ` (body, string): Фильтр по точному ключу. Взаимно исключающий с `key_prefix`. - `key_prefix` (body, string): Фильтр по префиксу для совпадения пространств имён ключей. - `limit` (body, integer) - `page_token` (body, string): Непрозрачный токен страницы из предыдущего ответа с тем же эндпоинтом и набором фильтров. ### Схема запроса ```json { "type": "object", "additionalProperties": false, "properties": [ { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "ключ", "required": false, "schema": { "type": "string", "description": "Фильтр по точному ключу. Взаимно исключающий с `key_prefix`." } }, { "name": "key_prefix", "required": false, "schema": { "type": "string", "description": "Фильтр по префиксу для сопоставления пространств имён ключей." } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Непрозрачный токен страницы из предыдущего ответа того же эндпоинта и набора фильтров." } } ], "refName": "LatestRequest" } ``` ### Параметры пути - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Последние строки для выбранного контракта ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - Последние значения по вызывающему аккаунту - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/latest_by_predecessor - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/latest_by_predecessor.md # KV FastData API - Последние значения по вызывающему аккаунту Получить последние строки «ключ-значение» для одного вызывающего аккаунта и контракта Получите последние строки FastData для одного вызывающего аккаунта и целевого аккаунта. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/latest_by_predecessor - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/latest/latest_by_predecessor ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/latest/{current_account_id}/{predecessor_id}` - Исходная спецификация: `apis/kv-fastdata/v0/latest_by_predecessor.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/latest/social.near/james.near - Активный пример: Mainnet ### Тело запроса ```json { "include_metadata": true, "key_prefix": "graph/follow/", "limit": 50 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "include_metadata": true, "key_prefix": "graph/follow/", "limit": 50 }, "headers": {}, "path": { "current_account_id": "social.near", "predecessor_id": "james.near" }, "query": {} } ``` ### Входные данные - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `ключ` (body, string): Фильтр по точному ключу. Взаимно исключающий с `key_prefix`. - `key_prefix` (body, string): Фильтр по префиксу для совпадения пространств имён ключей. - `limit` (body, integer) - `page_token` (body, string): Непрозрачный токен страницы из предыдущего ответа с тем же эндпоинтом и набором фильтров. ### Схема запроса ```json { "type": "object", "additionalProperties": false, "properties": [ { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "ключ", "required": false, "schema": { "type": "string", "description": "Фильтр по точному ключу. Взаимно исключающий с `key_prefix`." } }, { "name": "key_prefix", "required": false, "schema": { "type": "string", "description": "Фильтр по префиксу для сопоставления пространств имён ключей." } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Непрозрачный токен страницы из предыдущего ответа того же эндпоинта и набора фильтров." } } ], "refName": "LatestRequest" } ``` ### Параметры пути - `current_account_id` (путь, обязательный, string): Аккаунт контракта, для которого были записаны ключи FastData. - `predecessor_id` (путь, обязательный, string): Вызывающий аккаунт, который записал ключи FastData. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Последние строки для выбранного вызывающего аккаунта и аккаунта контракта ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ], "refName": "KvEntry" } } }, { "name": "page_token", "required": false, "schema": { "type": "string", "description": "Opaque pagination cursor for the next page. Absent when there are no more results." } } ], "refName": "ListResponse" } ``` --- ## KV FastData API - Пакетный поиск по ключам - HTML-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/multi - Markdown-маршрут: https://docs.fastnear.com/ru/apis/kv-fastdata/v0/multi.md # KV FastData API - Пакетный поиск по ключам Получить последние строки для нескольких полностью квалифицированных ключей Получите последнюю строку FastData сразу для 100 ключей в одном запросе. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/kv-fastdata/v0/multi - https://docs.fastnear.com/ru/apis/kv-fastdata/openapi/latest/multi ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/multi` - Исходная спецификация: `apis/kv-fastdata/v0/multi.yaml` ## Сети - Mainnet: https://kv.main.fastnear.com/ - Testnet: https://kv.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://kv.main.fastnear.com/v0/multi - Активный пример: Mainnet ### Тело запроса ```json { "include_metadata": true } ``` ## Справка по запросу ### Активный пример ```json { "body": { "include_metadata": true, "keys": [ "social.near/james.near/graph/follow/sleet.near", "social.near/james.near/graph/follow/missing" ] }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `include_metadata` (body, boolean): Добавить в каждую запись метаданные квитанции и подписанта. - `ключи` (body, обязательный, array): Полноквалифицированные ключи в форме current_account_id/predecessor_id/key. ### Схема запроса ```json { "type": "object", "required": [ "ключи" ], "additionalProperties": false, "properties": [ { "name": "include_metadata", "required": false, "schema": { "type": "boolean", "description": "Включать в каждую запись метаданные квитанции и подписанта.", "default": false } }, { "name": "ключи", "required": true, "schema": { "type": "array", "description": "Полноквалифицированные ключи в форме current_account_id/predecessor_id/key.", "items": { "type": "string" } } } ], "refName": "MultiRequest" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Последние строки для запрошенных ключей ### Схема ответа ```json { "type": "object", "required": [ "entries" ], "additionalProperties": false, "properties": [ { "name": "entries", "required": true, "schema": { "type": "array", "items": { "oneOf": [ { "type": "object", "required": [ "predecessor_id", "current_account_id", "block_height", "block_timestamp", "ключ", "value" ], "additionalProperties": false, "properties": [ { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "current_account_id", "required": true, "schema": { "type": "string" } }, { "name": "ключ", "required": true, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": false, "schema": { "type": "string" } }, { "name": "signer_id", "required": false, "schema": { "type": "string" } }, { "name": "tx_hash", "required": false, "schema": { "type": "string" } }, { "name": "value", "required": true, "schema": { "description": "Raw JSON value as stored in FastData." } } ] }, { "enum": [ null ] } ] } } } ], "refName": "MultiResponse" } ``` --- ## NEAR Data API - Состояние - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/system/health - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/system/health.md # NEAR Data API - Состояние Проверить состояние сервиса Проверьте работоспособность сервиса NEAR Data — возвращает `{status: ok}` при успехе, ошибку при проблемах. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/system/health - https://docs.fastnear.com/ru/apis/neardata/openapi/system/get_health ## Операция - Транспорт: http - Метод: GET - Путь: `/health` - Исходная спецификация: `apis/neardata/system/health.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/health - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": {}, "query": {} } ``` ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Поле состояния сервиса ### Схема ответа ```json { "type": "object", "required": [ "статус" ], "additionalProperties": false, "properties": [ { "name": "статус", "required": true, "schema": { "type": "string" } } ], "refName": "HealthResponse" } ``` --- ## NEAR Data API - Финализированный блок - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block.md # NEAR Data API - Финализированный блок Получить финализированный блок по высоте Получите полный документ финализированного блока на выбранной высоте — заголовок плюс каждый чанк и данные шарда. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/block - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_block ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/block/{block_height}` - Исходная спецификация: `apis/neardata/v0/block.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/block/9820210 - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "block_height": "9820210" }, "query": {} } ``` ### Входные данные - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. ### Параметры пути - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Запрошенный документ или `null`, если выбранный срез отсутствует ### Схема ответа ```json { "type": "object", "description": "Полный документ блока, который отдаёт neardata, включая `block` и `shards`.", "additionalProperties": true } ``` --- ## NEAR Data API - Чанк блока - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_chunk - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_chunk.md # NEAR Data API - Чанк блока Получить чанк из финализированного блока Получите один чанк — транзакции и входящие квитанции одного шарда — на выбранной высоте блока. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/block_chunk - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_chunk ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/block/{block_height}/chunk/{shard_id}` - Исходная спецификация: `apis/neardata/v0/block_chunk.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/block/50000000/chunk/0 - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "block_height": "50000000", "shard_id": "0" }, "query": {} } ``` ### Входные данные - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. - `shard_id` (путь, обязательный, string): Идентификатор шарда, чанк которого нужно вернуть. ### Параметры пути - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. - `shard_id` (путь, обязательный, string): Идентификатор шарда, чанк которого нужно вернуть. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Запрошенный документ или `null`, если выбранный срез отсутствует ### Схема ответа ```json { "type": "object", "description": "Объект чанка для указанного ID шарда.", "additionalProperties": true } ``` --- ## NEAR Data API - Заголовки блока - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_headers - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_headers.md # NEAR Data API - Заголовки блока Получить объект блока для финализированного блока Получите только заголовок финализированного блока и сводку по чанкам — без содержимого отдельных шардов. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/block_headers - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_block_headers ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/block/{block_height}/headers` - Исходная спецификация: `apis/neardata/v0/block_headers.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/block/9820210/headers - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "block_height": "9820210" }, "query": {} } ``` ### Входные данные - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. ### Параметры пути - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Запрошенный документ или `null`, если выбранный срез отсутствует ### Схема ответа ```json { "type": "object", "description": "Объект уровня блока, возвращаемый `/headers`; соответствует полю `block` полного ответа.", "additionalProperties": true } ``` --- ## NEAR Data API - Оптимистичный блок - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_optimistic - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_optimistic.md # NEAR Data API - Оптимистичный блок Получить оптимистичный блок по высоте Получите оптимистичный (ещё не финализированный) блок на выбранной высоте — может перенаправить на финализированные данные, когда окно оптимистичности закрылось. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/block_optimistic - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_block_optimistic ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/block_opt/{block_height}` - Исходная спецификация: `apis/neardata/v0/block_optimistic.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/block_opt/9820210 - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "block_height": "9820210" }, "query": {} } ``` ### Входные данные - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. ### Параметры пути - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Запрошенный документ или `null`, если выбранный срез отсутствует ### Схема ответа ```json { "type": "object", "description": "Полный документ блока, который отдаёт neardata, включая `block` и `shards`.", "additionalProperties": true } ``` --- ## NEAR Data API - Шард блока - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_shard - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/block_shard.md # NEAR Data API - Шард блока Получить шард из финализированного блока Получите полное содержимое одного шарда на выбранном блоке — чанк плюс изменения состояния и произведённые квитанции. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/block_shard - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_shard ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/block/{block_height}/shard/{shard_id}` - Исходная спецификация: `apis/neardata/v0/block_shard.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/block/50000000/shard/0 - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": { "block_height": "50000000", "shard_id": "0" }, "query": {} } ``` ### Входные данные - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. - `shard_id` (путь, обязательный, string): Идентификатор шарда, который нужно вернуть. ### Параметры пути - `block_height` (путь, обязательный, string): Высота блока NEAR для запроса. - `shard_id` (путь, обязательный, string): Идентификатор шарда, который нужно вернуть. ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Запрошенный документ или `null`, если выбранный срез отсутствует ### Схема ответа ```json { "type": "object", "description": "Объект шарда для указанного ID шарда.", "additionalProperties": true } ``` --- ## NEAR Data API - Первый блок - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/first_block - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/first_block.md # NEAR Data API - Первый блок Перенаправление на первый блок после генезиса Перенаправление на первый блок цепочки после генезиса — стартовый курсор для индексаторов, обходящих цепочку с начала. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/first_block - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_first_block ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/first_block` - Исходная спецификация: `apis/neardata/v0/first_block.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/first_block - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": {}, "query": {} } ``` ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Полный документ блока после автоматического прохождения перенаправления ### Схема ответа ```json { "type": "object", "description": "Полный документ блока, который отдаёт neardata, включая `block` и `shards`.", "additionalProperties": true } ``` --- ## NEAR Data API - Последний финализированный блок - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/last_block_final - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/last_block_final.md # NEAR Data API - Последний финализированный блок Перенаправление на последний финализированный блок Перенаправление на самый свежий финализированный блок — курсор вершины цепочки после достижения консенсуса. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/last_block_final - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_last_block_final ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/last_block/final` - Исходная спецификация: `apis/neardata/v0/last_block_final.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/last_block/final - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": {}, "query": {} } ``` ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Полный документ блока после автоматического прохождения перенаправления ### Схема ответа ```json { "type": "object", "description": "Полный документ блока, который отдаёт neardata, включая `block` и `shards`.", "additionalProperties": true } ``` --- ## NEAR Data API - Последний оптимистичный блок - HTML-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/last_block_optimistic - Markdown-маршрут: https://docs.fastnear.com/ru/apis/neardata/v0/last_block_optimistic.md # NEAR Data API - Последний оптимистичный блок Перенаправление на последний оптимистичный блок Перенаправление на самый свежий оптимистичный блок — максимально свежая вершина, до финализации. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/neardata/v0/last_block_optimistic - https://docs.fastnear.com/ru/apis/neardata/openapi/blocks/get_last_block_optimistic ## Операция - Транспорт: http - Метод: GET - Путь: `/v0/last_block/optimistic` - Исходная спецификация: `apis/neardata/v0/last_block_optimistic.yaml` ## Сети - Mainnet: https://mainnet.neardata.xyz/ - Testnet: https://testnet.neardata.xyz/ ## Авторизация - API-ключ через query `apiKey`: Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. - Этот экспорт намеренно не включает локально сохранённые учётные данные ## Текущий запрос - Сеть: Mainnet - Метод: GET - URL: https://mainnet.neardata.xyz/v0/last_block/optimistic - Активный пример: Mainnet ## Справка по запросу ### Активный пример ```json { "body": null, "headers": {}, "path": {}, "query": {} } ``` ### Параметры запроса - `apiKey` (query, string): Необязательный API-ключ подписки FastNear. Неверные значения могут вернуть `401` до обработки перенаправления. ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Полный документ блока после автоматического прохождения перенаправления ### Схема ответа ```json { "type": "object", "description": "Полный документ блока, который отдаёт neardata, включая `block` и `shards`.", "additionalProperties": true } ``` --- ## Транзакции API - История аккаунта - HTML-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/account - Markdown-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/account.md # Транзакции API - История аккаунта Получить историю транзакций аккаунта Получите историю транзакций аккаунта с необязательными фильтрами по подписанту, статусу успеха и порядку сортировки. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/transactions/v0/account - https://docs.fastnear.com/ru/apis/transactions/openapi/account/get_account ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/account` - Исходная спецификация: `apis/transactions/v0/account.yaml` ## Сети - Mainnet: https://tx.main.fastnear.com/ - Testnet: https://tx.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://tx.main.fastnear.com/v0/account - Активный пример: Mainnet ### Тело запроса ```json { "account_id": "intents.near", "desc": true, "is_real_signer": true, "is_success": true, "limit": 50 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "account_id": "intents.near", "desc": true, "is_real_signer": true, "is_success": true, "limit": 50 }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string) - `desc` (body, boolean) - `from_tx_block_height` (body, integer) - `is_action_arg` (body, boolean) - `is_any_signer` (body, boolean) - `is_delegated_signer` (body, boolean) - `is_event_log` (body, boolean) - `is_explicit_refund_to` (body, boolean) - `is_function_call` (body, boolean) - `is_predecessor` (body, boolean) - `is_real_receiver` (body, boolean) - `is_real_signer` (body, boolean) - `is_receiver` (body, boolean) - `is_signer` (body, boolean) - `is_success` (body, boolean) - `limit` (body, integer) - `resume_token` (body, string) - `to_tx_block_height` (body, integer) ### Схема запроса ```json { "type": "object", "required": [ "account_id" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "desc", "required": false, "schema": { "type": "boolean" } }, { "name": "from_tx_block_height", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "is_action_arg", "required": false, "schema": { "type": "boolean" } }, { "name": "is_any_signer", "required": false, "schema": { "type": "boolean" } }, { "name": "is_delegated_signer", "required": false, "schema": { "type": "boolean" } }, { "name": "is_event_log", "required": false, "schema": { "type": "boolean" } }, { "name": "is_explicit_refund_to", "required": false, "schema": { "type": "boolean" } }, { "name": "is_function_call", "required": false, "schema": { "type": "boolean" } }, { "name": "is_predecessor", "required": false, "schema": { "type": "boolean" } }, { "name": "is_real_receiver", "required": false, "schema": { "type": "boolean" } }, { "name": "is_real_signer", "required": false, "schema": { "type": "boolean" } }, { "name": "is_receiver", "required": false, "schema": { "type": "boolean" } }, { "name": "is_signer", "required": false, "schema": { "type": "boolean" } }, { "name": "is_success", "required": false, "schema": { "type": "boolean" } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "uint" } }, { "name": "resume_token", "required": false, "schema": { "type": "string", "default": null } }, { "name": "to_tx_block_height", "required": false, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "AccountInput" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Набор результатов по истории аккаунта ### Схема ответа ```json { "type": "object", "required": [ "account_txs", "resume_token", "txs_count" ], "additionalProperties": false, "properties": [ { "name": "account_txs", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "account_id", "transaction_hash", "tx_block_height", "tx_block_timestamp", "tx_index", "is_signer", "is_delegated_signer", "is_real_signer", "is_any_signer", "is_predecessor", "is_explicit_refund_to", "is_receiver", "is_real_receiver", "is_function_call", "is_action_arg", "is_event_log", "is_success" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "is_action_arg", "required": true, "schema": { "type": "boolean" } }, { "name": "is_any_signer", "required": true, "schema": { "type": "boolean" } }, { "name": "is_delegated_signer", "required": true, "schema": { "type": "boolean" } }, { "name": "is_event_log", "required": true, "schema": { "type": "boolean" } }, { "name": "is_explicit_refund_to", "required": true, "schema": { "type": "boolean" } }, { "name": "is_function_call", "required": true, "schema": { "type": "boolean" } }, { "name": "is_predecessor", "required": true, "schema": { "type": "boolean" } }, { "name": "is_real_receiver", "required": true, "schema": { "type": "boolean" } }, { "name": "is_real_signer", "required": true, "schema": { "type": "boolean" } }, { "name": "is_receiver", "required": true, "schema": { "type": "boolean" } }, { "name": "is_signer", "required": true, "schema": { "type": "boolean" } }, { "name": "is_success", "required": true, "schema": { "type": "boolean" } }, { "name": "transaction_hash", "required": true, "schema": { "type": "string" } }, { "name": "tx_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "tx_block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "tx_index", "required": true, "schema": { "type": "integer", "format": "uint32" } } ], "refName": "AccountTxRow" } } }, { "name": "resume_token", "required": true, "schema": { "type": "string" } }, { "name": "txs_count", "required": true, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "AccountResponse" } ``` --- ## Транзакции API - Поиск блока - HTML-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/block - Markdown-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/block.md # Транзакции API - Поиск блока Получить блок по высоте или хешу Получите строку блока по высоте или хешу и при необходимости разверните связанные транзакции и квитанции. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/transactions/v0/block - https://docs.fastnear.com/ru/apis/transactions/openapi/blocks/get_block ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/block` - Исходная спецификация: `apis/transactions/v0/block.yaml` ## Сети - Mainnet: https://tx.main.fastnear.com/ - Testnet: https://tx.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://tx.main.fastnear.com/v0/block - Активный пример: Mainnet ### Тело запроса ```json { "block_id": 193916411, "with_receipts": true, "with_transactions": true } ``` ## Справка по запросу ### Активный пример ```json { "body": { "block_id": 193916411, "with_receipts": true, "with_transactions": true }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `block_id` (body, обязательный, integer | string) - `with_receipts` (body, boolean) - `with_transactions` (body, boolean) ### Схема запроса ```json { "type": "object", "required": [ "block_id" ], "additionalProperties": false, "properties": [ { "name": "block_id", "required": true, "schema": { "oneOf": [ { "type": "integer" }, { "type": "string" } ] } }, { "name": "with_receipts", "required": false, "schema": { "type": "boolean" } }, { "name": "with_transactions", "required": false, "schema": { "type": "boolean" } } ], "refName": "BlockInput" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Результат поиска блока ### Схема ответа ```json { "type": "object", "required": [ "блок", "block_txs", "block_receipts" ], "additionalProperties": false, "properties": [ { "name": "блок", "required": true, "schema": { "type": "object", "required": [ "block_height", "block_hash", "prev_block_hash", "block_timestamp", "epoch_id", "next_epoch_id", "chunks_included", "author_id", "protocol_version", "gas_price", "total_supply", "num_transactions", "num_receipts", "gas_burnt", "tokens_burnt" ], "additionalProperties": false, "properties": [ { "name": "author_id", "required": true, "schema": { "type": "string" } }, { "name": "block_hash", "required": true, "schema": { "type": "string" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_ordinal", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "chunks_included", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "epoch_id", "required": true, "schema": { "type": "string" } }, { "name": "gas_burnt", "required": true, "schema": { "type": "string" } }, { "name": "gas_price", "required": true, "schema": { "type": "string" } }, { "name": "next_epoch_id", "required": true, "schema": { "type": "string" } }, { "name": "num_receipts", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "num_transactions", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string" } }, { "name": "prev_block_height", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "protocol_version", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "tokens_burnt", "required": true, "schema": { "type": "string" } }, { "name": "total_supply", "required": true, "schema": { "type": "string" } } ] } }, { "name": "block_receipts", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "receipt_id", "block_height", "block_timestamp", "receipt_index", "appear_block_height", "appear_receipt_index", "transaction_hash", "tx_block_height", "tx_block_timestamp", "tx_index", "predecessor_id", "receiver_id", "receipt_type", "priority", "shard_id", "is_success" ], "additionalProperties": false, "properties": [ { "name": "appear_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "appear_receipt_index", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "is_success", "required": true, "schema": { "type": "boolean" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "priority", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "receipt_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_index", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "receipt_type", "required": true, "schema": { "type": "string" } }, { "name": "receiver_id", "required": true, "schema": { "type": "string" } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "transaction_hash", "required": true, "schema": { "type": "string" } }, { "name": "tx_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "tx_block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "tx_index", "required": true, "schema": { "type": "integer", "format": "uint32" } } ], "refName": "ReceiptTxRow" } } }, { "name": "block_txs", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "transaction_hash", "signer_id", "tx_block_height", "tx_index", "tx_block_hash", "tx_block_timestamp", "last_block_height", "is_completed", "shard_id", "receiver_id", "signer_public_key", "priority_fee", "nonce", "is_relayed", "real_signer_id", "real_receiver_id", "is_success", "gas_burnt", "tokens_burnt" ], "additionalProperties": false, "properties": [ { "name": "gas_burnt", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "is_completed", "required": true, "schema": { "type": "boolean" } }, { "name": "is_relayed", "required": true, "schema": { "type": "boolean" } }, { "name": "is_success", "required": true, "schema": { "type": "boolean" } }, { "name": "last_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "nonce", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "priority_fee", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "real_receiver_id", "required": true, "schema": { "type": "string" } }, { "name": "real_signer_id", "required": true, "schema": { "type": "string" } }, { "name": "receiver_id", "required": true, "schema": { "type": "string" } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "signer_id", "required": true, "schema": { "type": "string" } }, { "name": "signer_public_key", "required": true, "schema": { "type": "string" } }, { "name": "tokens_burnt", "required": true, "schema": { "type": "string" } }, { "name": "transaction_hash", "required": true, "schema": { "type": "string" } }, { "name": "tx_block_hash", "required": true, "schema": { "type": "string" } }, { "name": "tx_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "tx_block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "tx_index", "required": true, "schema": { "type": "integer", "format": "uint32" } } ], "refName": "BlockTxRow" } } } ], "refName": "BlockResponse" } ``` --- ## Транзакции API - Диапазон блоков - HTML-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/blocks - Markdown-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/blocks.md # Транзакции API - Диапазон блоков Получить список блоков Получите ограниченный список индексированных блоков, отсортированный по возрастанию или убыванию. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/transactions/v0/blocks - https://docs.fastnear.com/ru/apis/transactions/openapi/blocks/get_blocks ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/blocks` - Исходная спецификация: `apis/transactions/v0/blocks.yaml` ## Сети - Mainnet: https://tx.main.fastnear.com/ - Testnet: https://tx.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://tx.main.fastnear.com/v0/blocks - Активный пример: Mainnet ### Тело запроса ```json { "desc": false, "from_block_height": 193916402, "limit": 10, "to_block_height": 193916411 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "desc": false, "from_block_height": 193916402, "limit": 10, "to_block_height": 193916411 }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `desc` (body, boolean) - `from_block_height` (body, integer) - `limit` (body, integer) - `to_block_height` (body, integer) ### Схема запроса ```json { "type": "object", "additionalProperties": false, "properties": [ { "name": "desc", "required": false, "schema": { "type": "boolean" } }, { "name": "from_block_height", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "uint" } }, { "name": "to_block_height", "required": false, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "BlocksInput" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Строки блоков ### Схема ответа ```json { "type": "object", "required": [ "блоки" ], "additionalProperties": false, "properties": [ { "name": "блоки", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "block_height", "block_hash", "prev_block_hash", "block_timestamp", "epoch_id", "next_epoch_id", "chunks_included", "author_id", "protocol_version", "gas_price", "total_supply", "num_transactions", "num_receipts", "gas_burnt", "tokens_burnt" ], "additionalProperties": false, "properties": [ { "name": "author_id", "required": true, "schema": { "type": "string" } }, { "name": "block_hash", "required": true, "schema": { "type": "string" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_ordinal", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "chunks_included", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "epoch_id", "required": true, "schema": { "type": "string" } }, { "name": "gas_burnt", "required": true, "schema": { "type": "string" } }, { "name": "gas_price", "required": true, "schema": { "type": "string" } }, { "name": "next_epoch_id", "required": true, "schema": { "type": "string" } }, { "name": "num_receipts", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "num_transactions", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "prev_block_hash", "required": true, "schema": { "type": "string" } }, { "name": "prev_block_height", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "protocol_version", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "tokens_burnt", "required": true, "schema": { "type": "string" } }, { "name": "total_supply", "required": true, "schema": { "type": "string" } } ], "refName": "BlockRow" } } } ], "refName": "BlocksResponse" } ``` --- ## Транзакции API - Поиск квитанции - HTML-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/receipt - Markdown-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/receipt.md # Транзакции API - Поиск квитанции Получить квитанцию по ID Получите квитанцию по ID вместе с транзакцией, её создавшей. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/transactions/v0/receipt - https://docs.fastnear.com/ru/apis/transactions/openapi/receipts/get_receipt ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/receipt` - Исходная спецификация: `apis/transactions/v0/receipt.yaml` ## Сети - Mainnet: https://tx.main.fastnear.com/ - Testnet: https://tx.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://tx.main.fastnear.com/v0/receipt - Активный пример: Mainnet ### Тело запроса ```json { "receipt_id": "gzqDSvd3ZMcVUWzBMP7j9KMWz89iZMkkEvW9g8QZjUP" } ``` ## Справка по запросу ### Активный пример ```json { "body": { "receipt_id": "gzqDSvd3ZMcVUWzBMP7j9KMWz89iZMkkEvW9g8QZjUP" }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `receipt_id` (body, обязательный, string) ### Схема запроса ```json { "type": "object", "required": [ "receipt_id" ], "additionalProperties": false, "properties": [ { "name": "receipt_id", "required": true, "schema": { "type": "string" } } ], "refName": "ReceiptInput" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Результат поиска квитанции ### Схема ответа ```json { "type": "object", "required": [ "квитанция", "транзакция" ], "additionalProperties": false, "properties": [ { "name": "квитанция", "required": true, "schema": { "type": "object", "required": [ "receipt_id", "block_height", "block_timestamp", "receipt_index", "appear_block_height", "appear_receipt_index", "transaction_hash", "tx_block_height", "tx_block_timestamp", "tx_index", "predecessor_id", "receiver_id", "receipt_type", "priority", "shard_id", "is_success" ], "additionalProperties": false, "properties": [ { "name": "appear_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "appear_receipt_index", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "is_success", "required": true, "schema": { "type": "boolean" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "priority", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "receipt_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_index", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "receipt_type", "required": true, "schema": { "type": "string" } }, { "name": "receiver_id", "required": true, "schema": { "type": "string" } }, { "name": "shard_id", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "transaction_hash", "required": true, "schema": { "type": "string" } }, { "name": "tx_block_height", "required": true, "schema": { "type": "integer", "format": "uint64" } }, { "name": "tx_block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "tx_index", "required": true, "schema": { "type": "integer", "format": "uint32" } } ] } }, { "name": "транзакция", "required": true, "schema": { "type": "object", "additionalProperties": true } } ], "refName": "ReceiptResponse" } ``` --- ## Транзакции API - Транзакции по хешу - HTML-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/transactions - Markdown-маршрут: https://docs.fastnear.com/ru/apis/transactions/v0/transactions.md # Транзакции API - Транзакции по хешу Получить транзакции по хешу Получите до 20 индексированных транзакций по хешу в одном запросе. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/transactions/v0/transactions - https://docs.fastnear.com/ru/apis/transactions/openapi/transactions/get_transactions ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/transactions` - Исходная спецификация: `apis/transactions/v0/transactions.yaml` ## Сети - Mainnet: https://tx.main.fastnear.com/ - Testnet: https://tx.test.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://tx.main.fastnear.com/v0/transactions - Активный пример: Mainnet ### Тело запроса ```json { "tx_hashes": [ "FDrh13CdfGPXsmwUpZLfkZCoXWfpQmaFGj4zYWc1qfh", "Eq1a46bynaBAjoSxd2XGWdCxkZdrMvN9jMZVdZfPSjM5" ] } ``` ## Справка по запросу ### Активный пример ```json { "body": { "tx_hashes": [ "FDrh13CdfGPXsmwUpZLfkZCoXWfpQmaFGj4zYWc1qfh", "Eq1a46bynaBAjoSxd2XGWdCxkZdrMvN9jMZVdZfPSjM5" ] }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `tx_hashes` (body, обязательный, array) ### Схема запроса ```json { "type": "object", "required": [ "tx_hashes" ], "additionalProperties": false, "properties": [ { "name": "tx_hashes", "required": true, "schema": { "type": "array", "items": { "type": "string" } } } ], "refName": "TxInput" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Найденные транзакции ### Схема ответа ```json { "type": "object", "required": [ "транзакции" ], "additionalProperties": false, "properties": [ { "name": "транзакции", "required": true, "schema": { "type": "array", "items": { "type": "object", "additionalProperties": true } } } ], "refName": "TransactionsResponse" } ``` --- ## API переводов: запрос переводов - HTML-маршрут: https://docs.fastnear.com/ru/apis/transfers/v0/transfers - Markdown-маршрут: https://docs.fastnear.com/ru/apis/transfers/v0/transfers.md # API переводов: запрос переводов Запросить переводы аккаунта Получите строки переводов для одного аккаунта с необязательными фильтрами по направлению, активу, сумме и времени. ## Ссылки на источник - https://docs.fastnear.com/ru/apis/transfers/v0/transfers - https://docs.fastnear.com/ru/apis/transfers/openapi/transfers/get_transfers_by_account ## Операция - Транспорт: http - Метод: POST - Путь: `/v0/transfers` - Исходная спецификация: `apis/transfers/v0/transfers.yaml` ## Сети - Mainnet: https://transfers.main.fastnear.com/ ## Авторизация - Авторизация не требуется ## Текущий запрос - Сеть: Mainnet - Метод: POST - URL: https://transfers.main.fastnear.com/v0/transfers - Активный пример: Недавние входящие переводы NEAR ### Тело запроса ```json { "account_id": "root.near", "desc": true, "limit": 10 } ``` ## Справка по запросу ### Активный пример ```json { "body": { "account_id": "intents.near", "asset_id": "native:near", "desc": true, "direction": "receiver", "limit": 10, "min_amount": "1000000000000000000000000" }, "headers": {}, "path": {}, "query": {} } ``` ### Входные данные - `account_id` (body, обязательный, string): Идентификатор аккаунта NEAR, для которого нужно получить переводы. - `asset_id` (body, string): Необязательный идентификатор актива, например `near` или ID FT-контракта. - `desc` (body, boolean): Если `true`, сначала возвращаются более новые переводы. - `direction` (body, обязательный, string): Какие переводы вернуть: исходящие (`sender`) или входящие (`receiver`). - `from_timestamp_ms` (body, integer): Нижняя граница времени в миллисекундах UNIX. - `ignore_system` (body, boolean): Если `true`, исключает системные переводы. - `limit` (body, integer): Максимальное количество строк в ответе. - `min_amount` (body, string): Минимальная сумма в базовых единицах актива. - `min_human_amount` (body, number): Минимальная сумма в человекочитаемом виде. - `min_usd_amount` (body, number): Минимальная сумма в долларах США. - `resume_token` (body, string): Непрозрачный токен продолжения из предыдущего ответа. - `to_timestamp_ms` (body, integer): Верхняя граница времени в миллисекундах UNIX. ### Схема запроса ```json { "type": "object", "required": [ "account_id", "direction" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "asset_id", "required": false, "schema": { "type": "string" } }, { "name": "desc", "required": false, "schema": { "type": "boolean" } }, { "name": "direction", "required": true, "schema": { "type": "string", "enum": [ "sender", "receiver" ] } }, { "name": "from_timestamp_ms", "required": false, "schema": { "type": "integer", "format": "uint64" } }, { "name": "ignore_system", "required": false, "schema": { "type": "boolean" } }, { "name": "limit", "required": false, "schema": { "type": "integer", "format": "uint" } }, { "name": "min_amount", "required": false, "schema": { "type": "string", "default": null } }, { "name": "min_human_amount", "required": false, "schema": { "type": "number", "format": "double" } }, { "name": "min_usd_amount", "required": false, "schema": { "type": "number", "format": "double" } }, { "name": "resume_token", "required": false, "schema": { "type": "string", "default": null } }, { "name": "to_timestamp_ms", "required": false, "schema": { "type": "integer", "format": "uint64" } } ], "refName": "TransfersInput" } ``` ## Справка по ответу - Статус: 200 - Тип данных: application/json - Краткое описание: Строки переводов для указанного аккаунта. ### Схема ответа ```json { "type": "object", "required": [ "transfers", "resume_token" ], "additionalProperties": false, "properties": [ { "name": "resume_token", "required": true, "schema": { "type": "string" } }, { "name": "transfers", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "block_height", "block_timestamp", "receipt_id", "transfer_index", "signer_id", "predecessor_id", "receipt_account_id", "account_id", "asset_id", "asset_type", "amount", "transfer_type" ], "additionalProperties": false, "properties": [ { "name": "account_id", "required": true, "schema": { "type": "string" } }, { "name": "action_index", "required": false, "schema": { "type": "integer", "format": "uint16" } }, { "name": "amount", "required": true, "schema": { "type": "string" } }, { "name": "asset_id", "required": true, "schema": { "type": "string" } }, { "name": "asset_type", "required": true, "schema": { "type": "string" } }, { "name": "block_height", "required": true, "schema": { "type": "string" } }, { "name": "block_timestamp", "required": true, "schema": { "type": "string" } }, { "name": "end_of_block_balance", "required": false, "schema": { "type": "string" } }, { "name": "human_amount", "required": false, "schema": { "type": "number", "format": "double" } }, { "name": "log_index", "required": false, "schema": { "type": "integer", "format": "uint16" } }, { "name": "method_name", "required": false, "schema": { "type": "string" } }, { "name": "other_account_id", "required": false, "schema": { "type": "string" } }, { "name": "predecessor_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_account_id", "required": true, "schema": { "type": "string" } }, { "name": "receipt_id", "required": true, "schema": { "type": "string" } }, { "name": "signer_id", "required": true, "schema": { "type": "string" } }, { "name": "start_of_block_balance", "required": false, "schema": { "type": "string" } }, { "name": "transaction_id", "required": false, "schema": { "type": "string" } }, { "name": "transfer_index", "required": true, "schema": { "type": "integer", "format": "uint32" } }, { "name": "transfer_type", "required": true, "schema": { "type": "string" } }, { "name": "usd_amount", "required": false, "schema": { "type": "number", "format": "double" } } ], "refName": "TransferRow" } } } ], "refName": "TransfersResponse" } ```