Monday, October 12, 2026

Stellar Releases Soroban Rust SDK v28

Image of a blockchain ledger with an executable reference tag upgrading contracts, representing Soroban v28 feature

Stellar Releases Soroban Rust SDK v28

Stellar has released version 28 of its Soroban Rust SDK, giving smart-contract developers access to a new set of deployment, upgrade and data-migration capabilities. According to the official Stellar developer announcement, the release introduces executable references, migration-friendly contract data, sparse event publishing, a revised build process and improved native-contract testing. The SDK update primarily changes how developers build and maintain Soroban contracts rather than altering application logic automatically.

The release is closely tied to Stellar’s Adapter, or Protocol 28, architecture. CAP-85 introduces externally managed contract executables, while CAP-86 adds sparse-map host functions intended to make contract-state schemas easier to evolve. Soroban SDK v28 exposes those protocol capabilities through Rust developer tooling, separating the SDK release from the underlying network upgrade itself. That distinction matters as Stellar’s application layer expands around areas such as tokenized Treasuries and credit products on Stellar.

Executable References Simplify Contract Fleet Upgrades

The largest architectural addition is support for executable references under CAP-85. Previously, a deployed contract executable was associated directly with a Wasm hash. Version 28 also allows a contract to reference a persistent entry, owned by another contract and identified by a tag, that contains the applicable Wasm hash. Changing that single reference can move every dependent contract to new code on its next invocation, reducing a fleet-wide upgrade to one reference update.

Contracts can manage these references through env.executable_refs(), while deployments and upgrades now accept a ContractExecutable that can represent either Wasm(hash) or an external reference. The change also affects custom accounts using __check_auth, because deployment authorization contexts can now contain the new executable type. Custom authorization logic that assumes every deployment supplies a direct Wasm hash must therefore be reviewed before migrating.

Contract-state migration becomes less rigid through CAP-86. Before v28, a stored #[contracttype] map had to match its Rust structure exactly, making the addition or removal of fields difficult without explicit versioning strategies. Version 28 can unpack maps sparsely, allowing a newly added optional field to resolve as None when older stored data does not contain it. This makes incremental schema evolution substantially easier without forcing developers to rewrite every existing ledger entry at once.

That upgrade flexibility becomes increasingly relevant as Stellar supports more complex application infrastructure. The network’s expanding tokenized real-world asset ecosystem raises the operational cost of contract migrations where applications may remain active for years. CAP-85 and CAP-86 address maintainability rather than application adoption, but they reduce friction for developers managing long-lived contract systems.

Events and Builds Require Migration Checks

Soroban SDK v28 also changes event serialization. For events using the default map format, top-level fields containing void or Option::None are now omitted completely instead of appearing with an empty value. Developers can disable this behavior with sparse = false when every field must remain present. Offchain indexers and consumers that assume optional keys always exist need to update their parsing logic.

The build system changes through “spec shaking v2.” The SDK now emits specification entries broadly before stellar-cli removes entries that are not actually part of the contract boundary. Developers must build Wasm contracts with stellar contract build using Stellar CLI v25.2.0 or newer, while the deprecated export argument on contracttype and contracterror now causes a compile error. The result is a contract specification based on what the interface actually exposes rather than Rust visibility alone.

Testing also gains Env::upload, allowing native Rust contracts to be uploaded in test environments as though they were Wasm and then deployed repeatedly from the resulting hash. Meanwhile, Stellar’s broader contract roadmap is moving toward more demanding cryptographic applications, including post-quantum verification through Soroban. The new testing capability reduces friction for contract factories and deployment workflows without changing production execution semantics.

Developers migrating to v28 therefore need to review build commands, event consumers, stored-data assumptions and custom authorization logic before deployment. The next concrete milestone is production adoption of v28-built contracts after teams complete compatibility testing and security review, particularly because Stellar currently lists this SDK version as not yet audited.

Satoshipick
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.