Delete an existing Hedera account with AccountDeleteTransaction, transferring its remaining HBAR to a beneficiary account with setTransferAccountId() and the required account signature.
A transaction that deletes an existing account from the Hedera network. Before deleting an account, the existing HBAR must be transferred to another account. Submitting a transaction to delete an account without assigning a beneficiary via setTransferAccountId() will result in a ACCOUNT_ID_DOES_NOT_EXIST error. Transfers cannot be made into a deleted account. A record of the deleted account will remain in the ledger until it expires. The expiration of a deleted account can be extended. The account that is being deleted is required to sign the transaction.
Note: The setTransferAccountId() method is required, regardless of whether the account has a zero balance.
Transaction Fees
Please see the transaction and query fees table for the base transaction fee.
The ID of the account to transfer the remaining funds to.
Required
//Create the transaction to delete an accountAccountDeleteTransaction transaction = new AccountDeleteTransaction() .setAccountId(accountId) .setTransferAccountId(OPERATOR_ID);//Freeze the transaction for signing, sign with the private key of the account that will be deleted, sign with the operator key and submit to a Hedera networkTransactionResponse txResponse = transaction.freezeWith(client).sign(newKey).execute(client);//Request the receipt of the transactionTransactionReceipt receipt = txResponse.getReceipt(client);//Get the transaction consensus statusStatus transactionStatus = receipt.status;System.out.println("The transaction consensus status is " +transactionStatus);
//Create the transaction to delete an accountconst transaction = await new AccountDeleteTransaction() .setAccountId(accountId) .setTransferAccountId(OPERATOR_ID) .freezeWith(client);//Sign the transaction with the account keyconst signTx = await transaction.sign(accountKey);//Sign with the client operator private key and submit 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 is " +transactionStatus);//2.0.5
//Create the transaction to delete an account, freeze the transaction for signingtransaction, err := hedera.NewAccountDeleteTransaction(). SetAccountID(newAccountID). SetTransferAccountID(operatorAccountID). FreezeWith(client)if err != nil { panic(err)}//Sign with the private key of the account that will be deleted, sign with the operator key and submit to a Hedera networktxResponse, err := transaction.Sign(accountKey).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 statustransactionStatus := receipt.Statusfmt.Printf("The transaction consensus status is %v\n", transactionStatus)//v2.0.0
// Create the transaction to delete an accountlet transaction = AccountDeleteTransaction::new() .account_id(account_id) .transfer_account_id(operator_id);// Freeze the transaction for signing, sign with the private key of the account that will be deletedlet tx_response = transaction .freeze_with(&client)? .sign(account_key) .execute(&client) .await?;// Request the receipt of the transactionlet receipt = tx_response.get_receipt(&client).await?;// Get the transaction consensus statuslet status = receipt.status;println!("The transaction consensus status is {:?}", status);// v0.34.0
//Create the transaction to delete an accountAccountDeleteTransaction transaction = new AccountDeleteTransaction() .setAccountId(newAccountId) .setTransferAccountId(OPERATOR_ID);//Get the account ID from the transactionAccountId transactionAccountId = transaction.getAccountId()System.out.println("The account to be deleted in this transaction is " +transactionAccountId)//v2.0.0
//Create the transaction to delete an accountconst transaction = new AccountDeleteTransaction() .setAccountId(newAccountId) .setTransferAccountId(OPERATOR_ID);//Get the account ID from the transactionconst transactionAccountId = transaction.getAccountId()console.log("The account to be deleted in this transaction is " +transactionAccountId)
//Create the transaction to delete an accounttransaction, err := hedera.NewAccountDeleteTransaction(). SetAccountID(newAccountID). SetTransferAccountID(operatorAccountID)//Get the account ID from the transactiontransactionAccountId := transaction.GetAccountID()//v2.0.0