Чтобы вывести внутриигровые активы за пределы игры и сохранить хеш операции, скопируйте идентификатор транзакции сразу после подписи и запишите его вместе с адресом контракта и номером предмета. Хеш — единственная ссылка, по которой запись о выводе находится без вашего кошелька. Он доказывает факт операции и её содержимое. Прав внутри игры он не доказывает. Эту границу стоит понимать заранее.

Хеш операции — это идентификатор длиной 32 байта, который получается из подписанных полей транзакции и служит адресом записи в журнале сети, по нему восстанавливаются участники, вызванный контракт и результат исполнения.

Что происходит с сегментом сейчас

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

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

Есть и вторая причина. Предмет в отличие от суммы кажется уникальным сам по себе: «он один такой, его найдут». Поиск по номеру предмета покажет текущего владельца, но не покажет, какая именно операция и когда его переместила. Для разговора с поддержкой нужна операция, а не владелец.

В поле receipt сеть записывает статус исполнения: 1 означает успех, 0 — отказ. Правило введено стандартом EIP-658, документ создан 30 июня 2017 года, статус Final; сверено 16 октября 2026 года по тексту на eips.ethereum.org. Отсюда следует практический вывод: идентификатор существует и у неудавшейся операции, он находится в сети так же, как успешный, и сам по себе о результате не говорит ничего.

Как вывести внутриигровые активы за пределы игры и сохранить хеш операции

Порядок короткий, но в нём есть два места, где идентификатор теряется.

  1. Запустите вывод в интерфейсе игры и дождитесь окна подписи в кошельке. Проверьте в этом окне адрес вызываемого контракта: он должен совпадать с адресом коллекции из описания предмета.
  2. Подтвердите операцию. Кошелёк покажет хеш сразу — до включения в блок. Скопируйте его в этот момент: окно закроется, и в части интерфейсов идентификатор уже не найти.
  3. Дождитесь включения записи в блок и проверьте статус исполнения. Хеш с отказом фиксирует попытку: предмет остался на прежнем адресе, плата за вычисления списана.
  4. Запишите четыре поля в одну строку: хеш, адрес контракта коллекции, номер предмета, дату и время операции. Такая строка самодостаточна и читается через год.
  5. Продублируйте строку вне кошелька — в заметке, почте или файле. Переустановка приложения историю не сохраняет, а адрес и ключ её не восстанавливают.

Второе место потерь — смена сети. Вывод мог пройти не там, где вы ищете. Идентификатор, найденный в одной сети, в другой не существует, и поиск по нему вернёт пустоту вместо ошибки. Поэтому в строку стоит добавлять ещё и название сети.

Схема из пяти шагов: подписать операцию вывода, скопировать хеш до закрытия окна, проверить статус исполнения, записать хеш с контрактом и номером предмета, продублировать запись вне кошелька
Схема из пяти шагов: подписать операцию вывода, скопировать хеш до закрытия окна, проверить статус исполнения, записать хеш с контрактом и номером предмета, продублировать запись вне кошелька

Как устроена операция технически

Идентификатор не присваивается сетью. Он вычисляется из тех самых полей, которые вы подписали, поэтому изменить любое поле — значит получить другой хеш. В набор подписываемых данных входит номер сети: по стандарту EIP-155 при вычислении хеша для подписи хешируются девять элементов, включая chainid, а значение подписи сдвигается на chainId, умноженный на два, плюс 35 или 36. Документ создан 14 октября 2016 года, сверено 16 октября 2026 года.

Из этого следует свойство, полезное для споров. Одна и та же операция не может существовать в двух сетях с одинаковым идентификатором. Хеш жёстко привязан к сети, и ссылка на него однозначна, если сеть указана. Без указания сети ссылка неполна.

Содержимое записи раскрывается через журнал событий. Стандарт ERC-721 требует, чтобы при смене владельца возникало событие Transfer с тремя индексированными полями: отправитель, получатель, номер предмета. По хешу эти поля читаются напрямую, и по ним устанавливается, какой именно предмет какой именно коллекции перешёл с какого адреса на какой, без обращения к игре и без её согласия. Единая форма записи идентификатора предмета описана отдельно: спецификация CAIP-19 собирает его из номера сети, адреса контракта и номера экземпляра.

