A token pause transaction prevents the token from being involved in any kind of operation. The token's pause key is required to sign the transaction. This is a key that is specified during the creation of a token. If a token has no pause key, you will not be able to pause the token. If the pause key was not set during the creation of a token, you will not be able to update the token to add this key.
The following operations cannot be performed when a token is paused and will result in a TOKEN_IS_PAUSED status.
Updating the token
Transfering the token
Transferring any other token where it has its paused key in a custom fee schedule
Deleting the token
Minting or burning a token
Freezing or unfreezing an account that holds the token
Enabling or disabling KYC
Associating or disassociating a token
Wiping a token
Once a token is paused, token status will update to paused. To verify if the token's status has been updated to paused, you can request the token info via the SDK or use the token info mirror node query. If the token is not paused the token status will be unpaused. The token status for tokens that do not have an assigned pause key will state PauseNotApplicable.
Transaction Signing Requirements
The pause key of the token
Transaction fee payer account key
Transaction Fees
Please see the transaction and query fees table for base transaction fee
//Create the token pause transaction and specify the token to pause
TokenPauseTransaction transaction = new TokenPauseTransaction()
.setTokenId(tokenId);
//Freeze the unsigned transaction, sign with the pause key, submit the transaction to a Hedera network
TransactionResponse txResponse = transaction.freezeWith(client).sign(pauseKey).execute(client);
//Request the receipt of the transaction
TransactionReceipt receipt = txResponse.getReceipt(client);
//Obtain the transaction consensus status
Status transactionStatus = receipt.status;
System.out.println("The transaction consensus status is: " +transactionStatus);
//v2.2.0
//Create the token pause transaction, specify the token to pause, freeze the unsigned transaction for signing
const transaction = new TokenPauseTransaction()
.setTokenId(tokenId);
.freezeWith(client);
//Sign with the pause key
const signTx = await transaction.sign(pauseKey);
//Submit the transaction to a Hedera network
const txResponse = await signTx.execute(client);
//Request the receipt of the transaction
const receipt = await txResponse.getReceipt(client);
//Get the transaction consensus status
const transactionStatus = receipt.status;
console.log("The transaction consensus status " +transactionStatus.toString());
//v2.2.0
//Create the token pause transaction, specify the token to pause, freeze the unsigned transaction for signing
transaction, err := hedera.NewTokenPauseTransaction().
SetTokenID(tokenId).
FreezeWith(client)
if err != nil {
panic(err)
}
//Sign with the pause key
txResponse, err = transaction.Sign(pauseKey).Execute(client)
if err != nil {
panic(err)
}
//Get the receipt of the transaction
receipt, err = txResponse.GetReceipt(client)
if err != nil {
panic(err)
}
//Get the transaction consensus status
status := receipt.Status
fmt.Printf("The transaction consensus status is %v\n", status)
//v2.3.0