Over the past few months, a team of SDF engineers has been hard at work on a new smart contracts platform, and today, we're excited to share a preview. With it, developers can start to experiment with what we've built, and I'll get into a bit more about what that means below. But first…the name.
Back in June, we realized we were surprisingly close to having this preview to share, and we knew we needed to come up with a name for the platform itself. Jump Cannon, the project name for the development process, is a bit cumbersome, and it doesn't really sound like a product. We wanted a single word, something unique and searchable, something easy to read and write.
And so, we started a thread on the Stellar Dev Discord asking for suggestions. We got a great response, and ideas came in from all over. We went through them one by one and checked for brand and namespace collision (wow, does the blockchain industry love space-themed names!), and, after many hours, much debate, a bit of hand wringing, and at least one incident involving pistols at dawn, we arrived at a name: Soroban.
Why Soroban? The Japanese soroban is the smallest and simplest abacus. Its design is compact and minimalist, focused on doing the essentials — and doing them well. It set the global standard for abacuses (abacii?) and is still in practical use today. It's the right name for what we're building because it represents what we want our smart contracts platform to be: sensible, built-to-scale, batteries-included, and developer-friendly. We want to set the standard for smart contracts, and we want to build our platform for the long term.
In fact, we decided to build Soroban rather than use an existing smart contracts platform precisely because we want something with those properties, and, after surveying the space, we realized that no existing smart contracts platform has them all. Some are not built to scale, some present too many footguns for developers, others are unnecessarily complex. The goal of building Soroban is to make something that's broadly useful, and so it doesn't depend on or require Stellar at all. It can (and I hope will) be used by any transaction processor — other blockchains, L2s, even permissioned ledgers.
That being said, Soroban's design is particularly suited to Stellar, a blockchain that shares its values of scale and sensibility. And I believe that by pairing the two, developers will have the advantage of building smart contracts on one of the most accessible blockchain networks in the world, one that is focused on equitable access through decentralized finance.
Now, I don’t want to oversell the whole building-it-all-on-our-own thing...Soroban is new, but it's built on well-established technologies: WASM and Rust. These choices are deliberate, and we made them after a ton of research. With WASM (WebAssembly), we get a robust and minimal bytecode specification designed to run in an adversarial environment, initially the web — and now in blockchains. (ICYMI: I shared more about choosing WASM here.)
Rust is fast becoming the standard programming language for safe, mission-critical, and efficient computation. Choosing Rust also means we can share code between a smart contract and its host environment (in the case of Stellar, that means stellar-core), and we’re doing exactly that! Expect more content on Rust and how we use it soon.
Alright, let’s get to the good stuff – what can you actually do with this preview release?
With this preview, developers can write and test contracts on their local machine without depending on a running network. It focuses on contract development, rather than complete dApp development. This means that, for example, you can write and test a liquidity pool contract, but not (yet) a full liquidity pool app that indexes and consumes trade data.
You can now write contracts with initial versions of the Soroban environment, SDK, and CLI. There are also some early Docs and Examples to help get you started. In the next few iterations, we will be introducing an events system, indexing service, better gas metering, a Stellar Core integration, and much more.
This is the first time in the history of the SDF in which we are releasing such an early preview. We’re doing it because we believe that we’re building something special with Soroban, and true to our open-source roots, we believe it’s important to share the development process. We want Stellar ecosystem developers and smart contract developers from other ecosystems to have a chance to make a meaningful impact together.
Put another way, we want your feedback! Test it out, see what you can do, and let us know what you think. But don’t forget this is a preview. Expect your code to break, realize that updates will shift things, and understand that the release version of Soroban may be a significantly changed product.
If you’re ready to explore Soroban, the journey starts at the Docs.