Что хеш доказывает, а что нет

Устанавливается по хешу Не устанавливается по хешу
Адрес контракта коллекции, к которому обратилась операция Что коллекция подлинная, а не одноимённая копия
Номер предмета в этой коллекции Какие возможности предмет даёт внутри игры
Адреса отправителя и получателя Кто физически стоит за этими адресами
Статус исполнения: успех или отказ Что игра засчитала вывод в своей базе
Номер блока и время включения Что операция была добровольной и осознанной

Правая колонка — источник большинства разочарований. Человек приносит в поддержку хеш и ждёт, что по нему признают его права на внутриигровые возможности. Хеш о правах молчит: он описывает перемещение записи о владении, тогда как объём игровых возможностей задаётся правилами проекта и способен измениться с очередным обновлением клиента. Доказательством владения записью идентификатор служит безупречно, доказательством отношений с издателем — никак. Запись как аргумент для третьей стороны мы разбирали на примере NFT-билетов и проверки подлинности прохода.

Хеш с нулевым статусом доказывает отказ, а не успех. Такую запись тоже стоит сохранять: она подтверждает, что попытка вывода была предпринята и в какой именно момент, если игра впоследствии станет утверждать обратное или сошлётся на отсутствие обращения. Но ссылаться на неё как на доказательство вывода нельзя.

Издержки: комиссии, роялти, газ

Плата за вычисления списывается независимо от результата: сеть выполнила работу, даже если операция завершилась отказом. Отсюда ситуация, которая выглядит несправедливой и при этом нормальна: средства ушли, предмет на месте. Сбор издателя за вывод, если он есть, живёт по правилам игры и в сетевой записи не отражается. Роялти коллекции при выводе не возникает — оно относится к продаже. Чтобы отделить сбор сервиса от сетевой платы в самой записи, стоит сначала разобраться в комиссиях площадки.

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

Риски и мошеннические схемы сегмента

Идентификатор — публичная величина, и на этом строятся схемы.

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

Третья схема эксплуатирует желание сохранить историю: «сервис резервного копирования операций» просит подключить кошелёк и подписать запрос. Для хранения хешей подпись не нужна вообще — достаточно текстового файла. Запрос подписи в такой задаче сам по себе сигнал. Похожий приём встречается и там, где обещают участвовать в бесплатной раздаче предметов по «подтверждённой истории операций».

Итог

Сохранённый хеш превращает спор о словах в спор о записи. Это дешёвая страховка: одна строка текста, пять секунд работы. Запишите к хешу название сети, адрес контракта и номер предмета — без этих полей идентификатор через полгода превращается в ссылку в пустоту, которую не раскроет ни поддержка, ни обозреватель. И не ждите от него большего, чем он содержит: содержимое записи ограничено полями операции и журналом событий.

Первоисточники короткие. Правило статуса исполнения описано в стандарте EIP-658 на eips.ethereum.org, а привязка подписи к конкретной сети — в стандарте EIP-155 о защите от повтора транзакций. Оба документа объясняют, почему хеш однозначен и почему он не переносится между сетями.

Частые вопросы

Я закрыл окно кошелька и не скопировал хеш. Всё потеряно?

Нет. Запись находится по вашему адресу: в истории операций адреса она лежит с датой и временем. Сложность возникает, если кошелёк переустановлен и адресов было несколько. Тогда перебор по каждому адресу занимает время, но результат тот же. Поэтому и стоит копировать идентификатор сразу.

Игра дала номер операции. Это тот же хеш?

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

Статус операции — единица. Значит, предмет у меня?

Значит, что операция исполнена без отказа. Владелец определяется полем получателя в событии Transfer и текущим ответом контракта о владельце номера. Единица в статусе сама по себе не говорит, в чью пользу прошло перемещение. Сверяйте адрес получателя со своим, а не только статус.

Можно ли по хешу доказать, что предмет даёт права в игре?

Нет. По хешу устанавливаются адрес контракта, номер предмета, участники и результат исполнения. Объём игровых возможностей задаётся правилами игры и обновлениями клиента, в записи сети его нет. Доказывать права придётся документами проекта, а не идентификатором операции.

Вердикт

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

Разборы операций с предметами и наблюдения редакции публикуем в нашем Telegram-канале.