Verifying Contracts Programmatically
If you'd like to verify contracts via our website, you may do so using the Verify and Publish Source Code page.
Source code verification provides a way for projects to open source π their smart contract code for end users to inspect and verify that it does what it claims to do.
By uploading source code, BDLTSCAN
will match the compiled contract bytecode with that on the blockchain and display it under the Contract tab.
For repeated or multiple verification of contracts, it may be more productive to programmatically verify your contracts through an API endpoint π― .
The tools needed to follow along with this guide is Postman , an API development application and a valid BDLTSCAN API key .
1. Pointing API Endpoints
Under the Request Body, set the format to x-www-form-urlencoded.
Include your API key under the apikey field, set the module to contract, and action to verifysourcecode.

2. Setting API Keys & Module
Under the Request Body, set the format to x-www-form-urlencoded.
Include your API key under the apikey field, set the module to contract, and action to verifysourcecode.
Examples of Solidity flatteners that can be used are solidity-flattener by @BlockCatIO or SolidityFlattery by @DaveAppleton

3. Attaching Source Code
Paste your contract source code under the sourceCode parameter.
If your contract uses "imports", you will need to concatenate the code into one file ( otherwise known as "flattening" ) as we do not support "imports" in separate files.
Examples of Solidity flatteners that can be used are solidity-flattener by @BlockCatIO or SolidityFlattery by @DaveAppleton

4. Configuring Source Code Parameters
Configure the details of your deployed contract such as contractname, compilerversion, optimizationUsed and so on.
You have to specify the fields marked as required, and optional fields if applicable to your contract.
Parameter | Field | Description |
---|---|---|
contractaddress | Required | contract address, eg. 0x4c113f627fe35231fd11131a9974b9a99f584cb6 |
codeformat | Required | |
contractname | Required | contract name, eg HelloWorld |
compilerversio | Required | compiler version used, eg. v0.7.6+commit.7338295f see BDLTSCAN ![]() ![]() |
optimizationUsed | Required | use 0 for no optimization, and 1 if optimization was used |
runs | Optional | the no. of runs if optimization was used, eg. 200 |
constructorArguments | Optional | for contracts that were created with constructor parameters, using ABI encoding. |
evmversion | Optional | leave blank for default compiler, specify if others such as tangerineWhistle, spuriousDragon, byzantium etc |
licenseType | Optional | an integer between 1 - 12, see Open Source License Types for all options default value of 1 indicating No License |
libraryname | Optional | library used in contract, eg. SafeMath supports up to 10 different libraries |
libraryaddress | Optional | library address eg. 0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc a matching pair of libraryname - libraryaddress must be provided |

The final body sample request using Bulk Edit in Postman will resemble this.
5. Contract Verification Results
Upon sending your request, you should receive a GUID ( 50 characters ) as your submission receipt.

You may check the status of your source code verification using the "Check Source Code Verification Status" endpoint. The average processing time is between 30 - 60 seconds.
Upon successful verification β
, users will be able to interact with your contract on BDLTSCAN
and it will be listed under the Verified Contracts page.
