Acton
Command reference

acton verify

Reference manual for the acton verify command

Synopsis

acton verify [options] [contract-name]

Description

Verify that a deployed contract address matches the local source code for a contract from your project.

The verification flow compiles local sources, prepares data for the verifier backend, collects the required signatures, and optionally submits the final verification transaction to the blockchain.

Options

Verify Options

<contract-name>

Contract name to verify.

If omitted:

Acton prompts when the project contains multiple contracts.

--address<address>

Deployed contract address to verify.

If omitted:

Acton prompts for it.

--wallet<wallet>

Wallet to use for the verification transaction.

If omitted:

Acton auto-selects the only configured wallet or prompts when multiple wallets are available.

--compiler-version<version>

Tolk compiler version to request on the verifier side.

Current default:

1.2.0.

--dry-run

Run verification without submitting the final blockchain transaction.

Network Options

--net<network>

Network to verify against.

Default:

testnet.

TonCenter API Keys

Built-in mainnet/testnet requests read TONCENTER_MAINNET_API_KEY or TONCENTER_TESTNET_API_KEY, depending on --net.

Acton loads .env automatically, so the simplest setup during project work is usually to keep these keys there and use shell environment variables only for one-off overrides or CI.

Display Options

--color<when>

Control when to use colored output.

Possible values:

auto, always, never

Project Options

--manifest-path<path>

Path to the Acton.toml file to use for this invocation.

Use this when running the command outside the project directory or when the manifest lives at a non-default location.

--project-root<path>

Path to the project root to use for configuration discovery and relative defaults.

This conflicts with --manifest-path.

Process

Verification usually consists of:

  1. compiling the local contract
  2. calculating the resulting code hash
  3. sending sources to a verifier backend
  4. collecting the required signatures
  5. optionally sending the final verification transaction

Acton prepares the local compilation artifacts and uploads them to the verification service. The final deployed-code match is established by the verifier flow itself; acton verify does not first perform a separate local on-chain code-hash comparison against the target address before upload.

Prerequisites

  • a .tolk contract source in the current project
  • a supported verifier network: testnet or mainnet
  • verifier backend availability for the selected network
  • a configured wallet, funded when not using --dry-run
  • reproducible compiler settings that match the deployed contract

Contract And Wallet Selection

  • if _contract-name_ is omitted and exactly one contract is configured, Acton selects it automatically
  • if multiple contracts are configured, Acton prompts for the contract
  • if --wallet is omitted and exactly one wallet is configured, Acton selects it automatically
  • if multiple wallets are configured, Acton prompts for the wallet

Requirements And Limitations

  • only .tolk sources can be verified
  • precompiled .boc contracts cannot be verified
  • localnet and custom:<name> are not supported by verifier backends
  • verification requires a funded wallet when not using --dry-run
  • if a contract with the same code hash is already verified, the backend may skip the final transaction

Cost And Backend Notes

  • when --dry-run is not used, the final verification transaction sends 0.1 TON
  • if the verifier backend reports that the contract is already verified, Acton exits successfully without sending another transaction
  • on successful verification, Acton prints a verifier link for the contract

Environment Overrides

The verification flow also supports backend/debug environment overrides:

  • ACTON_VERIFY_BACKEND overrides only the initial /source backend used for source upload
  • ACTON_VERIFY_BACKENDS replaces the later signer /sign backend list
  • ACTON_VERIFY_DEBUG enables verbose verification diagnostics by presence alone

Backend override values are trimmed and normalized, including removal of a trailing /.

With ACTON_VERIFY_DEBUG, Acton prints:

  • compiler version
  • collected source files
  • active source-backend override
  • active signer-backend override list

Example: debug source upload against a custom backend:

ACTON_VERIFY_BACKEND=http://127.0.0.1:8080 \
ACTON_VERIFY_DEBUG=1 \
acton verify Counter --address EQDt7LL... --net mainnet --dry-run

Example: separate source upload from signer backends:

ACTON_VERIFY_BACKEND=http://127.0.0.1:8080 \
ACTON_VERIFY_BACKENDS=http://127.0.0.1:8081,http://127.0.0.1:8082 \
acton verify Counter --address EQDt7LL... --net mainnet --dry-run

Dry Run

--dry-run still compiles the contract, uploads sources to the verifier backend, and collects the required signatures. It skips only the final blockchain transaction.

Retries And Failure Hints

  • source upload is attempted up to 8 times total (initial try plus up to 7 retries) for transient transport failures and backend 5xx responses
  • retry backoff grows from 1 second to 7 seconds between attempts
  • backend error responses are printed with the response body when available
  • 5xx failures suggest retrying later and using ACTON_VERIFY_DEBUG=1
  • backend problems can also be narrowed down by pointing ACTON_VERIFY_BACKEND at a specific endpoint

Exit Status

  • 0: Verification completed successfully, including successful dry runs and flows where the backend decides that no final transaction is needed.
  • 1: Compilation failed, the verifier backend rejected the request, not enough signatures could be collected, wallet resolution failed, or the final blockchain transaction could not be sent.

Examples

  1. Verify on testnet:

    acton verify Counter --address EQDt7LL...
  2. Verify on mainnet:

    acton verify Counter --address UQDt7LL... --net mainnet
  3. Use a specific wallet:

    acton verify Counter --address EQDt7LL... --wallet deployer
  4. Test the flow without sending the final transaction:

    acton verify Counter --address EQDt7LL... --dry-run
  5. Verify with an explicit compiler version:

    acton verify Counter --address EQDt7LL... --compiler-version 1.2.0

See Also

Last updated on

On this page