Кошелёк тратит UTXO целиком и создаёт сдачу

Cardano хранит value в отдельных unspent transaction outputs. Если нужный native token лежит в UTXO вместе с ADA и другими assets, транзакция использует весь UTXO как input. Затем builder создаёт recipient output, change output и fee balance — нельзя вынуть один token, оставив старый UTXO частично нетронутым.

Базовую механику удобно сравнить с объяснением UTXO и сдачи, но Cardano output может содержать multi-asset bundle, datum и reference script. Поэтому размер и minimum ADA меняются вместе со структурой output.

Где возникает требование minimum ADA
Часть транзакцииЧто в ней лежитЧто проверить
Recipient outputОтправляемые tokens и ADAТочный serialized size и min lovelace
Change outputОстаток ADA и всех неотправленных assetsНе раздробил ли builder bundle слишком мелко
Script outputValue, datum, reference scriptДополнительный размер и актуальные rules
FeeОтдельный расход ADAADA хватает одновременно на outputs и fee
Где возникает требование minimum ADA
Часть транзакции
Recipient output
Что в ней лежит
Отправляемые tokens и ADA
Что проверить
Точный serialized size и min lovelace
Часть транзакции
Change output
Что в ней лежит
Остаток ADA и всех неотправленных assets
Что проверить
Не раздробил ли builder bundle слишком мелко
Часть транзакции
Script output
Что в ней лежит
Value, datum, reference script
Что проверить
Дополнительный размер и актуальные rules
Часть транзакции
Fee
Что в ней лежит
Отдельный расход ADA
Что проверить
ADA хватает одновременно на outputs и fee

Размер token bundle определяет lovelace floor

Текущая официальная integration guide описывает CIP-55 расчёт как (160 + serialized_output_size) × coinsPerUTxOByte. Protocol parameter получают из выбранной сети и свежего состояния. Число единиц одного token type не увеличивает перечень asset identifiers, но новые policy IDs и asset names делают bundle больше.

Decimals влияют на отображение количества, а не снимают min-ADA с output. Перед подписью отдельно проверьте raw balance и decimals, чтобы не путать минимальный lovelace с количеством отправляемого native token.

Пересобрать, а не добавлять ADA вслепую

Runbook диагностики

  1. 1
    Обновить UTXO set

    Получите свежий список inputs на правильной сети; сохраните txid#index, lovelace и полный multi-asset value каждого кандидата.

  2. 2
    Определить outputs

    Запишите адрес, token quantities, datum/reference script и предполагаемую сдачу. Не рассчитывайте только recipient output.

  3. 3
    Получить protocol parameters

    Зафиксируйте coinsPerUTxOByte, network/era, node or provider version и block/slot проверки.

  4. 4
    Выполнить coin selection

    Пусть актуальный builder выберет достаточные token и ADA inputs, вычислит fee и сформирует валидную сдачу.

  5. 5
    Проверить каждый output

    Сравните фактический lovelace с вычисленным минимумом после окончательной сериализации, а не до добавления datum или change.

  6. 6
    Подписать свежий body

    Если input уже потрачен или состояние изменилось, получите UTXO заново и перестройте транзакцию; не переподписывайте stale body.

Coin selection должен учитывать каждый asset и fee одновременно. Консолидация может уменьшить число inputs, но объединение многих token types способно увеличить размер change output и его minimum ADA; универсальной стратегии без расчёта нет. Если change нельзя сформировать валидно, добавление ADA только recipient output не исправляет остаток: нужен другой набор inputs, иное разбиение bundle или дополнительный ADA input.

Stop и recovery
СигналПочему остановитьсяRecovery
Wallet предлагает token-only outputТакой output не соответствует native-token ruleОбновить wallet/builder и добавить вычисленный min ADA
Minimum взят из старого скриншотаProtocol parameter и output size не доказаныПолучить свежие parameters и пересчитать
Recipient проходит, change слишком малВалидность нужна каждому outputИзменить inputs, bundle split или добавить ADA
BadInputsUTxOВыбранный input уже потраченОбновить UTXO set и полностью перестроить
Неизвестны datum/reference scriptРазмер и script boundary неполныДекодировать output до подписи
Stop и recovery
Сигнал
Wallet предлагает token-only output
Почему остановиться
Такой output не соответствует native-token rule
Recovery
Обновить wallet/builder и добавить вычисленный min ADA
Сигнал
Minimum взят из старого скриншота
Почему остановиться
Protocol parameter и output size не доказаны
Recovery
Получить свежие parameters и пересчитать
Сигнал
Recipient проходит, change слишком мал
Почему остановиться
Валидность нужна каждому output
Recovery
Изменить inputs, bundle split или добавить ADA
Сигнал
BadInputsUTxO
Почему остановиться
Выбранный input уже потрачен
Recovery
Обновить UTXO set и полностью перестроить
Сигнал
Неизвестны datum/reference script
Почему остановиться
Размер и script boundary неполны
Recovery
Декодировать output до подписи

Итоговый артефакт содержит network, block/slot, inputs, полный value каждого output, serialized size, coinsPerUTxOByte, computed minimum, fee и tx hash после inclusion. Затем выполните проверку транзакции по тем же outputs, а не только по уменьшившемуся wallet balance.

Источники

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

  1. Cardano Docs — Native tokens Cardano Foundation · Проверено 23 августа 2026 г. в 20:00 GMT+5
  2. Cardano Docs — Extended UTXO model Cardano Foundation · Проверено 23 августа 2026 г. в 20:00 GMT+5
  3. Cardano Developer Portal — Exchange integrations Cardano Foundation · Проверено 23 августа 2026 г. в 20:00 GMT+5
  4. Intersect cardano-node — Release 11.0.1 IntersectMBO · Проверено 23 августа 2026 г. в 21:16 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.