How to destroy a smart contract deployed on the Ethereum network

Smart contracts are programs that execute when certain conditions are met. They consist of a piece of code written in solidity language and deployed on Ethereum Virtual Machine (EVM).

Smart contracts are immutable, meaning the contract cannot be changed once deployed. So, if a bug or security flaw is found on the smart contract after deployment, it can not be fixed. Destroying the smart contract is the only viable option in this case. It can be used given that the smart contract implemented the destroy function.

However, the main use of self-destruct function is when a smart contract is under attack so the owner can destroy the contract and transfer the tokens owned by the smart contract to another account.

The selfdestruct() function

The selfdestruct() function, as the name suggests, destroys the smart contract given that certain conditions are met. The function takes an address payable variable and transfers all the tokens owned by the smart contract to the provided address before destroying the smart contract. The syntax of the function is as follows:

// Syntax
selfdestruct(address payable _addr);

Example

We consider an example where we write a smart contract containing the code given below on the remix editor and then deploy it on the remix. Then we interact with the contract by calling different functions to ensure that it works properly and after that, we call the selfdestruct().

The steps are shown below:

  1. Write the following code in the remix editor.

The solidity code within the smart contract
  1. Deploy it on Remix VM(London) and interact with the functions. As we can see in the image below that we call the add function with input parameters 2 and 3 and when we call the result function we get 5.

Interacting with smart contract in remix
  1. Now, we can deploy it on the Ropsten testnet by connecting to MetaMask.

  2. We copy the address of the smart contract and paste it into the "At Address" in remix to fetch the smart contract within the remix editor.

  3. Now, we pass an address to the destroySmartContract() function and the contract will be destroyed

Note: The smart contract needs to hold some tokens to execute the self destruct function. In this example we assume that the smart contract already contains some tokens.

Free Resources

Copyright ©2026 Educative, Inc. All rights reserved