Сначала найдите точную связь аккаунта с токеном

Hedera Token Service (`HTS`) хранит отдельную связь для каждой пары аккаунта и токена. В документации она называется `token relationship`. Запросите её через `SDK`, узел консенсуса или API зеркального узла (`mirror node`). Зафиксируйте сеть, `account ID`, `token ID`, идентификатор транзакции и её тип. Нулевой баланс не доказывает отсутствие связи, а одинаковый тикер не доказывает совпадение токена. Исходный баланс (`raw balance`) показывает целую сумму, а `decimals` — число десятичных разрядов.

`CryptoTransfer` — обычная транзакция перевода. Поле `maxAutoAssociations` задаёт число автоматических связей, а `usedAutoAssociations` показывает занятые слоты. Значение `-1` означает отсутствие предела, `0` отключает автоматическую привязку. Флаг `receiver_sig_required` означает, что входящий перевод требует подписи получателя.

Матрица решения для обычного `CryptoTransfer`
Состояние до переводаОжидаемый результатСледующая проверка
Связь уже естьНовый слот не нуженПодпись, баланс, KYC, заморозка и комиссии токена
Связи нет, `maxAutoAssociations = -1`Связь может создаться автоматическиОстальные правила токена и подписи
Связи нет, свободен положительный лимитЗанимается один автоматический слотАктуальные `max` и `used` на одной высоте
Связи нет, `maxAutoAssociations = 0``TOKEN_NOT_ASSOCIATED_TO_ACCOUNT`Ручная привязка через `TokenAssociate`
Связи нет, положительный лимит исчерпан`NO_REMAINING_AUTOMATIC_ASSOCIATIONS`Ручная привязка или изменение лимита аккаунта
`receiver_sig_required = true`Нужна подпись получателя при любом состоянии связиФактический код ошибки и подписанные байты
Матрица решения для обычного `CryptoTransfer`
Состояние до перевода
Связь уже есть
Ожидаемый результат
Новый слот не нужен
Следующая проверка
Подпись, баланс, KYC, заморозка и комиссии токена
Состояние до перевода
Связи нет, `maxAutoAssociations = -1`
Ожидаемый результат
Связь может создаться автоматически
Следующая проверка
Остальные правила токена и подписи
Состояние до перевода
Связи нет, свободен положительный лимит
Ожидаемый результат
Занимается один автоматический слот
Следующая проверка
Актуальные `max` и `used` на одной высоте
Состояние до перевода
Связи нет, `maxAutoAssociations = 0`
Ожидаемый результат
`TOKEN_NOT_ASSOCIATED_TO_ACCOUNT`
Следующая проверка
Ручная привязка через `TokenAssociate`
Состояние до перевода
Связи нет, положительный лимит исчерпан
Ожидаемый результат
`NO_REMAINING_AUTOMATIC_ASSOCIATIONS`
Следующая проверка
Ручная привязка или изменение лимита аккаунта
Состояние до перевода
`receiver_sig_required = true`
Ожидаемый результат
Нужна подпись получателя при любом состоянии связи
Следующая проверка
Фактический код ошибки и подписанные байты

Если связи нет, разберите лимит до ручной привязки

Автоматически созданные аккаунты сейчас получают `maxAutoAssociations = -1`. Для аккаунта из транзакции создания `CryptoCreate` это предполагать нельзя. При положительном лимите нужны актуальные значения `max` и `used` либо симуляция. Список в кошельке может быть неполным.

Если автоматической связи не будет, используйте `TokenAssociate` — транзакцию ручной привязки. В ней указывают точные `account ID` и `token ID`. Подписывает её ключ ассоциируемого аккаунта. Отправитель не может сделать это незаметно за получателя. После `SUCCESS` запрос должен показать новую связь. Статус `TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT` означает, что она уже существовала.

