Delete a smart contract

A transaction that deletes a smart contract from a Hedera network. Once a smart contract is marked deleted, you will not be able to modify any of the contract's properties. **** If a smart contract did not have an admin key defined, you cannot delete the smart contract. You can verify the smart contract was deleted by submitting a smart contract info query to the network. If a smart contract has an associated hbar balance, you will need to transfer the balance to another Hedera account.

Transaction Signing Requirements

  • If the admin key was defined for the smart contract it is required to sign the transaction.

  • The client operator's (fee payer account) private key is required to sign the transaction.

Transaction Fees

Methods

MethodTypeDescriptionRequirement

setContractId(<contractId>)

Sets the contract ID (x.z.y) which should be deleted.

Required

setTransferAccountId(<transferAccountId>)

Sets the account ID (x.z.y) which will receive all remaining hbars

Optional

setTransferContractId(<contractId>)

Sets the contract ID (x.z.y) which will receive all remaining hbars.

Optional

//Create the transaction
ContractDeleteTransaction transaction = new ContractDeleteTransaction()
    .setContractId(contractId);

//Freeze the transaction for signing, sign with the admin key on the contract, sign with the client operator private key and submit to a Hedera network
TransactionResponse txResponse = transaction.freezeWith(client).sign(adminKey).execute(client);

//Get the receipt of the transaction
TransactionReceipt receipt = txResponse.getReceipt(client);

//Get the transaction consensus status
Status transactionStatus = receipt.status;

System.out.println("The transaction consensus status is " +transactionStatus);

//v2.0.0

Last updated