In this article there is a claim that "if you change something in Solidity, existing smart contracts might stop working". With references to here and here.

It doesn't make much sense to me -- how changing the language could possibly affect EVM code on the net?

  • Yes, it's a ridiculous statement. That's like saying that if you change the C++ standard (i.e. C++11 -> C++14), everything written using C++11 will stop working. Oct 7, 2016 at 14:50

3 Answers 3


Existing (deployed) contracts will still work the same regardless if Solidity changes.

A comment from a reviewer of the article:

Once a Smart Contract is compiled and deployed it is irrelevant what happens in future versions of the Solidity language.

Another reviewer was concerned that Solidity source code could behave differently depending on the version of the Solidity compiler used. The concern is valid and addressed by Solidity introducing a version pragma:

Source files have to specify the compiler version they are compatible with using e.g. pragma solidity ^0.4.0; or pragma solidity >=0.4.0 <0.4.8;


Deployed smart contracts will not be affected by a change in Solidity.

On the other hand, old code may not compile with newer versions of Solidity. This old code may need to be revised to be compiled and deployed. I don't see how this is a problem.


It doesn't make sense for me too, while solidity compiles code to EVM opcodes, changing solidity will not affect the previous contract except if they change the EVM to an incompatible one. the problem he didn't explain what he mains by "change something", changing what exactly in solidity?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.