Перевести предмет между кошельками с аппаратного кошелька — значит подтвердить на маленьком экране операцию, которую этот экран показывает не полностью. Адрес назначения, который высветит устройство, принадлежит не получателю предмета, а контракту коллекции. Получатель и номер экземпляра спрятаны в поле данных. Если прошивка не умеет разбирать это поле, вы подписываете набор байтов. Отсюда и правило: сверять на экране надо сеть, адрес контракта и расшифрованные аргументы.
Слепая подпись — это подтверждение транзакции, у которой устройство вывело адрес, сумму и плату, но не смогло разобрать поле данных, то есть содержание вызова осталось для владельца ключа непрочитанным.
Что аппаратное устройство защищает, а что нет
Устройство решает одну задачу: закрытый ключ не покидает чип. Против кражи ключа этого достаточно. Против неверного решения — нет. Подпись останется подлинной, даже если подписали не то.
Разница между монетой и коллекционным предметом здесь становится ощутимой. Перевод монеты устройство выводит целиком: адрес получателя, сумма, плата — три поля, каждое читается. Перевод предмета — это вызов функции у постороннего контракта, и на экране от него остаётся адрес этого контракта плюс нечитаемая строка.
Корень трудности описан в стандарте подписи типизированных данных. EIP-712 создан 12 сентября 2017 года, статус Final; в разделе мотивации сказано прямо: подписываемые сообщения сегодня показывают пользователю непрозрачной шестнадцатеричной строкой, почти без сведений о том, из чего сообщение состоит. Для подписи транзакций действует та же логика, и расшифровку берёт на себя прошивка.
Из редакционной практики: владельцы устройств нередко считают экран доказательством безопасности операции. Экран — доказательство её содержания, и только в той мере, в какой прошивка сумела это содержание прочитать.
Как перевести предмет между кошельками с аппаратного кошелька: что выводится на экран
Разберём поля по порядку. Устройство листает их именно так.
| Поле на экране | Что в нём на самом деле | Типичное неверное чтение |
|---|---|---|
| Сеть или идентификатор цепочки | Сеть, в которой уйдёт транзакция | Пропускают, считая, что сеть выбрана в приложении на компьютере |
| Адрес назначения | Адрес контракта коллекции | Принимают за адрес получателя предмета и пугаются незнакомого адреса |
| Сумма | Нуль: предмет не переводится как сумма | Нуль читают как ошибку или как бесплатность всей операции |
| Функция или данные | Имя вызова, если прошивка его опознала, иначе набор байтов | Нечитаемую строку пролистывают, нажимая подтверждение |
| Аргументы вызова | Адрес получателя, номер экземпляра, у второго стандарта ещё и количество | Номер из многих цифр сверяют по первым знакам |
| Плата сети | Предельная сумма платы за эту транзакцию | Считают платой площадки или роялти коллекции |
Второе и четвёртое поля и образуют весь сюжет. Контракт коллекции на экране выглядит как чужой адрес, и это нормально. Нечитаемое поле данных нормальным не является.

