badge-checkVerify & Publish Contract

This guide explains how to verify and publish a smart contract’s source code on the SATUCHAIN Testnet Explorer so the contract becomes readable and transparent (source, ABI, and verified bytecode match).

Verification page: https://testnet.satuchain.com/verify-contract/step-1arrow-up-right


Before You Start

You must have:

  • Deployed contract address (on SATUCHAIN Testnet)

  • Exact Solidity source code used for deployment

  • Compiler version used during deployment (example: v0.8.23, v0.8.20, etc.)

  • Optimization settings used during deployment

    • Optimizer: enabled/disabled

    • Runs: (commonly 200)

    • viaIR: on/off

  • EVM version used during compilation (example: paris)

  • Constructor arguments (only if your contract has a constructor with params)

Important: Verification will fail if any of these settings do not match the deployed build.


Step 1 — Open Verify Page and Fill Contract Details

Go to: https://testnet.satuchain.com/verify-contract/step-1arrow-up-right

Fill the following fields:

Contract Address

Paste your deployed contract address (example format: 0x...).

Compiler Type

Select the format that matches how you provide the code:

  • Solidity (Single file) — if your contract is in one file (most simple deployments)

  • (Choose multi-file/standard-json only if the explorer provides it and you deployed with a full project build)

Compiler Version

Select the exact compiler version used at deployment (must match exactly).

License

Choose the license matching your SPDX-License-Identifier line in the source code:

  • Example: MIT, Apache-2.0, GPL-3.0, or No License

Check I agree to the terms of service, then click Continue.


Step 2 — Configure Compilation Settings and Paste Source

On Step 2, complete the fields:

Contract Name

Use the correct format shown by the page. Common formats:

  • contracts/Foo.sol:Foo

  • or similar path + contract name

If your project has multiple contracts in one file, pick the exact one deployed.

Constructor Args (if any)

  • If your contract has a constructor with parameters, input the encoded args required by the explorer.

  • If there is no constructor or it takes no parameters, leave this field empty.

If available, select:

  • SATUCHAIN recommended

This typically sets:

  • EVM version: paris

  • Optimizer: enabled (runs 200)

  • viaIR: off

Only use this preset if it matches how you compiled your contract. If your deployment used different settings, you must match those settings instead.

EVM Version

Select the same EVM version used during compilation (example shown: paris).

Optimizer

Match your deployment build:

  • enabled/disabled

  • runs (commonly 200)

  • viaIR on/off

Source

Paste your full Solidity source code exactly as deployed.

Then click Submit verification.


Confirm Verification

If verification succeeds:

  • The explorer will mark the contract as Verified

  • You should see:

    • Source code tab

    • ABI / Read / Write contract interface

    • Bytecode matched confirmation

You can confirm by searching the contract address on: https://testnet.satuchain.comarrow-up-right


Common Verification Failures

“Bytecode does not match” / “Verification failed”

Usually caused by mismatch in one of these:

  • Wrong compiler version

  • Optimizer setting differs (enabled/runs)

  • Different EVM version (e.g., paris vs another)

  • viaIR mismatch

  • Source code not identical (even a small change breaks verification)

Constructor arguments wrong

If your contract has a constructor, the args must be exactly the same as used in the deploy transaction.

Wrong contract name selected

If the file contains multiple contracts, make sure the name matches the deployed one.


Last updated