Burns fungible and non-fungible tokens owned by the Treasury Account. If no Supply Key is defined, the transaction will resolve to TOKEN_HAS_NO_SUPPLY_KEY.
The operation decreases the Total Supply of the Token.
Total supply cannot go below zero.
The amount provided must be in the lowest denomination possible.
Example: Token A has 2 decimals. In order to burn 100 tokens, one must provide an amount of 10000. In order to burn 100.55 tokens, one must provide an amount of 10055.
This transaction accepts zero unit token burn operations for fungible tokens (HIP-564)
Transaction Signing Requirements
Supply key
Transaction fee payer account key
Transaction Fees
Please see the transaction and query fees table for base transaction fee
Applicable to tokens of type NON_FUNGIBLE_UNIQUE.The list of NFT serial IDs to burn.
Optional
addSerial(<serial>)
long
Applicable to tokens of type NON_FUNGIBLE_UNIQUE.The serial ID to burn.
Optional
//Burn 1,000 tokensTokenBurnTransaction transaction =newTokenBurnTransaction().setTokenId(tokenId).setAmount(1000);//Freeze the unsigned transaction, sign with the supply private key of the token, submit the transaction to a Hedera networkTransactionResponse txResponse =transaction.freezeWith(client).sign(supplyKey).execute(client);//Request the receipt of the transactionTransactionReceipt receipt =txResponse.getReceipt(client);//Obtain the transaction consensus statusStatus transactionStatus =receipt.status;System.out.println("The transaction consensus status is "+transactionStatus);//v2.0.1
//Burn 1,000 tokens and freeze the unsigned transaction for manual signingconsttransaction=awaitnewTokenBurnTransaction().setTokenId(tokenId).setAmount(1000).freezeWith(client);//Sign with the supply private key of the token constsignTx=awaittransaction.sign(supplyKey);//Submit the transaction to a Hedera network consttxResponse=awaitsignTx.execute(client);//Request the receipt of the transactionconstreceipt=awaittxResponse.getReceipt(client);//Get the transaction consensus statusconsttransactionStatus=receipt.status;console.log("The transaction consensus status "+transactionStatus.toString());//v2.0.7
//Burn 1,000 tokens and freeze the unsigned transaction for manual signingtransaction, err = hedera.NewTokenBurnTransaction().SetTokenID(tokenId).SetAmount(1000).FreezeWith(client)if err !=nil {panic(err)}//Sign with the supply private key of the token, submit the transaction to a Hedera networktxResponse, err := transaction.Sign(supplyKey).Execute(client)if err !=nil {panic(err)}//Request the receipt of the transactionreceipt, err = txResponse.GetReceipt(client)if err !=nil {panic(err)}//Get the transaction consensus statusstatus := receipt.Statusfmt.Printf("The transaction consensus status is %v\n", status)//v2.1.0