Disassociates the provided Hedera account from the provided Hedera tokens. This transaction must be signed by the provided account's key. Once the association is removed, no token related operation can be performed to that account. AccountBalanceQuery and AccountInfoQuery will not return anything related to the token that was disassociated.
If the provided account is not found, the transaction will resolve to INVALID_ACCOUNT_ID.
If the provided account has been deleted, the transaction will resolve to ACCOUNT_DELETED.
If any of the provided tokens is not found, the transaction will resolve to INVALID_TOKEN_REF.
If any of the provided tokens has been deleted, the transaction will resolve to TOKEN_WAS_DELETED.
If an association between the provided account and any of the tokens does not exist, the transaction will resolve to TOKEN_NOT_ASSOCIATED_TO_ACCOUNT.
If the provided account has a nonzero balance with any of the provided tokens, the transaction will resolve to TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES.
On success, associations between the provided account and tokens are removed.
The account is required to have a zero balance of the token you wish disassociates. If a token balance is present, you will receieve a TRANSACTION_REQUIRES_ZERO_TOKEN_BALANCES error.
Constructor | Description |
| Initializes the TokenDissociateTransaction object |
new TokenDissociateTransaction()
​
Method | Type | Description | Requirement |
| TokenId | The tokens to be dissociated with the provided account | Required |
| AccountId | The account to be dissociated with the provided tokens | Required |
Java//Disassociate a token from an accountTokenDissociateTransaction transaction = new TokenDissociateTransaction().setAccountId(accountId).setTokenIds(tokenId);//Freeze the unsigned transaction, sign with the private key of the account that is being dissociated from a token, submit the transaction to a Hedera networkTransactionResponse txResponse = transaction.freezeWith(client).sign(accountKey).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
JavaScript//Dissociate a token from an account and freeze the unsigned transaction for signingconst transaction = await new TokenDissociateTransaction().setAccountId(accountId).setTokenIds([tokenId]).freezeWith(client);​//Sign with the private key of the account that is being associated to a tokenconst signTx = await transaction.sign(accountKey);​//Submit the transaction to a Hedera networkconst txResponse = await signTx.execute(client);​//Request the receipt of the transactionconst receipt = await txResponse.getReceipt(client);//Get the transaction consensus statusconst transactionStatus = receipt.status;​console.log("The transaction consensus status " +transactionStatus.toString());​//v2.0.5
Go//Disssociate the token from an account and freeze the unsigned transaction for signingtransaction, err := hedera.NewTokenDissociateTransaction().SetAccountID(accountId).SetTokenIDs(tokenId).FreezeWith(client)​if err != nil {panic(err)}​//Sign with the private key of the account that is being associated to a token, submit the transaction to a Hedera networktxResponse, err = transaction.Sign(accountKey).Execute(client)​if err != nil {panic(err)}​//Get the transaction consensus statusreceipt, err = txResponse.GetReceipt(client)​if err != nil {panic(err)}​//Get the transaction consensus statusstatus := receipt.Status​fmt.Printf("The transaction consensus status is %v\n", status)​//v2.1.0
Method | Type | Description | Requirement |
| TokenId | The tokens to be dissociated with the provided account | Required |
| AccountId | The account to be dissociated with the provided tokens | Required |
Java//Disassociate a token from an accountTokenDissociateTransaction transaction = new TokenDissociateTransaction().setAccountId(accountId).addTokenId(tokenId);//Build the unsigned transaction, sign with the private key of the account that is being dissociated from a token, submit the transaction to a Hedera networkTransactionId transactionId = transaction.build(client).sign(accountKey).execute(client);//Request the receipt of the transactionTransactionReceipt getReceipt = transactionId.getReceipt(client);//Obtain the transaction consensus statusStatus transactionStatus = getReceipt.status;​System.out.println("The transaction consensus status is: " +transactionStatus);//Version: 1.2.2
JavaScript//Disassociate a token from an accountconst transaction = new TokenDissociateTransaction().setAccountId(accountId).addTokenId(tokenId);//Build the unsigned transaction, sign with the private key of the account that is being dissociated from a token, submit the transaction to a Hedera networkconst transactionId = await transaction.build(client).sign(accountKey).execute(client);//Request the receipt of the transactionconst getReceipt = await transactionId.getReceipt(client);//Obtain the transaction consensus statusconst transactionStatus = getReceipt.status;​console.log("The transaction consensus status is: " +transactionStatus);//Version 1.4.2
​