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
- Please use the Hedera fee estimator to estimate your transaction fee cost
Constructor | Description |
---|---|
new TokenPauseTransaction() |
Initializes the TokenPauseTransaction object |
new TokenPauseTransaction()
{% tabs %} {% tab title="V2" %}
Method | Type | Description | Requirement |
---|---|---|---|
setTokenId(<tokenId>) |
TokenId | The ID of the token to pause | Required |
{% code title="Java" %}
//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
{% endcode %}
{% code title="JavaScript" %}
//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
{% endcode %}
{% code title="Go" %}
//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
{% endcode %} {% endtab %} {% endtabs %}