Stellar Development Foundation
This guide is designed to help developers and businesses building on Stellar prepare for the public network upgrade to Protocol 20, which introduces support for Soroban smart contracts.
These dates are estimates, intended to help you plan to take necessary steps to prepare for the Protocol 20 upgrade. They may change over the next few weeks as audits and engineering tests are completed, and as new information comes in. When dates become definite, we will update this guide to let you know.
Before the January 30, 2024 readiness date, plan to install up-to-date versions of any and all Stellar-related software you use. If you fail to do so, your Stellar integration will be incompatible with Protocol 20, and it will likely break if and when an upgrade occurs.
Upgrade to the latest version of the SDK. Even if your application doesn’t involve Soroban-related functionality, it’s necessary to upgrade your SDK so that it can decode Soroban-related operations, which it may encounter while ingesting network data.
Fair warning: if you are updating the JS SDK, and you haven't done so in a while, the process may take extra time and effort due to breaking changes that overhauled the build system introduced in v9.0.0.
Upgrade to the pre-release versions of Stellar Core and/or Horizon before the December 18 Testnet reset.
Upgrade to stable release of Stellar Core and/or Horizon before the January 30 upgrade readiness date.
If your Stellar Core node is set up to validate transactions, you will also need to arm your node to vote for the upgrade. When the upgrade vote date is definite, we will add the command used to do that to this guide, and notify validators via the #validators channel on the Stellar Dev Discord.
Below are up-to-date links to all available relevant releases. For the time being, you should hold off on using these releases on mainnet. In general, please make sure to check release notes for specific instructions and requirements.
On Wednesday, September 20 the Testnet, which is running release candidate versions of Stellar Core and Horizon, upgraded to Protocol 20. Since then, developers all over the world have been successfully deploying smart contracts to the Stellar Testnet, which has been an exciting thing to see.
Currently, work is underway up and down the Stellar stack to vet, harden, and put finishing touches on code, and before the end of the year, stable versions of Stellar Core, Horizon, the RPC, and the Stellar SDKs that support Protocol 20 should be available. Once they are, every project in the ecosystem needs to upgrade to those versions to be ready for the network upgrade, and so we have set a tentative date by which we are expecting you to do that: January 30, 2024, the readiness date.
Some time after that readiness date, Stellar public network validators will vote on whether to upgrade the public network to Protocol 20. Upgrade votes are programmatic — they’re part of a regular round of consensus — and when they go through, the upgrade takes immediate effect. Because the Protocol 20 upgrade introduces new network settings that validators control, it is also likely that the initial upgrade vote will be followed by a series of additional votes to adjust those settings. When there is a timeline for any of those votes, we will add them to this guide.
To stay informed, ask questions, make suggestions, or share intel, make sure to join the Stellar Dev Discord and check out the #protocol-20 channel, which is where the ecosystem is coordinating and sharing information about the upgrade.