Releases: ton-blockchain/acton
Trunk
1.0.0 - 11.05.2026
Release Notes
Acton 1.0 is the first stable release available to everyone. It marks the
result of six months of work, thousands of engineering hours, and hundreds of
thousands of lines of code.
Acton rethinks smart-contract development on TON: fast tests, straightforward
testnet and mainnet deployment, local and production debugging, AI-assisted
workflows, and many other tools that finally make smart-contract development
productive and approachable.
Learn more about Acton on the official website:
https://ton-blockchain.github.io/acton/
Install acton 1.0.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ton-blockchain/acton/releases/download/v1.0.0/acton-installer.sh | shDownload acton 1.0.0
| File | Platform | Checksum |
|---|---|---|
| acton-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| acton-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| acton-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| acton-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.5.0 - 10.05.2026
Release Notes
Acton 0.5.0 is a focused public-release follow-up to 0.4.0, adding TON Connect
support for verification approval transactions, improving typed cell and
cell-tree formatting, making mutation testing and coverage work for dependent
contracts, expanding wrapper generation and starter templates, refreshing the
Tolk compiler and TON executor config, and tightening documentation, release
CI, debugger snapshots, and UI inspection flows.
Breaking Changes and Migration
acton upnow reads release metadata only from the public
ton-blockchain/actonrepository. The temporary fallback repository used
during the public-release transition is no longer queried, so mirrors or
tooling that depended on fallback release metadata should switch to the
primary repository.- Compiler ABI JSON now uses
client_ty_idxon struct fields that have
@abi.clientType(...)after the Tolk compiler update. Direct ABI consumers
should read the indexed client type fromunique_typesinstead of relying on
the previous field shape. - The Acton linter no longer ships the
E023
incoming-messages-duplicate-opcoderule because duplicate incoming-message
opcodes are now handled by the Tolk compiler. Configurations that explicitly
enable, disable, or explainE023should remove that rule reference.
CLI, Wallets, and Verification
- Added
acton verify --tonconnectand--tonconnect-portso contract
verification can be approved through a TON Connect wallet instead of a stored
Acton wallet. - Added
acton library publish --tonconnectand
acton library topup --tonconnect, with--tonconnect-port, so library
publication and top-up transactions can also be approved through TON Connect. acton upnow targets the public Acton release repository, keeps a hidden
--yesflag for JetBrains plugin compatibility, and reports release lookup
and release-list failures with clearer GitHub/network diagnostics.- Wallet airdrops now use the new faucet endpoint and wait for airdrop
completion more reliably. - Wallet airdrop challenge handling now validates the challenge version before
using the response. - Wallet airdrop challenge requests now use the faucet's JSON
POSTflow with
the target address and TON airdrop type, matching the current faucet API. acton scriptnow gives a clearer error whenwaitForTrace()cannot find a
trace, including the timeout path used by scripts that print the result.acton verify,acton up, and related generated man/help output were
regenerated around the new flags and release repository behavior.
Project Templates and Wrappers
- Tolk wrapper generation now supports external incoming messages, including
contracts that expose both internal and external message surfaces. - The bundled Tolk compiler/TON objects and TypeScript wrapper generator were
updated to the Tolk 1.4. - Starter templates and app scaffolds were normalized across Counter, Empty,
Jetton, NFT, and W5 Extension projects: app templates gained.env.example
files, generated project metadata became more consistent, and the empty-app
and W5 app templates now include project-specificAGENTS.mdguidance. - Generated GitHub Actions workflows in starter templates are now split into
contract and dApp checks where appropriate, cover bothmainandmaster,
use least-privilege permissions and concurrency cancellation, and pin the
refreshedsetup-actonaction. - App template
npm run testscripts now succeed without requiring an Acton
project, so generated dApp-only workflows can run independently from contract
checks. acton new --templatesnow returns richer machine-readable template
metadata, and generated help/man output was refreshed around the updated
template list and app scaffolds.- Generated contract headers now use the local Git user name when available,
falling back toActon Userwhen it is missing. - Jetton, NFT, and W5 Extension templates received consistency fixes, including
unified author metadata, kebab-case NFT script names, refreshed W5 wrapper
helpers, and regenerated TypeScript wrappers. - The W5 Extension starter template was finalized with refreshed message
definitions, generated Tolk wrappers, and TypeScript wrappers. - Template opcode and hex literal casing is now normalized to lowercase in the
built-in templates.
Stdlib, Formatting, and ABI Decoding
- Added the
{:cell-tree}formatter forformat()andprintln()so
cells, slices, builders, and typedCell<T>values can be rendered as a tree
of cell references. - Typed
Cell<T>values now display decoded data when the compiler ABI can
parse the cell, improvingprintln, formatted output, and debugger/type
views. Expectation<SendResultList>.toEmitExternalMessage<T>()now reports a much
more actionable failure, including the searched message type/opcode and the
transaction list context.- Exit-code formatting now distinguishes compute-phase and action-phase exit
codes, so known codes are shown in the correct phase-specific context. - Small opcodes such as
0x1are formatted more consistently in transaction
and message output. tolk-fmthandles!chains more predictably and no longer breaks
single-argument generic type syntax such as<T>in common chains.
Testing, Mutation, Coverage, and Debugging
- Mutation testing now supports contracts that depend on the mutated contract,
including embedded and library-ref dependencies such as Jetton minter/wallet
setups. Dependent contracts are rebuilt with the mutated dependency override
before child test runs. - Targeted
acton build <contract>runs now refresh generated dependency-code
helpers for parent contracts that embed or reference the rebuilt contract,
preventing stalelibrary_refand embedded-code helper files. - Test trace snapshot paths now normalize test names, which makes generated
trace artifacts more stable and filesystem-friendly. - Debug rendering now prints empty cells, slices, and builders as explicit
empty cell,empty slice, andempty buildervalues, and storage decoding
is more reliable in debugger snapshots. - Coverage now works for library-reference-based contracts such as Wallet W5.
- Coverage now also resolves project contracts deployed from generated
dependency-code helpers such asgen/*.code.tolk, which fixes coverage for
dependent-contract flows like Jetton minter/wallet setups. - W5 debugging no longer emits an unnecessary warning and handles the W5 flow
correctly.
UI and Trace Inspection
- Test UI now warns when the connection to the runner is lost.
- Parsed cell/slice views can parse values even when remaining bits are present,
which is useful for W5 and other partially decoded payloads. - Parsed cell, slice, and builder values now include a button for copying the
full hex BoC. - UI packages were updated alongside the compiler ABI refresh and typed-cell
decoding changes. - Shared UI transaction rendering was refined for the updated tutorial and
inspection flows, including clearer account details, disassembly, action
summaries, transaction tree entries, and exit-code chips.
Docs, Release CI, and Internal Polish
- Documentation gained wallet-management, verification, and deployment how-to
guides, a refreshed quickstart/walkthrough, a full tutorial flow, agent-skills
pages, and style corrections across Acton.toml, debugging, testing, IDE
support, installation, libraries, and welcome pages. - JetBrains and VS Code documentation was expanded with reorganized screenshot
assets, new extension feature coverage, terminal/action/test-runner views, and
updated demo media. - Documentation gained new dApp development and project-management guides,
including TypeScript wrapper workflows and expanded library, scripting,
walkthrough, and IDE-support coverage. - The documentation site now redirects
/docsto/docs/welcomelocally and
supports richer file-tree visualization in docs pages. - Documentation gained a reusable
Calloutcomponent and stricter external
link validation around redirects. - Release CI now generates cargo-dist manifest checksums for release binaries,
links the releasedacton-installer.sh, and removes obsolete mirroring
workflows for trunk, objects, and release artifacts. - Documentation deployment and labeler workflows now skip draft pull requests.
- Dockerfile links were updated to match the current public-release layout.
ton-objsarchive checksum mismatch diagnostics now mention
TON_OBJS_DISABLE_ARCHIVE_SHA_VERIFYfor environments that intentionally
bypass archive verification.- Tree-sitter dependencies were refreshed, including the
ip-addressupdate,
and the TON executor config was updated.
Install acton 0.5.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ton-blockchain/acton/releases/download/v0.5.0/acton-installer.sh | shDownload acton 0.5.0
| File | Platform | Checksum |
|---|---|---|
| acton-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| acton-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| acton-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| [acton-x86_64-unknown-lin... |
Release Objs
Generated from TON commit: ton-blockchain/ton@b6ec13a
0.4.2 - 08.05.2026
Release Notes
Test release.
Install acton 0.4.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ton-blockchain/acton/releases/download/v0.4.2/acton-installer.sh | shDownload acton 0.4.2
| File | Platform | Checksum |
|---|---|---|
| acton-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| acton-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| acton-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| acton-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.4.1 - 08.05.2026
Release Notes
Test release with public repository.
Install acton 0.4.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ton-blockchain/acton/releases/download/v0.4.1/acton-installer.sh | shDownload acton 0.4.1
| File | Platform | Checksum |
|---|---|---|
| acton-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| acton-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| acton-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| acton-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.4.0 - 04.05.2026
Release Notes
Acton 0.4.0 is a broad follow-up to 0.3.0. It stabilizes the dApp and wrapper
surface, adds project-level toolchain pinning, expands RPC, retrace, debugger,
Test UI, and localnet inspection workflows, and tightens testing, coverage,
linter, formatter, docs, templates, and editor integrations.
Breaking Changes and Migration
-
The short
-vverbosity flag was removed fromacton test,
acton script, andacton retrace. Use the long--verboseflag for
executor logs and retrace detail output.# before acton test -v acton script scripts/deploy.tolk -v # after acton test --verbose acton script scripts/deploy.tolk --verbose
Root
acton -vremains the version shortcut, so downstream wrappers should
avoid assuming that-vmeans command-local verbosity. -
SendResultList.wait()was renamed to
SendResultList.waitForFirstTransaction()and now returnsSendResult?
instead ofbool. This makes the confirmed on-chain root transaction
available to scripts instead of only reporting whether it was found.// before val ok = txs.wait(); if (!ok) { return; } // after val applied = txs.waitForFirstTransaction(); if (applied == null) { return; } println("applied at lt {}", applied!.lt); -
acton buildnow writes Tolk compiler ABI JSON files tobuild/abi/by
default. If custom tooling reads ABI artifacts from the main build output
directory, update it to readbuild/abi/<contract>.jsonor pin the old-style
location explicitly:[build] output-abi = "build"
The CLI override is
acton build --output-abi <DIR>. -
The TypeScript wrapper directory spelling was normalized from
wrapper-ts/towrappers-ts/. UpdateActon.toml,
frontend imports, generated-project checks, and documentation snippets that
still reference the singular form.# before [wrappers.typescript] output-dir = "app/src/wrapper-ts" # after [wrappers.typescript] output-dir = "app/src/wrappers-ts"
-
Acton HTTP clients now ignore
HTTP_PROXY,HTTPS_PROXY,ALL_PROXY, and
system proxy settings by default to avoid macOS sandbox proxy autodetection
crashes. SetACTON_USE_PROXY=1orACTON_USE_PROXY=truewhen your
environment requires those proxy settings. -
Several linter diagnostics were reclassified from error-style
E...codes
to styleS...codes, and the linter docs were regenerated around the new
numbering. UpdateActon.tomllint configuration, CI filters, snapshot
expectations, and inline suppressions if they reference numeric rule codes
directly. -
Compiler ABI JSON now stores canonical types in
unique_typesand references
them byty_idx, including monomorphic struct and alias instantiations.
Tooling that reads ABI JSON directly should stop expecting inlinety,
target_ty,body_ty,return_ty, orprefix_strfields and use the new
indexed fields instead. The reflection helpers
reflect.typeAbiJsonOf*()were replaced withreflect.typeUniqueIdxOf*().
CLI, Project, and Network Workflows
- Added project-level toolchain pinning through
[toolchain] acton = "..."
inActon.toml. Project commands check the configured Acton version before
running, whileacton upremains available from the same directory so users
can install the expected version. - New projects and templates now pin the current Acton version, include clearer
.env.exampleguidance, and document proxy and TonCenter API-key behavior
more explicitly. - Added
acton init --stdlib-onlyfor refreshing.acton/without reading or
patchingActon.toml. acton wallet listno longer requires anActon.toml, which makes wallet
inventory commands usable outside an initialized project.acton scriptnow supports TON Connect flows, ABI-driven argument parsing,
clearer trailing argument forwarding with--, better non-interactive
wallet errors, and remote-state cache invalidation after broadcasting.- Testnet wallet airdrop requests now include a stable non-empty
x-device-uidheader derived from the local machine identifier, while
keeping the device value out of the JSON claim payload. - Added
acton rpc tracefor rendering TonCenter v3 traces as stable decoded
transaction trees, plusacton rpc blockandacton rpc block-numberfor
latest masterchain block inspection. - Added Nushell support to
acton completions, while the completion generator
and root help now share the same base command metadata, including version
flag aliases. - Remote account-state loading now uses
/api/v2/getShardAccountCellwhere
available, and localnet implements the same endpoint for compatibility with
the emulator and tracing stack. acton compilenow exits with code1for missing files and reports
conflicting stdout/file output choices more clearly.- Acton HTTP calls now send a versioned
acton/<version>User-Agentacross
update, doctor, wallet, verifier, localnet, and API-client workflows. acton upno longer special-cases Homebrew-style installation paths.- CLI help, command descriptions, color handling, wallet setup hints, and
non-interactiveacton newerrors were tightened across the command surface.
Wrappers, Templates, and dApps
- Added Vite-based dApp scaffolding through
acton init --create-dapp,
including standalone empty-app support and generated TypeScript wrapper usage
in Counter, Jetton, NFT, and wallet-extension flows. - Added the Wallet W5 Extension template and aligned it with the Counter,
Jetton, NFT, and empty-app template families. - Templates now share more app components and styles, use Acton's TON Connect
manifest, display full traces in scripts, pin Acton versions, and include
stronger README, script, ESLint, wrapper, and byte-for-byte consistency
checks. - App templates now inject normalized npm package names while preserving
package.jsonandpackage-lock.jsonfield order, avoiding unnecessary
lockfile churn in generated projects. - Counter, Jetton, NFT, empty-app, and wallet-extension templates were refined
with owner checks, cleaner tests, better TonCenter key handling, Tolk
metadata strings, fewer unnecessary casts, and more consistent generated app
wiring. - Jetton, NFT, and wallet-extension template tests now use more consistent
import grouping, helper placement, andtest <domain>:name prefixes, and
Jetton scripts now point their default metadata image at the Acton logo
instead of the broken TON symbol URL. - Added
acton wrapper --allfor regenerating wrappers across configured
contracts. - Generated wrappers now integrate typed
@abi.clientType(...)declarations,
use.genfilenames, avoid unused imports, include explicit return types,
and no longer suppress formatter and linter checks by default. - TypeScript wrapper generation was updated and template commands now expose a
clearer wrapper-regeneration path for projects that include generated app
code.
Testing, Coverage, and Stdlib
- Added
@test.skip("description"). Skip and TODO reasons now appear in
console output, Test UI, JUnit, and TeamCity reports. acton testnow fails when no tests are selected, validates custom networks
earlier, reports missing wallets with better setup guidance, and correctly
merges CLI flags withActon.tomlsettings.- Fork-mode tests now preserve remote last-transaction LT/hash metadata from
TonCenter, and additional fork-mode coverage was added for scripts and
test-runner flows. - Mutation testing now checks that the baseline test run is green before
mutating and gives clearer output when filtering selects no baseline tests. - JUnit and TeamCity reports now include richer captured stdout/stderr,
location hints, skip/TODO details, and failure context. - The dot reporter prints clearer runtime and failure details, avoids gas
snapshot noise when tests fail, and benefits from faster message processing. - Test runner filesystem helpers and snapshot APIs now reject absolute paths,
parent-directory escapes, and symlink escapes outside the project root. - Coverage excludes
.test.tolkfiles by default, handles very large VM logs
better, and keeps the branch-coverage work from 0.3.0 available in the normal
reporting flow. - Stdlib gained
SendResultList.waitForTrace(), interactivepromptIntand
promptAddress, better non-interactive prompt fallbacks, array.map(),
.filter(), and.each(),BASECHAIN, state-init search parameters, and
external-in transaction body/message decoding. expect().toEqual()andexpect().not.toEqual()now compare typed
values instead of raw tuple layouts, which fixes nullable struct and union
equality and produces clearer diffs for nested structs, arrays, and top-level
union cases.- Fixed
Expectation<map<K, V>>.toHaveLengthvalue ordering and improved
net.isDeployed, matcher behavior, bounce opcode handling, empty-data
opcode loading, and typed mismatch rendering forenv.slice()values.
Debugging, Tracing, and UI
- Console transaction trees, retrace, Test UI, and localnet explorer views now
cover external-in, tick-tock, reserve, send-message,setCode, and
changeLibraryactions with richer ABI-decoded bodies, opcode chips, mode
descriptions, source locations, failure context, and fallback rendering. - On-demand disassembly is available for
setCodeand embedded
changeLibraryactions, andacton disasm --jsoncan emit machine-readable
disassembly with source-map ranges. acton disasmis more tolerant of malformed or partial code slices: invalid
opcodes and undecompilable inline/ref code are emitted asembed x{...}
slices, dic...
0.3.2 - 27.04.2026
Release Notes
Acton 0.3.2 expands project scaffolding, wrapper generation, disassembly,
script argument handling, and stdlib test APIs while tightening formatter,
linter, debugger, localnet, and reporting behavior. It also refreshes the
documentation site and fixes several wrapper, template, logging, and UI issues
found after 0.3.1.
Added
- Added
acton init --create-appfor scaffolding Vite-based TypeScript apps,
along with app templates and generated TypeScript wrappers for Counter,
Jetton, and NFT projects. - Added
acton meta get-schemasupport for the custom mutation rules schema
and the lint JSON report schema. - Added
SendResultList.waitForTrace()and localnet v3 trace lookup support,
includingmsg_hash-based trace discovery. - Added stdlib support for interactive
promptIntandpromptAddress, array
.map(),.filter(), and.each(),BASECHAIN, external-in transaction
body/message decoding, and state-init search parameters. - Added a linter inspection for documenting enum values used in
throw ...
paths. The inspection is available but allowed by default. - Added
acton disasm --json, which returns machine-readable disassembly with
optional source-to-assembly mapping ranges from--source-map. - Added ABI-driven parsing and validation for
acton scriptarguments, with
clearer support and error reporting for arrays, nullable values, addresses,
strings, cells, and other CLI-passed types. - Added tree-sitter support for annotated struct fields and typed
@abi.clientType(...)declarations.
Changed
- Generated wrappers now use
.genfilenames, avoid unused imports, include
explicit return types, and stop suppressing linter and formatter checks by
default. - Counter, Jetton, and NFT templates were refined with unified contract
sources,.env.example-based setup, clearer wrapper regeneration flows,
prettier README/tests/scripts, app flows, owner checks, and consistency
checks for generated wrappers. - The dot reporter now prints richer failure/runtime details, supports more
cases with colors, and benefits from faster message processing. - Coverage and VM log handling now scale better for very large VM logs.
tolk-fmtnow handles file header comments, single string annotations,
simple literal function calls, and type instantiation formatting more
predictably.- Debugger stepping and rendering were improved for child VMs, stop requests,
parent-frame locals, invalid-message stops, and union type display. - Documentation gained a refreshed landing page, video previews, linter error
previews, link validation, PR previews, and updated install URLs. - Internal crate names were normalized to the current kebab-case naming style.
state_initnow usesCell<StateInit?>to match the latest Tolk 1.4
expectations.
Fixed
- Fixed wrapper generation around unused imports and shard address calculation.
- Fixed NFT and Jetton template issues, including TonCenter key handling in app
templates. - Fixed the Counter app template by aligning wallet flows with TonConnect UI.
- Fixed
net.isDeployedand related matcher logic for prefunded and
deterministic deploy paths. - Fixed empty-data handling in
TlbMessageRelaxedGeneric.loadOpcodeand
improved bounced opcode matching for the new prefix format. - Fixed logging setup and addressed a UI security audit finding.
- Fixed docs cache and missing documentation pages in CI.
Install acton 0.3.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ton-blockchain/acton/releases/download/v0.3.2/acton-installer.sh | shDownload acton 0.3.2
| File | Platform | Checksum |
|---|---|---|
| acton-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| acton-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| acton-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| acton-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.3.1 - 23.04.2026
Release Notes
Acton 0.3.1 is a focused follow-up to 0.3.0. It improves the test runner and
both UI surfaces, expands transaction and action inspection in the Test UI and
localnet explorer, and smooths a handful of scripting, formatting, and docs
rough edges.
Added
- Added support for
@test.skip("description")in the test runner. Skip and
TODO reasons now flow through console output, the Test UI, JUnit, and
TeamCity reporting. - Added Nushell support to
acton completions. - Added a new lint inspection that warns about explicit
.toCell()inside
createMessage({ body: ... }), where the extra conversion is usually
unnecessary. - Added on-demand disassembly for
setCodeand embeddedchangeLibrary
actions in the Test UI and localnet explorer.
Changed
- Expanded Test UI and localnet explorer transaction views for
external-inandtick-tockflows, including better root visualization,
richer phase and action details, and better handling of large traces. - Send-message actions now show ABI-decoded bodies, opcode chips, clearer
send-mode descriptions, and better fallback handling for raw and bounced
payloads. reserve,setCode, andchangeLibraryactions now render with clearer
mode details, failure context, and code/library inspection.- Parsed maps and storage diffs are now rendered more readably in transaction
details and tree tooltips, and oversized trace selectors/tooltips are now
scrollable instead of stretching the layout. tolkfmtnow preserves user-authored line breaks in function calls,
function parameter lists, and union type aliases.acton upno longer special-cases Homebrew-style installation paths.
Fixed
- Fixed
net.sendExternal()on real networks and cleaned up the surrounding
wait-for-transaction flows used by templates and scripts. - Fixed a
404on optional coverage loading in the Test UI. - Fixed several broken docs links and generated documentation references.
Install acton 0.3.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ton-blockchain/acton/releases/download/v0.3.1/acton-installer.sh | shDownload acton 0.3.1
| File | Platform | Checksum |
|---|---|---|
| acton-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| acton-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| acton-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| acton-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.3.0 - 20.04.2026
Release Notes
Acton 0.3.0 focuses on cleaning up and consolidating the surface introduced in
0.2.0. It renames several CLI and manifest concepts around broadcasting,
local execution, wrappers, and imports; reorganizes the Acton stdlib; and adds
a richer localnet explorer, much stronger debugger output, better coverage and
test-runner performance, Tolk 1.4 support, and a new NFT starter template.
Breaking Changes and Migration
-
acton scriptno longer uses--broadcast. Passing--net <network>now
both selects the live network and enables real broadcasting. Local emulation
is still the default when--netis omitted.# before acton script scripts/deploy.tolk --broadcast --net testnet # after acton script scripts/deploy.tolk --net testnet
If you previously used
--broadcastin project scripts, README snippets, CI
jobs, or shell aliases, remove it everywhere. If you still want local
execution against remote state, keep using--fork-netwithout--net. -
TonCenter authentication is now environment-only and split by network.
User-facing--api-keyflags and the[test].api-keyconfig field were
removed. UseTONCENTER_TESTNET_API_KEYfor testnet flows and
TONCENTER_MAINNET_API_KEYfor mainnet flows.# before acton test --fork-net testnet --api-key YOUR_API_KEY acton script scripts/deploy.tolk --net mainnet --api-key YOUR_API_KEY # after TONCENTER_TESTNET_API_KEY=YOUR_API_KEY acton test --fork-net testnet TONCENTER_MAINNET_API_KEY=YOUR_API_KEY acton script scripts/deploy.tolk --net mainnet
Built-in
mainnet/testnetcommands now pick the matching env var
automatically. Forcustom:<name>, Acton reads
<NORMALIZED_NAME>_API_KEYinstead, for examplecustom:foo-bar->
FOO_BAR_API_KEY. The old sharedTONCENTER_API_KEYfallback is gone. -
acton litenodewas renamed toacton localnet, and the manifest section
[litenode]was renamed to[localnet]. The network name stayslocalnet,
so--net localnetand[networks.localnet]do not change.# before [litenode] port = 3010 fork-net = "testnet" # after [localnet] port = 3010 fork-net = "testnet"
Update CLI commands, docs links, helper scripts, and config lookups that
still refer tolitenode. -
Acton.tomlrenamed[mappings]to[import-mappings].# before [mappings] wrappers = "tests/wrappers" # after [import-mappings] wrappers = "wrappers"
The old section name is not the canonical config surface anymore, so rename
it instead of keeping compatibility shims in downstream tooling. -
Contract config field
namewas renamed todisplay-name. The
[contracts.<NAME>]key is now the canonical contract name used for CLI
selection, dependency naming, helper generation, and wrapper generation;
display-nameis an optional UI/log label only.# before [contracts.counter] name = "Counter" src = "contracts/counter.tolk" # after [contracts.Counter] display-name = "Counter" src = "contracts/Counter.tolk"
New scaffolds now use PascalCase contract names and filenames for consistency,
but the hard migration requirement for existing projects is the
name -> display-namerename. If you keep older contract keys, helper file
names and generated function names continue to follow those keys. -
Default generated Tolk wrapper locations moved from
tests/wrappers/to
wrappers/in standard layouts, and fromcontracts/tests/wrappers/to
contracts/wrappers/in--applayouts. The default@wrappersmapping was
updated accordingly.If your tests, scripts, editors, or CI still import or watch the old paths,
either move the files or pin the legacy layout explicitly:[wrappers.tolk] output-dir = "tests/wrappers" test-output-dir = "tests" [import-mappings] wrappers = "tests/wrappers"
-
Default generated TypeScript wrapper output moved from
wrappers/to
wrapper-ts/.If your frontend imports from the old directory, either update the import
path or pin the old output directory:[wrappers.typescript] output-dir = "wrappers"
-
Generated dependency helper files were renamed from
<dependency>_code.tolkto<dependency>.code.tolk.# before gen/jetton-wallet_code.tolk # after gen/JettonWallet.code.tolkUpdate any checked-in generated helpers, import statements, globs, and
scripts that reference the old_codesuffix. -
The test runner now recognizes only dotted
@test.*annotations. Legacy
object-style@test({...})forms are ignored.// before @test({ skip: true }) @test({ todo: "later" }) @test({ fail_with: 42 }) @test({ gas_limit: 1000 }) @test({ fuzz: { runs: 64, seed: 42 } }) // after @test.skip @test.todo("later") @test.fail_with(42) @test.gas_limit(1000) @test.fuzz({ runs: 64, seed: 42 })Update all existing test sources before relying on skip/todo/fail/fuzz
behavior in 0.3.0. -
acton testandacton scriptno longer print low-level executor debug
logs by default. If you relied on the old always-verbose behavior for CI,
snapshots, troubleshooting, ordebug.dumpStack()output, pass-v/
--verboseexplicitly.# before acton test acton script scripts/debug.tolk # after, to keep the old debug-log-heavy output acton test -v acton script scripts/debug.tolk --verbose
Verbosity above one level is not supported yet, so use
-vonce instead of
-vv. -
Lint suppression comments were renamed from
// acton-disable-next-line <rule>to
// check-disable-next-line <rule>.// before // acton-disable-next-line unused-variable // after // check-disable-next-line unused-variable -
The Acton stdlib import surface was reorganized in
#849. Several top-level
modules were flattened, several testing/emulation APIs moved into
better-scoped modules, and a few legacy paths were removed.Before After Notes @acton/build/build@acton/buildFlat import path @acton/crypto/crypto@acton/cryptoFlat import path @acton/ffi/ffi@acton/ffiFlat import path @acton/promts/prompts@acton/promptsFixed typo and flattened path @acton/testing/transaction_expect@acton/emulation/networkplus@acton/testing/expectTransaction matchers now live with SendResultList@acton/testing/outlist_expect@acton/types/out_actionsplus@acton/testing/expectOut-action matchers now live with out-action types @acton/emulation/tracingacton test --save-test-trace,SendResultList.giveName(...), and the saved-trace/Test UI workflowsTrace export moved out of the old stdlib module @acton/vm/vmuse the specialized replacements in @acton/emulation/testing,@acton/emulation/network, and@acton/types/*For example, vm.registerLibrary(...)becametesting.registerLibrary(...)If you maintain custom helper libraries or examples, search for the removed
paths directly and rewrite imports rather than relying on transitive aliases. -
Build-owned generated artifacts now live under
build/instead of.acton/.
This affects shared compilation cache, saved traces, mutation sessions, and
project-local logs:Before After .acton/cachebuild/cache.acton/tracesbuild/traces.acton/mutation-sessionsbuild/mutation-sessions.acton/logsbuild/logs.acton/still remains the home of the bundled Acton stdlib and other
project-managed support files, so do not delete it. Update CI caches,
cleanup scripts, editor integrations, and.gitignorerules that still
assume build-owned artifacts live under.acton/. -
Raw Tolk compiler JSON now follows upstream
snake_casefield names instead
ofcamelCase. This is primarily a breaking change for custom integrations
that consume compiler ABI or source-map JSON directly. If you only use
acton build,acton wrapper, or the bun...