ScopeBots

All tools / Guides

Stellar Protocol 30 (Bell): which SDKs and tools are ready

Which Stellar SDKs, CLIs and RPC releases support Protocol 30 (Bell) before the Nov 3 testnet and Nov 23 mainnet votes, with each maker's release notes.

Updated Oct 27, 2026

Documentation-based guide: compiled from each maker's release notes and changelogs on Oct 27, 2026. We did not run any code for it. Versions move fast before an upgrade, so check the linked page before you upgrade.

If you use any Stellar SDK, you have to upgrade it before Protocol 30 (Bell) reaches your network: the Stellar Development Foundation (SDF) says older SDKs may fail to decode Protocol 30 ledgers because the ledger header format changes (CAP-88). The testnet vote is November 3, 2026 and the mainnet vote is November 23, 2026, both at 17:00 UTC Source: SDF Bell upgrade guide. As of Oct 27, the JavaScript, Go, Flutter, iOS/macOS, PHP and Kotlin Multiplatform SDKs have Protocol 30 releases out. The Python, Java, .NET and Elixir SDKs and the Stellar CLI don't yet, and the Soroban Rust SDK is at a release candidate.

This guide goes deeper than our Stellar developer tools page and its smart contracts & SDKs list: what changes, which release you need, and what to check with your RPC provider. It only reports what each maker has published, and it is not a ranking.

Contents

Quick answer: Protocol 30 readiness by tool

Status as of Oct 27, 2026, based on each maker's own release notes.

ToolProtocol 30 releaseStatusSource
Stellar JS SDKv17.3.0 (CAP-84, 87, 88); v16.4.0 on the 16.x line decodes Protocol 30 ledgers but doesn't handle W addressesReleasedSource: js-stellar-sdk changelog
Go SDKv0.8.0ReleasedSource: go-stellar-sdk changelog
Soroban Rust SDK30.0.0-rc.1Release candidate; SDF says the stable release follows before the mainnet voteSource: SDF Bell upgrade guide
Stellar CLINot yet (latest 28.1.0)PendingSource: crates.io stellar-cli
Flutter SDK (Soneso)3.9.0 (Oct 15)ReleasedSource: Flutter SDK changelog
iOS/macOS SDK (Soneso)3.13.0 (Oct 16)ReleasedSource: iOS/macOS SDK changelog
PHP SDK (Soneso)1.16.0 (Oct 14)ReleasedSource: PHP SDK changelog
Kotlin Multiplatform SDK (Soneso)1.15.0 (Oct 15)ReleasedSource: KMP SDK changelog
Python SDK (py-stellar-base)CAP-84 work listed under "Pending"; latest release 16.1.1Not released yetSource: py-stellar-base changelog
Java SDKNo Protocol 30 entry yet; latest 5.0.0Not released yetSource: java-stellar-sdk changelog
.NET SDKNo Protocol 30 entry yet; latest 16.0.0 adds Protocol 28Not released yetSource: dotnet-stellar-sdk changelog
Elixir SDKNo Protocol 30 entry yet; latest 0.23.0Not released yetSource: Elixir SDK changelog
Stellar RPCv30.0.0ReleasedSource: stellar-rpc changelog
Horizonv30.0.0ReleasedSource: Horizon changelog

For the community SDKs that haven't shipped yet, SDF's upgrade guide links a Protocol 30 tracking issue in each repo where you can follow release timing.

What changes in Protocol 30?

SDF lists three changes that matter to developers. All are additive at the transaction level, but two of them need work from you Source: SDF Bell upgrade guide:

The short version: upgrading your SDK is required in every case. Wallets, exchanges, ramps and explorers also need W-address handling.

SDF-maintained SDKs and the Stellar CLI

Stellar JS SDK. v17.3.0 adds the W address type (`StrKey` and `Address` helpers) and regenerates the XDR with CAP-84, CAP-87 and CAP-88 enabled Source: js-stellar-sdk changelog. The latest release on npm is 17.4.0, and npm also carries an `lts-16` tag for the 16.x line Source: npm @stellar/stellar-sdk. If you stay on 16.x, SDF says v16.4.0 decodes Protocol 30 ledgers but does not handle W addresses, so a wallet or exchange should move to 17.x.

