Burn Native Tokens - Minimum UTxO threshold not met for tx output

Hi I have 380 mil tokens minted and need to burn 190 mil, I am getting this error on my tx build :slight_smile:
/Applications/Daedalus\ Mainnet.app/Contents/MacOS/cardano-cli transaction build \

–mainnet \

–alonzo-era \

–tx-in $txhash#$txix \

–tx-out $targetaddr+$output\ $policyid.$tokenname \

–change-address $changeaddr \

–mint="-188655202"\ $policyid.$tokenname \

–minting-script-file policy/policy.script \

–out-file burning.raw

And if I add $amount to --tx-out I get this new error

Non-Ada assets are unbalanced: 1481209 lovelace + -378655202

You probably do not have enough ADA for 2 outputs. Use only the --change-address to send everything left after burning the tokens to the change address, or use another input with some ADA to be able to have 2 outputs for the transaction. Every output needs at least 1 ADA, and if it contains other tokens, around 1.4 ADA (depending on the token).

Hi Thanks I think there was only one --tx-out and the --change-address so should only be liable for one charge right ? I can put more ADA in the $paymentaddr and try again although I did look at some other docs on Github then I did this and almost got it to submit,

It let me build the burning.raw and burntx.signed but would not submit.
Although I used transaction build-raw instead of transaction build, this then said --mainnet and --change-address was now an invalid option when using build-raw.

So heres my process to get this far.

  1. Build Raw burntx.raw

cardano-cli transaction build-raw
–tx-in $txhash#$txix
–tx-out $targetaddr+$output\ $policyid.$tokenname
–mint="-190000000"\ $policyid.$tokenname
–fee 1344798
–invalid-hereafter 52317489
–minting-script-file policy/policy.script
–out-file burning.raw

  1. Sign burntx.signed
    cardano-cli transaction sign
    –tx-body-file burning.raw
    –signing-key-file payment.skey
    –mainnet
    –out-file burntx.signed

  2. Submit
    cardano-cli transaction submit --mainnet --tx-file burntx.signed

====ERROR ====

Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraAlonzo (ApplyTxError [UtxowFailure (WrappedShelleyEraFailure (ScriptWitnessNotValidatingUTXOW (fromList [ScriptHash “8dec95dfd60b05de0c97a703e1d1baff330fb0f4cba86b92e005aa4a”]))),UtxowFailure (WrappedShelleyEraFailure (UtxoFailure (OutputTooSmallUTxO [(Addr Mainnet (KeyHashObj (KeyHash “b5dffff86532fc446e38414f1ed196e7e1ad7b50839fc0a7da425fac”)) (StakeRefBase (KeyHashObj (KeyHash “baf9b836718d414418b33d56f37345854cab5785d7c144f43e48961d”))),Value 0 (fromList [(PolicyID {policyID = ScriptHash “8dec95dfd60b05de0c97a703e1d1baff330fb0f4cba86b92e005aa4a”},fromList [(“Vilvi”,1655202)])]),SNothing)]))),UtxowFailure (WrappedShelleyEraFailure (UtxoFailure (ValueNotConservedUTxO (Value 3000000 (fromList [(PolicyID {policyID = ScriptHash “8dec95dfd60b05de0c97a703e1d1baff330fb0f4cba86b92e005aa4a”},fromList [(“Vilvi”,-190000000)])])) (Value 1344798 (fromList [(PolicyID {policyID = ScriptHash “8dec95dfd60b05de0c97a703e1d1baff330fb0f4cba86b92e005aa4a”},fromList [(“Vilvi”,1655202)])])))))])

When trying transaction build instead of build-raw I get this error with UTXO

cardano-cli transaction build
–mainnet
–alonzo-era
–tx-in $txhash#$txix
–tx-out $targetaddr+$output\ $policyid.$tokenname
–mint="-190000000"\ $policyid.$tokenname
–change-address $changeaddr
–invalid-hereafter 52317489
–minting-script-file policy/policy.script
–out-file burning.raw

Minimum UTxO threshold not met for tx output:

You are not putting any ADA in that --tx-out. Put the minimum it tells you in there. --tx-out $targetaddr+<minimal ADA>+$output\ $policyid.$tokenname

We already had that in more detail, here:

That was for sending the tokens, for minting it was here, but it is the same idea:

Thanks again so much am stuck here so if I find out the minimum use your version of --tx-out ?

–tx-out $targetaddr++$output\ $policyid.$tokenname

How do I find the minimum is it not always the same number ?

You said that cardano-cli answered with:

The required minimum is printed right in the next line after that.

Yes it is Minimum required UTxO: Lovelace 1344798

So

–tx-out $targetaddr+1344798+$output\ $policyid.$tokenname

Does that look right ?

New Error after submitting Transaction build

Non-Ada assets are unbalanced: 1480945 lovelace + -191655202

Looks right.

When we last did this, we were using $output for the ADA and $amount for the amount of tokens. But it doesn’t matter those are just variables.

output=1655202

I think its trying to balance the native tokens in the remaining wallet ?

How many tokens are in the --tx-in that you are giving in there, how many are you trying to put back in the --tx-out?

If we are talking native tokens there is a balance of 380 million


0000000

If thats what you mean

And in my paymentaddr

                       TxHash                                 TxIx        Amount

aaf418d6948a622ead1af7b189da09c55951fd5fce1133232d8dd486fb9b68a7 0 2000000 lovelace + TxOutDatumNone
eb5d76b23708138c1b0895f724f3d261049001937a970b3e2fe76268c309d85d 0 3000000 lovelace + TxOutDatumNone

echo $txhash

eb5d76b23708138c1b0895f724f3d261049001937a970b3e2fe76268c309d85d

If the tokens are not in your $paymentaddr, you cannot burn them.

ok thats a major revelation thanks so I need to send them to the paymentaddr ?

Yes, if you want to burn them, yes.

Ok its asking me for an Ada amount how much shall I put 1.344798 ?

I’ll move 190 million now

As many as you want. It will tell you it it is too low to go with the tokens. In your $paymentaddr you have enough. You can always add another --tx-in to have enough for the transactions. If you don’t want to do that, you can send like 2 ADA to have enough for the transaction fee of the burning.

Annoyingly I did not have enough ada to send the 190million so had to send more ada from another wallet to help cover the fees on the native token wallet just awaiting that transaction to clear and then I will send to the paymentaddr.

So after it arrives I am guessing all the ada outputs may change or can I use the same ?