Skip to content

Conversation

@Deniallugo
Copy link
Contributor

@Deniallugo Deniallugo commented Sep 4, 2025

What ❔

Support for deploying and managing multiple CTMs, and allowing selection between them when creating chains.

Flow of execution

1. Create a new ecosystem

zkstack ecosystem create

This command creates a new ecosystem.
You’ll specify the link to the code repository (by default, this points to the Era codebase).
Contracts will be used as a submodule within this repository.

After creating the ecosystem, initialize it:

zkstack ecosystem init

This command deploys a new ecosystem and one default Era chain.


2. Initialize another CTM

Once everything is deployed, you can deploy an additional CTM:

zkstack ctm init-new-ctm --zksync-os --contracts-src-path <path> --default-configs-src-path <path>

Parameters:

  • --contracts-src-path — Path to the Era contracts (you must clone and manage this repository manually).
    Use a branch or tag matching the desired zkSync OS or Era version.
  • --default-configs-src-path — Path to default configs (in Era this is typically etc/env/file_based).
    Only one file is required: genesis.yaml (in the old format).

The data from these paths will be used during CTM deployment.


3. Register the CTM

Once deployed, register the CTM within the ecosystem:

zkstack ecosystem register-ctm --zksync-os

⚠️ Important:
register-ctm is an ecosystem-level subcommand — it must be called from within the ecosystem context.

After registration, any chain can be created using this CTM.


4. Create a new chain using the selected CTM

zkstack chain create --zksync-os

From this point on, all subsequent commands and scripts will use zkSync OS contracts by default.

Then initialize the chain:

zkstack chain init

This finalizes the chain initialization.


5. Development mode

If you use the --dev flag during ecosystem initialization:

zkstack ecosystem init --dev

All available CTMs and chains will be automatically initialized.


6. Optional shortcut

Immediately after creating the ecosystem, you can predefine CTM contracts:

zkstack ctm set-ctm-contracts --zksync-os

This sets the contracts path for the CTM so you don’t need to specify --contracts-src-path later during CTM initialization.


Why ❔

This change enables ecosystems to:

  • Manage multiple CTM contract versions (e.g., Era and zkSync OS) side-by-side.
  • Flexibly choose which CTM to use when deploying new chains.
  • Simplify migration testing and allow parallel evolution of contract versions.
  • Support gradual transition to zkSync OS while maintaining Era compatibility.

It also decouples contract source management from code releases, letting developers point to any desired version manually.


Is this a breaking change?

  • Yes
  • No

Operational changes

  • New commands added:

    • zkstack ctm init-new-ctm
    • zkstack ecosystem register-ctm
    • zkstack ctm set-ctm-contracts
  • ecosystem init --dev now initializes all allowed CTMs and chains automatically.

  • Ecosystem can now host multiple CTMs (e.g., Era and zkSync OS).

  • Paths to contract sources and default configs must be managed manually when deploying additional CTMs.


Checklist

  • PR title accurately reflects the body and purpose of the change.
  • Tests have been added or updated.
  • Documentation comments have been added or updated.
  • Code formatted with zkstack dev fmt and linted with zkstack dev lint.

@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch from 1c2b10b to 8351822 Compare September 4, 2025 10:03
Base automatically changed from deniallugo-support-zksync-os-flag to main September 9, 2025 09:19
@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch from 8351822 to ef91248 Compare September 9, 2025 14:52
@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch from 9497a29 to baf0257 Compare September 12, 2025 12:02
@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch from 798d951 to 0f6d3e1 Compare September 18, 2025 13:36
@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch from 2a8ec19 to f001339 Compare September 25, 2025 10:19
@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch 3 times, most recently from 934d36b to 8404486 Compare September 26, 2025 21:06
@Deniallugo Deniallugo force-pushed the deniallugo-refactor-ctm-commands branch from f59008e to 781b6db Compare October 6, 2025 13:44
@Deniallugo Deniallugo requested a review from mm-zk October 7, 2025 16:52
sanekmelnikov
sanekmelnikov previously approved these changes Oct 8, 2025
@Deniallugo Deniallugo enabled auto-merge October 8, 2025 14:52
artmakh
artmakh previously approved these changes Oct 8, 2025
@Deniallugo Deniallugo added this pull request to the merge queue Oct 8, 2025
@Deniallugo Deniallugo removed this pull request from the merge queue due to a manual request Oct 8, 2025
Signed-off-by: Danil <[email protected]>
@Deniallugo Deniallugo dismissed stale reviews from artmakh and sanekmelnikov via b6bd62b October 8, 2025 15:42
@Deniallugo Deniallugo requested a review from artmakh October 8, 2025 15:51
@Deniallugo Deniallugo added this pull request to the merge queue Oct 8, 2025
Merged via the queue into main with commit 5d2a7cd Oct 8, 2025
40 checks passed
@Deniallugo Deniallugo deleted the deniallugo-refactor-ctm-commands branch October 8, 2025 17:04
github-merge-queue bot pushed a commit that referenced this pull request Oct 9, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.2.0](zkstack_cli-v0.1.2...zkstack_cli-v0.2.0)
(2025-10-09)