Go SDK. v0.8.0 is SDF's Protocol 30 release. Its changelog has a useful warning: the generated `GetLcValueSignature()` only reads the old SIGNED arm, so it finds no signature on any ledger after the upgrade. Use the new `StellarValueExt.LedgerCloseValueSignature()` instead Source: go-stellar-sdk changelog.

Soroban Rust SDK. 30.0.0-rc.1 was published on Oct 21 Source: crates.io soroban-sdk. SDF says the stable release comes before the mainnet vote.

Stellar CLI. SDF's guide lists the CLI's Protocol 30 release as pending, and crates.io still shows 28.1.0 as the latest version Source: crates.io stellar-cli. This matters only if you rebuild contracts against the Protocol 30 Soroban SDK: SDF says you then need a CLI at a matching version or later.

Community SDKs

Soneso's four SDKs shipped first. Flutter 3.9.0, iOS/macOS 3.13.0, PHP 1.16.0 and Kotlin Multiplatform 1.15.0 all add the CAP-84 W address type, the CAP-87 cost types and the CAP-88 close-time types. Soneso's changelogs point out a trap for typed languages. In Flutter, the new XDR members are constants rather than Dart enums, so a `switch` that leaves them out gets no analyzer warning and runs no case for them. The iOS/macOS SDK marks the XDR change as breaking, so you need to add cases Source: Flutter SDK changelog Source: iOS/macOS SDK changelog.

Python. py-stellar-base lists CAP-84 support and the removal of `EventInfo.in_successful_contract_call` under "Pending". Its latest release, 16.1.1, doesn't include them yet Source: py-stellar-base changelog.

Java, .NET and Elixir. None of their changelogs has a Protocol 30 entry yet. If you depend on one of them, follow its tracking issue from SDF's guide, and keep the testnet date in mind: Nov 3 is a week away.

Stellar RPC, Horizon and hosted providers

If you run your own nodes, SDF's Protocol 30 builds are Stellar Core v30.0.0, Horizon v30.0.0, RPC v30.0.0 and Galexie v30.0.0 Source: SDF Bell upgrade guide. RPC v30.0.0 has one breaking change: `getEvents` no longer returns the `inSuccessfulContractCall` field, which had been deprecated since Protocol 23 Source: stellar-rpc changelog. Horizon v30.0.0 raises the supported protocol to 30 and adds muxed-contract fields to the `contract_credited` effect Source: Horizon changelog.

If a hosted provider serves your RPC, the upgrade is on their side. Neither QuickNode's Stellar docs nor Validation Cloud's supported-chains page mentions Protocol 30 as of Oct 27, so ask your provider when they move to RPC and Horizon v30. Their published history windows also differ, which matters more day to day:

We compare the two side by side in QuickNode vs Validation Cloud. More providers are on our Stellar infrastructure page.

Do Soroban smart contracts need changes?

No. SDF says existing contracts keep working after the upgrade. You only touch them if you want the new features:

Source: SDF Bell upgrade guide

How to choose your upgrade path

  1. Find your SDK in the table above. If it has a Protocol 30 release, upgrade on testnet before Nov 3 and on mainnet before Nov 23.
  2. On JS 16.x? v16.4.0 decodes the new ledgers. Move to 17.x if you handle user-supplied addresses.
  3. On Python, Java, .NET or Elixir? Watch the SDK's tracking issue, and test the release on testnet as soon as it lands.
  4. Handle addresses? Add the W prefix to validation, display, storage and transfer-destination logic. This is your code, not the SDK's.
  5. Decode raw XDR (indexer, explorer, Galexie pipeline)? Update your XDR definitions, or decoding fails from the first Protocol 30 ledger.
  6. Self-hosted RPC or Horizon? Install v30.0.0 and remove any reliance on `inSuccessfulContractCall`.
  7. Hosted RPC? Ask your provider when it upgrades, and check its history window while you're at it.
  8. Contracts? Nothing is required. Rebuild with soroban-sdk 30 only for ML-DSA or muxed addresses, and pair it with a matching Stellar CLI once that ships.

Release status changes daily until the votes. Check each maker's page before you rely on this list.

Know when chain support changes

One short email when we add tools or a tool adds, drops or deprecates a chain. Nothing new, no email. Unsubscribe anytime.