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
"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.
Missing or Invalid Library Names
"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.
Missing Contract Name
"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.
No Runtime Bytecode Match Found
"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.
No Deployment Bytecode Match Found
"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.
Missing/Invalid Constructor Arguments
"Please check if the correct constructor argument was entered"
if your contract utilized the constructor
keyword, 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 constructorArguements
field spelling, using it as the "correct" spelling may miss your submission!
Mismatched bytecode metadata hash
"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 ipfs
or none
.
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.
Similar Match Found
"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.
Kindly reach out to us at this point of time to have this updated to Full Match if required.
Unsupported Solc Version
"Invalid or not supported solc version, see https://celoscan.io/solcversions for list"
This error is thrown when you specify to use an invalid or unsupported version of the Solidity Compiler ie. below v0.4.11-nightly.2017.3.15+
.
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
"Source code already verified"
An Exact Match has been obtained, get back to having your coffee!
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 Celoscan is not automatically verified on other explorers.
Unsupported File Import Callback
"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.
Temporary Error
"This could be a temporary error, please retry or contact us (Error Code 10001/10002/10003)"
Something went wrong on our end, which could include downtime or maintenance windows.
Please retry this in a while or ping us if this continues to persist!
Last updated