Verify & Publish Contract Source Code
Match your deployed bytecode with source code for transparency
Check Verification Status
Look up if a contract has already been verified on Helix Chain
Method 1: Web UI
Use this page to verify contracts directly in your browser
- 1 Navigate to the tab
- 2 Enter your deployed contract address (must be on Helix Chain, ID 8088)
- 3 Select the exact compiler version used during deployment
-
4
Enter the contract name in
FileName.sol:ContractNameformat - 5 Set optimization and EVM version to match your deployment settings
-
6
Paste your source code or upload
.solfiles - 7 Click Verify Contract and wait for the result
Method 2: Foundry (forge)
Verify directly from the command line using Foundry
bash
forge verify-contract 0xYourContractAddress MyContract \
--verifier sourcify \
--verifier-url https://verify.thehelixchain.xyz \
--chain-id 8088
Tip: Make sure the compiler version and optimization settings in your
foundry.toml match exactly what was used during deployment.
With constructor arguments:
forge verify-contract 0xYourContractAddress MyContract \
--verifier sourcify \
--verifier-url https://verify.thehelixchain.xyz \
--chain-id 8088 \
--constructor-args $(cast abi-encode "constructor(address,uint256)" 0xAddr 1000)
Method 3: Hardhat
Verify using the Hardhat Sourcify plugin
Install the verification plugin:
bash
npm install --save-dev @nomicfoundation/hardhat-verify
Add to your hardhat.config.js:
javascript
require("@nomicfoundation/hardhat-verify");
module.exports = {
solidity: "0.8.24",
networks: {
helix: {
url: "https://rpc.thehelixchain.xyz",
chainId: 8088,
accounts: [process.env.PRIVATE_KEY]
}
},
sourcify: {
enabled: true,
apiUrl: "https://verify.thehelixchain.xyz",
browserUrl: "https://verify.thehelixchain.xyz"
}
};
Then verify:
bash
npx hardhat verify --network helix 0xYourContractAddress "arg1" "arg2"
Method 4: Direct API
Use the Sourcify REST API directly
bash / curl
curl -X POST https://verify.thehelixchain.xyz/v2/verify/8088/0xYourAddress \
-H "Content-Type: application/json" \
-d '{
"stdJsonInput": {
"language": "Solidity",
"sources": {
"MyContract.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\ncontract MyContract { ... }"
}
},
"settings": {
"optimizer": { "enabled": true, "runs": 200 },
"evmVersion": "paris",
"outputSelection": { "*": { "*": ["abi","evm.bytecode","evm.deployedBytecode","metadata"] } }
}
},
"compilerVersion": "v0.8.24+commit.e11b9ed9",
"contractIdentifier": "MyContract.sol:MyContract"
}'
API Endpoints:
| Method | Endpoint | Description |
|---|---|---|
POST |
/v2/verify/{chainId}/{address} | Submit verification |
GET |
/v2/verify/{verificationId} | Poll verification status |
GET |
/v2/contract/{chainId}/{address} | Get verified contract |
GET |
/chains | List supported chains |