Validator Guide to Soroban Mainnet Phase 1


Justin Rice

Publishing date


Protocol upgrade

This is a blog post for all you Stellar validators out there…

Thanks for voting for the Protocol 20 upgrade. Mainnet is now running Protocol 20 which means Stellar now supports smart contracts. Woohoo!

In the coming weeks and months, we'll be asking for your continued participation as we collaborate to adjust network settings for a phased rollout of Soroban.

Read on for more info…

New network settings

In addition to introducing smart contract functionality to Stellar, Protocol 20 introduces new network settings that determine limits for Soroban transactions. Initially, those settings are fairly restrictive because — based on ecosystem feedback — validators have opted for a phased rollout of smart contracts on Mainnet. It's a deliberate, considerate, and measured approach designed to ensure the new functionality works as intended, and that its introduction doesn't adversely impact the very-much-alive network in any way. You can read more about it here.

TL;DR: the idea is to make sure the pipes are connected before turning the water on full blast.

Right now, the network is in Phase 0, which allows validators and operators of other network infrastructure to monitor things to make sure everything is working as expected.

February 27 Phase 1 Vote

On February 27 at 1700 UTC — assuming the Phase 0 observation period goes well — validators will vote on a proposal to increase the limits to move the network into Phase 1.

The proposed soroban settings ConfigUpgradeSetKey for that vote is: 2aLVwNcvW1rOGh0G2ymw3///cac/dzVpfMSrO+bHz9FD52KuJ6CZ2c5gxM9py4R/NpVv6LYZYYH5W+grDoGlDA==

You can query the proposal in two ways.

  1. Using a node connected to Mainnet: http-command 'dumpproposedsettings?blob=2aLVwNcvW1rOGh0G2ymw3///cac/dzVpfMSrO+bHz9FD52KuJ6CZ2c5gxM9py4R/NpVv6LYZYYH5W+grDoGlDA=='
  2. Using the staged-soroban-config tool on

And you can arm your node to vote for it using the following command:

http-command 'upgrades?mode=set&upgradetime=2024-02-27T17:00:00Z&configupgradesetkey=2aLVwNcvW1rOGh0G2ymw3///cac/dzVpfMSrO+bHz9FD52KuJ6CZ2c5gxM9py4R/NpVv6LYZYYH5W+grDoGlDA=='

For more about examining the proposed upgrade, see the docs.

For more on the upgrade command, check here.

Subsequent phases

After Phase 1, we will rinse and repeat for subsequent phases, gradually increasing Soroban resources to accommodate full-fledged smart-contract use cases. We will use the #validators channel on the Stellar Dev Discord to keep you informed and coordinate the upgrade. So make sure to keep an eye out there for info and updates!

One interesting thing about these new settings: they give validators more opportunities to participate in network governance. Now, in addition to voting on protocol version, ops/ledger, minimum fees, and base reserves, validators will also vote on generalized network settings stored in ConfigSettingEntries. Not only that, but they can also propose changes to the settings, and share those proposals with others for consideration. Ultimately, that will allow them to make more granular decisions about the resource costs and requirements, and about how ledger space is used.

We will be working on ways to make sure it's easy to understand the new configuration options, and collaborating with validators and the community as a whole to improve communication around governance. But for now, check out the resources linked below, and if you have questions, suggestions, or bright ideas, please share them!