Common Verification Errors
An index of possible errors you may encounter when submitting contract verification requests to the endpoint, and potions to debug them 🐛
"Solidity Compilation Error: Identifier not found or not unique"
A compilation issue occured due to syntax errors in your Solidity source code.
Consider debugging your contract with any compiler such as Remix or Hardhat and reference the error from Solidity's official documentation.
"Library was required but suitable match not found"
A library was used in your contract deployment, but was not specified, misspelt or using the wrong library address.
Double check on your library names ( case sensitive such as "PRBMath" ) or ensure that a matching library name and library address is provided.
"Unable to locate ContractName , did you specify the correct Contract Name ?"
A match was not found with the name of the contract specified when multiple files are provided.
Ensure that you have provided the correct contract name to be matched against, and making sure you submit the main contract name not its dependencies.
"Compiled contract runtime bytecode does NOT match the on-chain runtime bytecode"
The compilation of your submitted source code does not match the runtime bytecode, ie the code stored within the contract address.
This is simply due a difference in your source code submitted, common causes include submitting different library versions such as from OpenZeppelin or using a different compiler version.
For an exact match to be found, both source code and compiler settings specified have to exactly match the deployment conditions for the same bytecode to be reproduced.
"Compiled contract deployment bytecode does NOT match the transaction deployment bytecode"
The compilation of your submitted source code does not match the deployment bytecode, ie the constructor arguments plus general initialisation code and runtime bytecode.
Similar solution as above, do take into account constructor arguments as well below.
"Please check if the correct constructor argument was entered"
if your contract utilized the
constructorkeyword, you should provide it in hex format. Otherwise, leave this field empty as it is.
You may reference your original deployment's constructor arguments or determine it from the end of your compiled bytecode.
There is an easter egg 🐣 on the
constructorArguementsfield spelling, using it as the "correct" spelling may miss your submission!
"Please check if the correct bytecodehash was specified via standard-json verification."
The metadata hash settings of your submitted source code differs from the settings of your original contract deployment, such as being set to
Submit your contract verification using the solc json input format, and specify the settings accordingly there.
Other submission formats such as single file or multifile do not support changing this setting, and will use the compiler defaults.
"This contract already Similar Matches the deployed ByteCode at 0x4200000000000000000000000000000000000042"
This error indicates that the contract has already been verified via Similar Match to another contract.
"Invalid or not supported solc version, see https://etherscan.io/solcversions for list"
This error is thrown when you specify to use an invalid or unsupported version of the Solidity Compiler ie. below
Do let us know if you need to verify a contract below this supported version such as to prove you deployed the first NFT!
"Source code already verified"
If you think this might be a mistake, do check if you've submitted verification to the right explorer/chain, a contract that is verified on Etherscan is not automatically verified on other explorers.
"Source "@openzeppelin/contracts/ERC20.sol" not found: File import callback not supported"
This error is thrown when contracts reference imports from external sources, such as OpenZeppelin libraries or Github links.
Consider flattening your source code into a single file, or use the Solidity Standard Json Input format that comes with tools such as Hardhat to resolve these external imports.
"This could be a temporary error, please retry or contact us (Error Code 10001/10002/10003)"