My tokens and basic setup scripts are built in solidity 0.8.0 and I just downloaded GSN with OpenZeppelin because I need a platform which will fund users' few things. Now I can't compile because it shows me there are different SOLC versions. This situation forced me to split project into tokens (and few contracts among them) and platform, which is downgraded to 0.6.10 and exported separately. To make it working I need to copy and paste interfaces between projects, paste raw addresses in migrations, it makes mess in the entire project. How can I build everything at one project?

2 Answers 2


In your truffle config set the compiler version to pragma this will auto-detect based on your smart contract and choose the correct compiler.

module.exports = {
  compilers: {
    solc: {
      version: "pragma"

truffle docs


I will not recommend this, because features change from verion to version.

But if you wanna compile your whole project from a single version of solidity, you can set the pragmas in your solidity files as following:

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

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.