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 to verify.
Acton prompts when the project contains multiple contracts.
Deployed contract address to verify.
Acton prompts for it.
Wallet to use for the verification transaction.
Acton auto-selects the only configured wallet or prompts when multiple wallets are available.
Tolk compiler version to request on the verifier side.
1.2.0.
Run verification without submitting the final blockchain transaction.
Network Options
Network to verify against.
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
Control when to use colored output.
auto, always, never
Project Options
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.
Path to the project root to use for configuration discovery and relative defaults.
This conflicts with --manifest-path.
Process
Verification usually consists of:
- compiling the local contract
- calculating the resulting code hash
- sending sources to a verifier backend
- collecting the required signatures
- 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
.tolkcontract source in the current project - a supported verifier network:
testnetormainnet - 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
--walletis 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
.tolksources can be verified - precompiled
.boccontracts cannot be verified localnetandcustom:<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-runis not used, the final verification transaction sends0.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_BACKENDoverrides only the initial/sourcebackend used for source uploadACTON_VERIFY_BACKENDSreplaces the later signer/signbackend listACTON_VERIFY_DEBUGenables 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-runExample: 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-runDry 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_BACKENDat 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
-
Verify on testnet:
acton verify Counter --address EQDt7LL... -
Verify on mainnet:
acton verify Counter --address UQDt7LL... --net mainnet -
Use a specific wallet:
acton verify Counter --address EQDt7LL... --wallet deployer -
Test the flow without sending the final transaction:
acton verify Counter --address EQDt7LL... --dry-run -
Verify with an explicit compiler version:
acton verify Counter --address EQDt7LL... --compiler-version 1.2.0
See Also
Last updated on