Что означают близкие статусы
СтатусЧто произошлоКуда смотреть
`TOKEN_NOT_ASSOCIATED_TO_ACCOUNT`Связи нет, автоматическая привязка отключенаТочная пара и `TokenAssociate`
`NO_REMAINING_AUTOMATIC_ASSOCIATIONS`Положительный лимит автоматических связей исчерпанЗначения `max` и `used`
`TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT`Ручная привязка повторяет существующуюВернуться к результату перевода
`INVALID_SIGNATURE` или `RECEIVER_SIG_REQUIRED`Не выполнено требование подписиСтруктура ключа, подписанные байты и точный статус
`ACCOUNT_FROZEN_FOR_TOKEN` или `ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN`Связь есть, но движение блокирует правило токенаЗаморозка, KYC и действия эмитента
Что означают близкие статусы
Статус
`TOKEN_NOT_ASSOCIATED_TO_ACCOUNT`
Что произошло
Связи нет, автоматическая привязка отключена
Куда смотреть
Точная пара и `TokenAssociate`
Статус
`NO_REMAINING_AUTOMATIC_ASSOCIATIONS`
Что произошло
Положительный лимит автоматических связей исчерпан
Куда смотреть
Значения `max` и `used`
Статус
`TOKEN_ALREADY_ASSOCIATED_TO_ACCOUNT`
Что произошло
Ручная привязка повторяет существующую
Куда смотреть
Вернуться к результату перевода
Статус
`INVALID_SIGNATURE` или `RECEIVER_SIG_REQUIRED`
Что произошло
Не выполнено требование подписи
Куда смотреть
Структура ключа, подписанные байты и точный статус
Статус
`ACCOUNT_FROZEN_FOR_TOKEN` или `ACCOUNT_KYC_NOT_GRANTED_FOR_TOKEN`
Что произошло
Связь есть, но движение блокирует правило токена
Куда смотреть
Заморозка, KYC и действия эмитента

Старый статус `TOKENS_PER_ACCOUNT_LIMIT_EXCEEDED` относится к операциям до HIP-367. Официальная документация не указывает общий текущий предел числа токенов. Не объясняйте им новую ошибку без времени консенсуса и квитанции (`receipt`) транзакции.

Требование подписи проверяется отдельно

При `receiver_sig_required = true` входящий `CryptoTransfer` требует ключ получателя. Существующая связь и свободный слот этого не отменяют. Сохраните фактический статус предварительной проверки или `receipt`: перечень `ResponseCodeEnum` содержит разные коды. Не переименовывайте `INVALID_SIGNATURE` в `RECEIVER_SIG_REQUIRED` без данных сети. Содержимое подписи проверяйте локально, не передавая закрытый ключ.

У `TokenAirdrop` есть отдельный ожидающий исход

`TokenAirdrop` — отдельная транзакция раздачи токенов. При готовой связи или свободном слоте она может перевести токен сразу. Без слота возникает `pending airdrop` — ожидающая запись. Токены ещё не списаны у отправителя и не зачислены получателю. Отсутствующая обязательная подпись тоже ведёт в эту запись. Обычный `CryptoTransfer` ожидающую запись не создаёт. Для принятия получатель подписывает транзакцию `TokenClaimAirdrop`.

Как завершить проверку результата
Тип операцииПроверяемый итогЧто делать дальше
`CryptoTransfer``SUCCESS` и изменившийся балансЕсли ошибка — действовать по её точному коду
`TokenAirdrop`Прямой перевод или точная ожидающая записьНе считать ожидающую запись зачислением
`TokenClaimAirdrop`Получатель подписал принятие, связь и перевод выполненыПроверить исчезновение записи и новый баланс
`TokenAssociate``SUCCESS` и новая связьПосле этого отдельно повторить или проверить перевод
Как завершить проверку результата
Тип операции
`CryptoTransfer`
Проверяемый итог
`SUCCESS` и изменившийся баланс
Что делать дальше
Если ошибка — действовать по её точному коду
Тип операции
`TokenAirdrop`
Проверяемый итог
Прямой перевод или точная ожидающая запись
Что делать дальше
Не считать ожидающую запись зачислением
Тип операции
`TokenClaimAirdrop`
Проверяемый итог
Получатель подписал принятие, связь и перевод выполнены
Что делать дальше
Проверить исчезновение записи и новый баланс
Тип операции
`TokenAssociate`
Проверяемый итог
`SUCCESS` и новая связь
Что делать дальше
После этого отдельно повторить или проверить перевод

Перед повтором откройте запись транзакции (`record`) и определите её тип. Название кнопки в кошельке недостаточно. После `SUCCESS` запросите связь, исходный баланс и `record` ещё раз. Общая проверка перевода отделит результат сети от задержки индексатора. Не повторяйте операцию, пока неизвестен её итог.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Hedera account properties Hedera · Проверено 25 августа 2026 г. в 00:08 GMT+5
  2. Hedera token airdrops Hedera · Проверено 25 августа 2026 г. в 00:08 GMT+5
  3. Hedera TokenAssociate Hedera · Проверено 25 августа 2026 г. в 00:08 GMT+5
  4. HIP-904 — frictionless airdrops Hedera Improvement Proposals · Проверено 25 августа 2026 г. в 00:08 GMT+5
  5. Hedera response codes protobuf Hedera Protobufs · Проверено 25 августа 2026 г. в 00:08 GMT+5
  6. Hiero consensus node — CryptoTransfer auto-association step Hiero · Проверено 25 августа 2026 г. в 00:08 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.