# selfdestruct was deprecated in solidity 0.8.18 via eip-6049
The deprecation of `SELFDESTRUCT` signals the Ethereum community's intention to eventually remove or neuter the opcode. Since [[selfdestruct in implementation contracts can permanently brick proxy systems]], this deprecation reduces a major risk for proxy architectures going forward.
However, contracts compiled with older Solidity versions still contain the opcode, and since [[parity wallet hack demonstrated that selfdestruct in implementation contracts permanently bricks proxy systems|the Parity wallet hack demonstrated its destructive potential]], any legacy implementation or library contract with an accessible selfdestruct path represents a supply-chain risk for dependent proxies. The deprecation timeline and eventual removal mechanics are still under discussion in the Ethereum governance process.
---
Relevant Notes:
- [[selfdestruct in implementation contracts can permanently brick proxy systems]] — the vulnerability this deprecation addresses
- [[parity wallet hack demonstrated that selfdestruct in implementation contracts permanently bricks proxy systems]] — the canonical exploit
- [[CREATE2 enables contract recreation at the same address with different bytecode when the constructor queries external state]] — selfdestruct is the prerequisite that clears addresses for CREATE2 recreation attacks; deprecation narrows this vector
Topics:
- [[solidity-behaviors]]