Pactus 1.17.0 (Berlin) Released

October 28, 2026
Pactus 1.17.0 (Berlin) Released

Overview

Pactus Blockchain Version 1.17.0 (Berlin) is now available for download. This release includes the following applications:

  • Pactus GUI: The graphical user interface (GUI) for the Pactus node that is suitable for both beginners and experienced users.

  • Pactus Daemon: The command-line interface (CLI) for the Pactus node that is suitable for experienced users.

  • Pactus Shell: The command-line tool that allows users to interact with a Pactus node.

  • Pactus Wallet: The wallet software that allows users to manage their wallet and send transactions without the need to sync the entire blockchain.

Highlights

The most significant change in the Berlin release is the implementation of Native State Anchoring, introduced through Pactus Improvement Proposal 50 (PIP-50). This adds a single live, deposit-backed commitment slot to each Pactus account, enabling off-chain applications such as document stamping, DID documents, revocation registries, and service manifests to attest to a bounded digest directly in the account state.

An anchor lives in the current global state, so a pruned node can still serve it without the historical transaction that created it, and it can be revoked by deleting the slot, which refunds the deposit. A create and an update require a refundable deposit of at least 1 PAC, and the protocol-written timestamps come from the including block, never from the transaction payload, so they cannot be forged. Consensus stores no application payloads, files, or search indexes; those remain off-chain.

Together with the new payload type and the extended account serialization, the official node exposes read, build-transaction, and change-notification APIs (GetAnchor, ListAnchors, GetRawAnchorTransaction, and the anchor_info ZMQ topic) so wallets, indexers, and apps do not need to invent a parallel convention. As with every protocol change, this feature is activated through PIP-51 at protocol version 5, once more than 75% of committee power supports it.

The GUI has received a complete visual overhaul. The modernized GTK interface introduces a sidebar navigation, redesigned node and validator dashboards, and full light and dark theme support, giving the application a cleaner and more consistent look on every platform.

Pactus GUI

Alongside the new look, the GUI replaces emoji with crisp SVG icons, shows transaction time and pager arrows in transaction lists, adds balance and stake to address lists, adds a Max button to amount fields, and can optionally start automatically on system startup.

Legacy JSON wallets can now be migrated to the modern SQLite storage. The migration is available from the GTK GUI with a dedicated upgrade button, through a new migrate command in the CLI, and over a new MigrateWallet gRPC endpoint, so existing users can move their wallets in place without losing funds.

On the protocol and security side, secp256k1 account restrictions are removed after protocol version 4, delegated withdrawals now require the stake owner’s signature, CP quorum certificates are bound to vote height and round, and subsidy transactions are rejected by the transaction pool. Under the hood, the release includes a faster CanVote check with O(1) map lookups and a number of stability fixes across the node, store, and sync.

Download

To start using Pactus blockchain, download the latest version from the download page and join the Mainnet.

How to Upgrade

If you are running an older version, close it first. Then uninstall the previous version and install the newer version. If you are using the archived version, simply replace it with the new version.

Software Development Kits

Software Development Kits are available in JavaScript and Python:

Change log

This version includes several changes and improvements, such as:

Feat

  • gtk: replace emoji with SVG icons (#2445)
  • gtk: show transaction time and pager arrows (#2437)
  • gtk: add start on system startup option (#2440)
  • gtk: show balance and stake in address lists (#2434)
  • gtk: add Max button to amount fields (#2436)
  • execution: implement PIP-50 state anchoring (#2407)
  • gtk: add upgrade button for legacy JSON wallets (#2410)
  • gtk: modernize the GTK GUI - sidebar, dashboards, light/dark theme (#2379)
  • grpc: add MigrateWallet RPC for legacy JSON wallets (#2397)
  • wallet: migrate legacy JSON wallet in place (#2393)
  • cmd: add migrate command for legacy JSON wallets (#2390)
  • wallet: add migration from legacy JSON to SQLite storage (#2388)
  • execution: remove secp256k1 account restrictions after protocol v4 (#2381)

Fix

  • gtk: refocus main window after sending tx (#2444)
  • gtk: wrap committee stat cards (#2443)
  • gtk: stretch entries to the dialog width (#2442)
  • txpool: reject subsidy transactions (#2441)
  • gtk: make the Windows tray icon clickable and visible (#2439)
  • gtk: skip system tray on macOS (#2431)
  • gtk: use default font backend on macOS (#2433)
  • execution: require stake owner signature for delegated withdraw (#2427)
  • vote: bind CP quorum certificates to vote height and round (#2426)
  • packager: rename anchor from field to sender (#2425)
  • linter: make BUILD_TAG=gtk make check pass with Go 1.27.2 (#2422)
  • state: handle invalid genesis and fork gracefully (#2415)
  • store: close the database when startup fails (#2414)
  • util: fix endless download and directory check (#2412)
  • sync: fix session expiry and synced check (#2416)
  • gtk: set focus on PasswordEntry (#2408)

Refactor

  • store: name the offsets of block records (#2420)
  • gtk: use non-deprecated texture and response APIs (#2409)
  • www: use netutil package (#2398)
  • state: use ProtocolVersionLatest for block version upgrade (#2392)
  • types: add Encode/Decode methods to Amount (#2361)

Perf

  • consensus: optimize CanVote with O(1) map lookup (#2382)

You can find the full list of changes on Github, as well as the source code