Выдача разрешения и перевод на экране почти неразличимы, если прошивка не расшифровала вызов. Оба запроса показывают адрес одного и того же контракта коллекции, нулевую сумму и строку данных, отличающуюся первыми байтами. Там, где устройство вывело имя функции, различие видно сразу: у перевода в аргументах есть получатель предмета, у разрешения получателя предмета нет.
Издержки: комиссии, роялти, газ при подписи на устройстве
Цена операции от выбора устройства не зависит. Структура расходов — зависит.
- Плата сети берётся за каждую подпись отдельно: разрешение, перевод и отзыв разрешения — три транзакции и три платы.
- Перевод между своими адресами тарифа торгового сервиса не создаёт: удержания сервиса возникают при продаже.
- Роялти коллекции при переводе тоже не возникают. ERC-2981 (создан 15 сентября 2020 года, идентификатор интерфейса 0x2a55205a) называет выплату добровольной, поскольку перевод между кошельками сделкой не является.
- Отменённая на устройстве транзакция платы не стоит, если подпись не поставлена: неподписанное в сеть не уходит.
- Повторная попытка после отказа устройства — новая транзакция с новой платой, а не продолжение прежней.
Как складывается итоговая сумма по всем транзакциям операции, разобрано в материале о том, как перевести предмет между кошельками и понять структуру комиссий. Удержания на стороне сервиса показывает текст о том, как разобраться в комиссиях площадки.
Хорошая новость про приём предмета на аппаратный адрес. Такой адрес — обычный внешний счёт без кода, и стандарт ERC-1155 (создан 18 июня 2018 года, идентификатор интерфейса 0xd9b67a26) прямо запрещает вызывать на внешнем счёте приёмные функции onERC1155Received и onERC1155BatchReceived. У ERC-721 проверка получателя тоже срабатывает только при наличии кода по адресу. Значит перевод на аппаратный кошелёк не может сорваться из-за отсутствия приёмного интерфейса.
Обратная сторона известна. Приложение-компаньон устройства показывает далеко не все коллекции: предмет на адресе есть, а в списке приложения его нет, и это ни о чём не говорит. Владение проверяется в обозревателе. Интерфейс производителя здесь не судья.
Пошаговый сценарий сверки на экране
- До подключения устройства выпишите со страницы предмета адрес контракта и номер экземпляра. Сверять на экране нужно с заранее записанным, а не с тем, что показывает та же страница рядом.
- Убедитесь, что приложение нужной сети на устройстве обновлено. Поддержка расшифровки вызовов зависит от версии приложения, и на старой прошивке читаемый ранее перевод превращается в набор байтов.
- Соберите транзакцию в кошельке и начните листать экраны устройства. Первым сверяйте идентификатор цепочки.
- Сверьте адрес назначения с выписанным адресом контракта целиком, знак за знаком. Совпадение первых четырёх и последних четырёх символов ничего не доказывает.
- Проверьте, что сумма нулевая, а имя функции выведено словами. Если на экране только данные без расшифровки, отклоните подпись и разбирайтесь, почему прошивка не опознала вызов.
- В аргументах сверьте адрес получателя и номер экземпляра. Для второго стандарта проверьте ещё и количество: единица там не подразумевается по умолчанию.
- После подтверждения найдите событие смены владельца в журнале транзакции и убедитесь, что номер в нём тот же, что на экране устройства.
Пятый шаг обычно и вызывает спор. Отказ от подписи кажется потерей времени, пока не вспомнишь, что подпись необратима, а повторная сборка транзакции стоит минуту.
Риски: слепая подпись и схемы вокруг неё
Мошеннические сценарии в этом сегменте построены на одном допущении: человек с устройством подтверждает не читая, полагаясь на само наличие устройства.
- Предложение отключить расшифровку вызовов «для совместимости» — так слепая подпись становится штатным режимом.
- Страница, которая просит подписать перевод, а в данных отправляет выдачу прав оператору на всю коллекцию.
- Поддельное обновление прошивки с просьбой ввести резервную фразу: подлинное обновление её не спрашивает никогда.
- Запрос подписи сообщения вместо транзакции: платы нет, экран другой, а последствия отложенные.
- Коллекция с номером из многих цифр, отличающимся от вашего в середине строки: рассчитано на сверку по краям.
Долгое хранение предметов на холодном адресе — отдельный сюжет: как устроены цифровые активы, которые держат годами и используют для участия в жизни клуба, показывает разбор фан-токенов клубов и новой модели участия болельщиков. А на какие подписи соглашаться нельзя даже с устройством в руках, напоминает текст о том, как участвовать в бесплатной раздаче предметов.
Материалы по теме:
- Как перевести предмет между кошельками и понять структуру комиссий — сколько транзакций и плат даёт одна операция.
- Как разобраться в комиссиях площадки — где возникают удержания сервиса и роялти.
- Как участвовать в бесплатной раздаче предметов — какие запросы подписи отклонять сразу.
- Спорт на блокчейне: фан-токены клубов — активы, которые держат на холодном адресе годами.
Итог
Аппаратный кошелёк переносит защиту с компьютера на чип, но решение о подписи остаётся за человеком, и в операции с коллекционным предметом это решение приходится принимать по неполному экрану. Читаемая расшифровка вызова — не удобство, а условие осмысленного подтверждения. Нет расшифровки — нет и подписи.
Первоисточники откройте сами. Предупреждение о непрозрачной шестнадцатеричной строке, которую видит подписывающий, и перечень полей домена подписи — в тексте стандарта EIP-712. Условия проверки получателя и предупреждение о возможной безвозвратной потере при небезопасном переводе — в тексте стандарта ERC-721. Данные сверены на 17 октября 2026 года. Что проверить не удалось: единого перечня коллекций и площадок, чьи вызовы умеет расшифровывать конкретная прошивка, производители не публикуют, и глубину поддержки приходится выяснять на самом устройстве до операции.
Частые вопросы
Почему на экране устройства незнакомый адрес, а не адрес получателя?
Так и должно быть. Транзакция адресована контракту коллекции, он и выводится в поле назначения. Адрес человека, которому уходит предмет, лежит в аргументах вызова и виден только после расшифровки поля данных. Сверяйте адрес назначения с адресом контракта со страницы предмета, а получателя ищите ниже, в разобранных аргументах.
Устройство показывает нулевую сумму. Операция не сработает?
Сработает. Предмет не передаётся как сумма: он меняет владельца внутри контракта, а сама транзакция денег не несёт. Нуль в поле суммы — штатная картина для перевода коллекционного предмета. Отличать его нужно от нулевой платы сети: плата ненулевая всегда, и она выводится отдельным экраном.
Что делать, если прошивка не расшифровала поле данных?
Отклонить подпись. Дальше обновить приложение нужной сети на устройстве и повторить сборку транзакции. Если расшифровка не появилась, выполните перевод из интерфейса, который формирует стандартный вызов перевода, а не собственную функцию площадки. Подписывать нечитаемые байты, опираясь на подпись страницы, значит отдавать решение странице.
Может ли перевод на аппаратный кошелёк не дойти из-за проверки получателя?
Нет. Адрес устройства — внешний счёт без кода, и стандарт второго семейства прямо запрещает вызывать на таком счёте приёмные функции, а проверка в первом семействе срабатывает лишь при наличии кода по адресу. Предмет придёт. Другое дело, что приложение производителя может его не отобразить, и проверять владение стоит в обозревателе.
Чем отличается подпись сообщения от подписи транзакции на устройстве?
Платой и следом. Транзакция уходит в сеть, стоит денег и видна в обозревателе сразу. Подпись сообщения платы не требует, в сети не появляется и может быть предъявлена позже, когда вы об этом забудете. Экран в этом случае показывает поля структуры, а не адрес и сумму, и читать их нужно внимательнее.
Вердикт
Устройство защищает ключ, а не владельца, и в сегменте коллекционных предметов этот зазор шире, чем при работе с монетами: на экране нет ни картинки, ни имени коллекции, а номер экземпляра выглядит как случайная длинная цифра. Редакционное правило здесь жёсткое: нечитаемое поле данных — повод отклонить подпись, а не повод пролистать экран. Пара выписанных заранее величин, адрес контракта и номер, превращает сверку в механическую процедуру на тридцать секунд. Остальное делает прошивка, если она умеет.
Разборы операций с коллекционными предметами и предупреждения о свежих схемах выходят в нашем Telegram-канале Cryptium.
Обсуждение
Добавить комментарий