### ⚠ BREAKING CHANGES

* v29 upgrade testing & zkstack_cli changes
([#4332](#4332))
* **zkstack_cli:** Fix zkstack cli v28 script
([#3946](#3946))
* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* add dedicated TEE proof data handler module
([#3872](#3872))
([ac64ee6](ac64ee6))
* add flag to save calldata
([#4471](#4471))
([1ee5eac](1ee5eac))
* add integration test for DA migration
([#3944](#3944))
([52aff1d](52aff1d))
* add prividium docker image support for block explorer
([#4127](#4127))
([df9a433](df9a433))
* add prividium mode to zkstack explorer
([#4079](#4079))
([c571914](c571914))
* Add proof manager contracts submodule
([#4189](#4189))
([0c75985](0c75985))
* Add S3 implementation for object_store
([#3664](#3664))
([a848927](a848927))
* Add Support for Protocol Version v28
([#3821](#3821))
([5419420](5419420))
* Adding 'rich_accounts' command to zkstack
([#3895](#3895))
([50b72dc](50b72dc))
* **api:** Support Unix domain sockets for healthcheck server
([#4226](#4226))
([b06bacb](b06bacb))
* **avail-client:** async blob dispatch
([#4010](#4010))
([7a18647](7a18647))
* bump rustc to `nightly-2025-03-19`
([#3985](#3985))
([d27390e](d27390e))
* **ci:** fast integration tests framework
([#4255](#4255))
([a72cbd8](a72cbd8))
* **config:** Report config params in more ways
([#4126](#4126))
([a78531c](a78531c))
* Configuration system PoC
([#3851](#3851))
([7b449c2](7b449c2))
* **consensus:** Add consensus protocol versioning
([#3720](#3720))
([d1b4308](d1b4308))
* **consensus:** Validator committee rotation
([#4014](#4014))
([333efea](333efea))
* **contract_verifier:** add etherscan verification request support to
the verifier api
([#3956](#3956))
([87938b3](87938b3))
* **contract_verifier:** read compiler versions from cbor metadata if
available
([#4002](#4002))
([9bc20a4](9bc20a4))
* **contract-verifier:** add Etherscan contract verification
([#3609](#3609))
([a4ea0f2](a4ea0f2))
* Draft v29
([#3960](#3960))
([91843a2](91843a2))
* **en:** Cache remote config for en
([#4367](#4367))
([20bc4a8](20bc4a8))
* **en:** remove dependency on pubdata commitment mode
([#3826](#3826))
([a0c78c0](a0c78c0))
* **en:** remove JSON RPC syncing
([#4258](#4258))
([d194604](d194604))
* **en:** return back JSON RPC syncing
([#4344](#4344))
([24b2990](24b2990))
* **en:** Use config system for env-based EN configuration
([#4104](#4104))
([b706025](b706025))
* Eth proof manager sender
([#4266](#4266))
([93b2086](93b2086))
* **eth_sender:** Add fast finalization into eth_tx_manager
([#4070](#4070))
([c6b815d](c6b815d))
* **eth-sender:** set `from_addr` for non-blob txs
([#3898](#3898))
([c699f8a](c699f8a))
* **gateway:** add checks that the server version is correct
([#3681](#3681))
([659edaa](659edaa))
* **gateway:** Migration to Gateway
([#3654](#3654))
([2858ba0](2858ba0))
* **gateway:** Requirement to stop L1-&gt;L2 transactions before v26
upgrade ([#3707](#3707))
([0a095b7](0a095b7))
* **private-rpc:** improved compatibility with ethers library + tests
([#4046](#4046))
([0e2e0d8](0e2e0d8))
* **private-rpc:** option to run private proxy in ZKStack CLI + moving
Private Proxy files inside zksync-era repo
([#3919](#3919))
([3b9307c](3b9307c))
* Proof data handler client
([#3874](#3874))
([daf6f7b](daf6f7b))
* Proof manager watcher
([#4241](#4241))
([6423b0d](6423b0d))
* Prover Cluster follow-up
[#2](#2)
([#4001](#4001))
([d8ed7f7](d8ed7f7))
* **prover:** --threads feature to WVGs
([#4291](#4291))
([846f6e4](846f6e4))
* remove 2nd validator from command that prepares GW migration calldata
([#4331](#4331))
([f81ad19](f81ad19))
* Remove feature flags for upgrades & v28.1
([#4384](#4384))
([fa7e679](fa7e679))
* Remove old prover stack
([#3729](#3729))
([fbbdc76](fbbdc76))
* rework prover job identifiers
([#3888](#3888))
([073326f](073326f))
* split zkstack cli command
([#4418](#4418))
([36cd668](36cd668))
* update zkstack-cli for updated scripts
([#4481](#4481))
([cc0a95b](cc0a95b))
* updating upgrade and migration config files for testnet and mainnet
([#4148](#4148))
([6d11c2d](6d11c2d))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](#3626))
([4e74730](4e74730))
* V27 update
([#3580](#3580))
([9e18550](9e18550))
* **v27:** Use latest branch of release-v27
([#3713](#3713))
([6e1681e](6e1681e))
* v29 upgrade testing & zkstack_cli changes
([#4332](#4332))
([9e4755e](9e4755e))
* **zkstack_cli:** Add function to track chain admin priority txs
([#3897](#3897))
([fed2ca9](fed2ca9))
* **zkstack_cli:** finish enabling migrating chain from Gateway + remove
the gateway feature flag
([#3924](#3924))
([d091c90](d091c90))
* **zkstack_cli:** update gateway chain scripts
([#3852](#3852))
([542c7a9](542c7a9))
* **zkstack-cli:** add prove & execute wallets
([#4477](#4477))
([468cec9](468cec9))
* **zkstack:** Add zksync_os flag for ecosystem init
([#4456](#4456))
([49e0529](49e0529))
* **zkstack:** Allow skipping build for contracts and server during
ecosystem init
([#3697](#3697))
([81abd84](81abd84))
* **zkstack:** Allow to run separate integration test suites
([d287725](d287725))
* **zkstack:** bump alloy
([#4502](#4502))
([1a6ad60](1a6ad60))
* **zkstack:** Clarify prompt for funds check
([#3723](#3723))
([a8ea520](a8ea520))
* **zkstack:** Deploy 2 ctms and deploy chain for each of them
([#4458](#4458))
([5d2a7cd](5d2a7cd))
* **zkstack:** fast fmt
([#4222](#4222))
([d05c3dd](d05c3dd))
* **zkstack:** Generating keys for compressor
([#4301](#4301))
([b879b6f](b879b6f))
* **zkstack:** No genesis arg
([#4453](#4453))
([9034246](9034246))
* **zkstack:** zkstack cli for v27 upgrade
([#3718](#3718))
([91e04fb](91e04fb))


### Bug Fixes

* Changes to zkstack after testing migration from GW
([#3969](#3969))
([b63e607](b63e607))
* **consensus:** Correctly handle error on SetValidatorSchedule
([#4147](#4147))
([e169bd3](e169bd3))
* **consensus:** Debug page server port reuse
([#4273](#4273))
([77d043f](77d043f))
* **consensus:** Update consensus dependencies
([#4186](#4186))
([110a527](110a527))
* Fix security issues (bump dependencies)
([#3813](#3813))
([c6def9c](c6def9c))
* fix zkstack cli upgrade features + remove redundant CI workflow
([#3975](#3975))
([0f04134](0f04134))
* **gateway-migrator:** Properly handle unknown settlement layer
([#3961](#3961))
([b43e315](b43e315))
* make proof data handler backwards compatible
([#3767](#3767))
([bdbbaaa](bdbbaaa))
* remove zksync_contracts dep from zkstack_cli
([#4400](#4400))
([7bcf275](7bcf275))
* target_rpc address in private-rpc docker-compose
([#4062](#4062))
([b69819b](b69819b))
* **upgrades:** Read all skipped events
([#4504](#4504))
([1de5f63](1de5f63))
* **zkstack_cli:** Fix zkstack cli v28 script
([#3946](#3946))
([0a3d13f](0a3d13f))
* **zkstack:** add `--locked` to `cargo sqlx prepare`
([#3300](#3300))
([a98b1c8](a98b1c8))
* **zkstack:** Add param for setting da validation pair
([#4150](#4150))
([47e2517](47e2517))
* **zkstack:** Allow to use chain config if ecosystem is redundant
([#4236](#4236))
([066b3b1](066b3b1))
* **zkstack:** Fix prover run and shell
([#4422](#4422))
([eae38e2](eae38e2))
* **zkstack:** fixes for private rpc in zkstack cli
([#4012](#4012))
([be68210](be68210))
* **zkstack:** Generating compressor keys flow fix
([#4343](#4343))
([4cf2f67](4cf2f67))
* **zkstack:** make GW migration script compatible with pre-v29
([#4346](#4346))
([7ba2cf3](7ba2cf3))
* **zkstack:** make proving network contracts config optional
([#4263](#4263))
([3ebad3b](3ebad3b))
* **zkstack:** Migration params
([#4369](#4369))
([8597c32](8597c32))
* **zkstack:** Use `latest` for prover component by default
([#4120](#4120))
([91af29d](91af29d))


### Performance Improvements

* **db:** use copy in `insert_initial_writes`
([#3899](#3899))
([c6f1598](c6f1598))
* Instrumentation for Jemalloc (pt. 2)
([#4204](#4204))
([5e0bd65](5e0bd65))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Oct 16, 2025
🤖 I have created a release *beep* *boop*
---


##
[29.5.0](core-v29.4.1...core-v29.5.0)
(2025-10-16)


### Features

* add support for eip-7594 blob format
([#4542](#4542))
([b57d6f6](b57d6f6))
* adds l1_batch_number to zks_get_l2l1_logproof
([#4530](#4530))
([004dcdc](004dcdc))
* **zkstack:** Deploy 2 ctms and deploy chain for each of them
([#4458](#4458))
([5d2a7cd](5d2a7cd))


### Bug Fixes

* **eth_sender:** refactor support for eip7594
([#4543](#4543))
([462849a](462849a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Deniallugo added a commit that referenced this pull request Oct 22, 2025
## What ❔

**Support for deploying and managing multiple CTM (Contract Template
Manager) contracts, and allowing selection between them when creating
chains.**

### Flow of execution

#### 1. Create a new ecosystem

```bash
zkstack ecosystem create
```

This command creates a **new ecosystem**.
You’ll specify the link to the code repository (by default, this points
to the **Era** codebase).
Contracts will be used as a submodule within this repository.

After creating the ecosystem, initialize it:

```bash
zkstack ecosystem init
```

This command deploys a **new ecosystem** and **one default Era chain**.

---

#### 2. Initialize another CTM

Once everything is deployed, you can deploy an additional CTM:

```bash
zkstack ctm init-new-ctm --zksync-os --contracts-src-path <path> --default-configs-src-path <path>
```

**Parameters:**

* `--contracts-src-path` — Path to the **Era contracts** (you must clone
and manage this repository manually).
Use a branch or tag matching the desired **zkSync OS** or **Era**
version.
* `--default-configs-src-path` — Path to **default configs** (in Era
this is typically `etc/env/file_based`).
  Only one file is required: `genesis.yaml` (in the old format).

The data from these paths will be used during CTM deployment.

---

#### 3. Register the CTM

Once deployed, register the CTM within the ecosystem:

```bash
zkstack ecosystem register-ctm --zksync-os
```

> ⚠️ **Important:**
> `register-ctm` is an **ecosystem-level** subcommand — it must be
called from within the ecosystem context.

After registration, any chain can be created using this CTM.

---

#### 4. Create a new chain using the selected CTM

```bash
zkstack chain create --zksync-os
```

From this point on, all subsequent commands and scripts will use
**zkSync OS contracts** by default.

Then initialize the chain:

```bash
zkstack chain init
```

This finalizes the chain initialization.

---

#### 5. Development mode

If you use the `--dev` flag during ecosystem initialization:

```bash
zkstack ecosystem init --dev
```

All available CTMs and chains will be automatically initialized.

---

#### 6. Optional shortcut

Immediately after creating the ecosystem, you can predefine CTM
contracts:

```bash
zkstack ctm set-ctm-contracts --zksync-os
```

This sets the contracts path for the CTM so you don’t need to specify
`--contracts-src-path` later during CTM initialization.

---

## Why ❔

This change enables ecosystems to:

* Manage **multiple CTM contract versions** (e.g., Era and zkSync OS)
side-by-side.
* Flexibly choose which CTM to use when deploying new chains.
* Simplify migration testing and allow **parallel evolution** of
contract versions.
* Support **gradual transition** to zkSync OS while maintaining Era
compatibility.

It also decouples contract source management from code releases, letting
developers point to any desired version manually.

---

## Is this a breaking change?

* [ ] Yes
* [x] No

---

## Operational changes

* New commands added:

  * `zkstack ctm init-new-ctm`
  * `zkstack ecosystem register-ctm`
  * `zkstack ctm set-ctm-contracts`
* `ecosystem init --dev` now initializes all allowed CTMs and chains
automatically.
* Ecosystem can now host multiple CTMs (e.g., Era and zkSync OS).
* Paths to contract sources and default configs must be managed manually
when deploying additional CTMs.

---

## Checklist

* [ ] PR title accurately reflects the body and purpose of the change.
* [ ] Tests have been added or updated.
* [ ] Documentation comments have been added or updated.
* [ ] Code formatted with `zkstack dev fmt` and linted with `zkstack dev
lint`.

---------

Signed-off-by: Danil <[email protected]>
Deniallugo pushed a commit that referenced this pull request Oct 22, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.2.0](zkstack_cli-v0.1.2...zkstack_cli-v0.2.0)
(2025-10-09)


### ⚠ BREAKING CHANGES

* v29 upgrade testing & zkstack_cli changes
([#4332](#4332))
* **zkstack_cli:** Fix zkstack cli v28 script
([#3946](#3946))
* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* add dedicated TEE proof data handler module
([#3872](#3872))
([ac64ee6](ac64ee6))
* add flag to save calldata
([#4471](#4471))
([1ee5eac](1ee5eac))
* add integration test for DA migration
([#3944](#3944))
([52aff1d](52aff1d))
* add prividium docker image support for block explorer
([#4127](#4127))
([df9a433](df9a433))
* add prividium mode to zkstack explorer
([#4079](#4079))
([c571914](c571914))
* Add proof manager contracts submodule
([#4189](#4189))
([0c75985](0c75985))
* Add S3 implementation for object_store
([#3664](#3664))
([a848927](a848927))
* Add Support for Protocol Version v28
([#3821](#3821))
([5419420](5419420))
* Adding 'rich_accounts' command to zkstack
([#3895](#3895))
([50b72dc](50b72dc))
* **api:** Support Unix domain sockets for healthcheck server
([#4226](#4226))
([b06bacb](b06bacb))
* **avail-client:** async blob dispatch
([#4010](#4010))
([7a18647](7a18647))
* bump rustc to `nightly-2025-03-19`
([#3985](#3985))
([d27390e](d27390e))
* **ci:** fast integration tests framework
([#4255](#4255))
([a72cbd8](a72cbd8))
* **config:** Report config params in more ways
([#4126](#4126))
([a78531c](a78531c))
* Configuration system PoC
([#3851](#3851))
([7b449c2](7b449c2))
* **consensus:** Add consensus protocol versioning
([#3720](#3720))
([d1b4308](d1b4308))
* **consensus:** Validator committee rotation
([#4014](#4014))
([333efea](333efea))
* **contract_verifier:** add etherscan verification request support to
the verifier api
([#3956](#3956))
([87938b3](87938b3))
* **contract_verifier:** read compiler versions from cbor metadata if
available
([#4002](#4002))
([9bc20a4](9bc20a4))
* **contract-verifier:** add Etherscan contract verification
([#3609](#3609))
([a4ea0f2](a4ea0f2))
* Draft v29
([#3960](#3960))
([91843a2](91843a2))
* **en:** Cache remote config for en
([#4367](#4367))
([20bc4a8](20bc4a8))
* **en:** remove dependency on pubdata commitment mode
([#3826](#3826))
([a0c78c0](a0c78c0))
* **en:** remove JSON RPC syncing
([#4258](#4258))
([d194604](d194604))
* **en:** return back JSON RPC syncing
([#4344](#4344))
([24b2990](24b2990))
* **en:** Use config system for env-based EN configuration
([#4104](#4104))
([b706025](b706025))
* Eth proof manager sender
([#4266](#4266))
([93b2086](93b2086))
* **eth_sender:** Add fast finalization into eth_tx_manager
([#4070](#4070))
([c6b815d](c6b815d))
* **eth-sender:** set `from_addr` for non-blob txs
([#3898](#3898))
([c699f8a](c699f8a))
* **gateway:** add checks that the server version is correct
([#3681](#3681))
([659edaa](659edaa))
* **gateway:** Migration to Gateway
([#3654](#3654))
([2858ba0](2858ba0))
* **gateway:** Requirement to stop L1-&gt;L2 transactions before v26
upgrade ([#3707](#3707))
([0a095b7](0a095b7))
* **private-rpc:** improved compatibility with ethers library + tests
([#4046](#4046))
([0e2e0d8](0e2e0d8))
* **private-rpc:** option to run private proxy in ZKStack CLI + moving
Private Proxy files inside zksync-era repo
([#3919](#3919))
([3b9307c](3b9307c))
* Proof data handler client
([#3874](#3874))
([daf6f7b](daf6f7b))
* Proof manager watcher
([#4241](#4241))
([6423b0d](6423b0d))
* Prover Cluster follow-up
[#2](#2)
([#4001](#4001))
([d8ed7f7](d8ed7f7))
* **prover:** --threads feature to WVGs
([#4291](#4291))
([846f6e4](846f6e4))
* remove 2nd validator from command that prepares GW migration calldata
([#4331](#4331))
([f81ad19](f81ad19))
* Remove feature flags for upgrades & v28.1
([#4384](#4384))
([fa7e679](fa7e679))
* Remove old prover stack
([#3729](#3729))
([fbbdc76](fbbdc76))
* rework prover job identifiers
([#3888](#3888))
([073326f](073326f))
* split zkstack cli command
([#4418](#4418))
([36cd668](36cd668))
* update zkstack-cli for updated scripts
([#4481](#4481))
([cc0a95b](cc0a95b))
* updating upgrade and migration config files for testnet and mainnet
([#4148](#4148))
([6d11c2d](6d11c2d))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](#3626))
([4e74730](4e74730))
* V27 update
([#3580](#3580))
([9e18550](9e18550))
* **v27:** Use latest branch of release-v27
([#3713](#3713))
([6e1681e](6e1681e))
* v29 upgrade testing & zkstack_cli changes
([#4332](#4332))
([9e4755e](9e4755e))
* **zkstack_cli:** Add function to track chain admin priority txs
([#3897](#3897))
([fed2ca9](fed2ca9))
* **zkstack_cli:** finish enabling migrating chain from Gateway + remove
the gateway feature flag
([#3924](#3924))
([d091c90](d091c90))
* **zkstack_cli:** update gateway chain scripts
([#3852](#3852))
([542c7a9](542c7a9))
* **zkstack-cli:** add prove & execute wallets
([#4477](#4477))
([468cec9](468cec9))
* **zkstack:** Add zksync_os flag for ecosystem init
([#4456](#4456))
([49e0529](49e0529))
* **zkstack:** Allow skipping build for contracts and server during
ecosystem init
([#3697](#3697))
([81abd84](81abd84))
* **zkstack:** Allow to run separate integration test suites
([d287725](d287725))
* **zkstack:** bump alloy
([#4502](#4502))
([1a6ad60](1a6ad60))
* **zkstack:** Clarify prompt for funds check
([#3723](#3723))
([a8ea520](a8ea520))
* **zkstack:** Deploy 2 ctms and deploy chain for each of them
([#4458](#4458))
([5d2a7cd](5d2a7cd))
* **zkstack:** fast fmt
([#4222](#4222))
([d05c3dd](d05c3dd))
* **zkstack:** Generating keys for compressor
([#4301](#4301))
([b879b6f](b879b6f))
* **zkstack:** No genesis arg
([#4453](#4453))
([9034246](9034246))
* **zkstack:** zkstack cli for v27 upgrade
([#3718](#3718))
([91e04fb](91e04fb))


### Bug Fixes

* Changes to zkstack after testing migration from GW
([#3969](#3969))
([b63e607](b63e607))
* **consensus:** Correctly handle error on SetValidatorSchedule
([#4147](#4147))
([e169bd3](e169bd3))
* **consensus:** Debug page server port reuse
([#4273](#4273))
([77d043f](77d043f))
* **consensus:** Update consensus dependencies
([#4186](#4186))
([110a527](110a527))
* Fix security issues (bump dependencies)
([#3813](#3813))
([c6def9c](c6def9c))
* fix zkstack cli upgrade features + remove redundant CI workflow
([#3975](#3975))
([0f04134](0f04134))
* **gateway-migrator:** Properly handle unknown settlement layer
([#3961](#3961))
([b43e315](b43e315))
* make proof data handler backwards compatible
([#3767](#3767))
([bdbbaaa](bdbbaaa))
* remove zksync_contracts dep from zkstack_cli
([#4400](#4400))
([7bcf275](7bcf275))
* target_rpc address in private-rpc docker-compose
([#4062](#4062))
([b69819b](b69819b))
* **upgrades:** Read all skipped events
([#4504](#4504))
([1de5f63](1de5f63))
* **zkstack_cli:** Fix zkstack cli v28 script
([#3946](#3946))
([0a3d13f](0a3d13f))
* **zkstack:** add `--locked` to `cargo sqlx prepare`
([#3300](#3300))
([a98b1c8](a98b1c8))
* **zkstack:** Add param for setting da validation pair
([#4150](#4150))
([47e2517](47e2517))
* **zkstack:** Allow to use chain config if ecosystem is redundant
([#4236](#4236))
([066b3b1](066b3b1))
* **zkstack:** Fix prover run and shell
([#4422](#4422))
([eae38e2](eae38e2))
* **zkstack:** fixes for private rpc in zkstack cli
([#4012](#4012))
([be68210](be68210))
* **zkstack:** Generating compressor keys flow fix
([#4343](#4343))
([4cf2f67](4cf2f67))
* **zkstack:** make GW migration script compatible with pre-v29
([#4346](#4346))
([7ba2cf3](7ba2cf3))
* **zkstack:** make proving network contracts config optional
([#4263](#4263))
([3ebad3b](3ebad3b))
* **zkstack:** Migration params
([#4369](#4369))
([8597c32](8597c32))
* **zkstack:** Use `latest` for prover component by default
([#4120](#4120))
([91af29d](91af29d))


### Performance Improvements

* **db:** use copy in `insert_initial_writes`
([#3899](#3899))
([c6f1598](c6f1598))
* Instrumentation for Jemalloc (pt. 2)
([#4204](#4204))
([5e0bd65](5e0bd65))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Deniallugo pushed a commit that referenced this pull request Oct 22, 2025
🤖 I have created a release *beep* *boop*
---


##
[29.5.0](core-v29.4.1...core-v29.5.0)
(2025-10-16)


### Features

* add support for eip-7594 blob format
([#4542](#4542))
([b57d6f6](b57d6f6))
* adds l1_batch_number to zks_get_l2l1_logproof
([#4530](#4530))
([004dcdc](004dcdc))
* **zkstack:** Deploy 2 ctms and deploy chain for each of them
([#4458](#4458))
([5d2a7cd](5d2a7cd))


### Bug Fixes

* **eth_sender:** refactor support for eip7594
([#4543](#4543))
([462849a](462849a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants