Memo
Memo (мемо, тег, Destination Tag, комментарий к переводу) — это дополнительное поле транзакции в ряде блокчейнов, куда отправитель записывает число или короткий текст для получателя. Централизованные биржи по memo определяют, какому клиенту зачислить перевод, пришедший на общий адрес площадки.
Название поля зависит от сети: в XRP Ledger его называют Destination Tag, в Stellar и сетях на Cosmos SDK просто memo, в TON комментарием. Содержимое memo сеть не проверяет: поле читает только программа получателя. Вопрос, что такое memo при переводе криптовалюты, обычно возникает при пополнении биржи: без этого поля монеты доходят до адреса площадки, но не попадают на счёт клиента.
Memo в разных сетях
Формат поля задаёт протокол сети, и от него зависит, что именно биржа просит вписать: число, буквы или их сочетание. Ограничения по длине тоже у каждой сети свои: лимит Stellar в 28 байт вмещает 28 латинских букв, но только 14 кириллических, потому что в кодировке UTF-8 русская буква занимает два байта. Для возврата платежа в Stellar предусмотрен отдельный тип memo, в который записывают хеш возвращаемого перевода.
Сеть | Название поля | Формат значения |
|---|---|---|
XRP Ledger | Destination Tag | целое число от 0 до 4 294 967 295 (32 бита) |
Stellar | memo | текст до 28 байт, целое неотрицательное число (64 бита) или 32-байтовый хеш |
TON | комментарий | текст |
Сети на Cosmos SDK, в том числе Cosmos Hub с монетой ATOM | memo | текст; лимит длины каждая сеть задаёт сама: по умолчанию в Cosmos SDK 256 байт, в Cosmos Hub 512, значение меняется голосованием сети |
Биржа выдаёт memo вместе с адресом депозита, и значение у каждого клиента своё: оно работает как номер счёта клиента внутри площадки. Биржи, принимающие монеты в сети TON, обычно сверяют комментарий посимвольно, с учётом регистра, поэтому его копируют без изменений.
Зачем биржам общий адрес с memo
Общий адрес с memo экономит площадке резерв, который сеть замораживает на каждом счёте. 2 декабря 2024 года валидаторы XRP Ledger снизили базовый резерв счёта с 10 до 1 XRP; величину резерва сеть меняет голосованием. В Stellar минимальный остаток счёта равен двум базовым резервам; базовый резерв устанавливает голосование сети, и пересматривают его редко. Отдельный счёт под каждого клиента означал бы замороженный резерв на каждом из них, а общий адрес с тегами обходится одним счётом. Документация XRP Ledger описывает такую схему для размещённых счетов, где теги работают в обе стороны:
тег назначения указывает клиента, которому зачисляют входящий платёж;
тег источника подсказывает получателю, куда отправить возврат;
при возврате входящий тег источника становится исходящим тегом назначения.
Там, где биржа выдаёт клиенту собственный адрес пополнения, memo не нужен: клиента определяет сам адрес. Поэтому в одном приложении биржи поле memo появляется только для части сетей, и при смене сети форму пополнения перечитывают заново.
Перевод без memo: что происходит
Ошибка с memo обычно не уничтожает монеты, но превращает автоматическое зачисление в ручной разбор. Исходы зависят от сети и площадки:
memo не указан: перевод подтверждается в сети как обычно, монеты приходят на общий адрес, но не зачисляются; KuCoin в справке предупреждает, что без memo или с неверным memo средства не поступят на счёт;
указан чужой memo: перевод может зачислиться другому клиенту площадки, и вернуть его можно только через службу помощи площадки;
восстановление: площадка разбирает заявку по хешу перевода, сети, адресу и сумме; KuCoin принимает такие заявки через форму самообслуживания для ряда монет, в том числе XRP, XLM и ATOM, а в остальных случаях через службу помощи;
плата за восстановление: Kraken предупреждает, что разбор может быть платным в зависимости от сложности, KuCoin публикует собственный тариф, а филиппинская Coins.ph в ноябре 2023 года ввела фиксированную плату 5 $ за разбор перевода с неверным тегом; размер сверяют по действующим правилам площадки;
защита от перевода без memo: если владелец адреса в XRP Ledger включил RequireDest, сеть отклонит перевод без тега, и монеты, кроме комиссии сети, останутся у отправителя; в Stellar по стандарту SEP-29 владелец помечает адрес, и кошелёк отправителя, поддерживающий стандарт, не даст отправить перевод без memo.
Для заявки площадке нужен хеш перевода, поэтому его сохраняют сразу и обращаются в службу помощи той площадки, на чей адрес ушли монеты. Площадки обычно не гарантируют восстановление, и сроки разбора у них разные.
Когда memo нужен, а когда нет
Memo нужен при пополнении биржи или другого сервиса, который принимает монеты многих клиентов на один адрес. При выводе на личный кошелёк поле обычно оставляют пустым, потому что адрес принадлежит одному владельцу. Монеты в этом случае привязаны к самому адресу, и пустое поле зачислению не мешает.
Memo записывается в публичный реестр навсегда и виден любому, кто откроет перевод в обозревателе блоков, поэтому имя, телефон, номер договора и другие личные данные в это поле не пишут, а постоянный тег биржи и без них связывает все переводы одного клиента. Значение memo копируют из личного кабинета площадки целиком, а не набирают вручную, и сверяют вместе с адресом и сетью перед подтверждением. Если площадка требует memo, а кошелёк отправителя такого поля не показывает, перевод не отправляют, пока не найден способ его заполнить. Первый перевод на новый адрес с memo разумно сделать на небольшую сумму и дождаться зачисления. Ошибка в поле, которое сеть даже не проверяет, оборачивается ручным разбором, а иногда и платой за восстановление.
