Sui Developer Roadmap 2024

Latest Updates: 2024-04

This thread tracks ongoing work and upcoming releases for Sui. This is a brief outline of the developer-facing Sui roadmap; this thread tracks the first half of 2024. If you’re interested in updates on these items, you can subscribe to this thread, and you’ll be notified when we announce releases. If you’re interested in updates more generally, you can subscribe to the Developer Announcements forum.

Where possible, we’ve tried to give potential timelines for these upcoming items. But nothing here can be taken as absolute proof of anything happening at any given time. We’re sharing this roadmap out of a desire to be helpful to our community and in the spirit of open-source.

Highlights of items/dates:

Category Item Release Date
Move 2024 Late February
RPC 2.0 Late January
Developer Tooling Sui CLI PTB support Mid February
Windows binaries in Chocolatey Q1
Gas Profiler Q1
Toolchain Versioning Late Februrary
BCS/JSON (De)Serialization Late March
Rust SDK Refresh Q1
Crypto Verifiable Delay Functions Mid February
Encrypted NFTs Late March
Randomness Beacon Later this year
DRAND Improvements Later this year
Execution Shared Object Deletion Early February
Closed Loop Token Q1
Everything Else SuiNS .move service Later this year
Native Bridge Later this year

Move 2024

Move 2024 is what we’re calling several initiatives to modernize the Move language this year. Many of these are changes to the source language – they will enhance the developer experience without requiring any changes to the binary representation published on-chain.

Primarily, the goal of these changes is to make Move easier to write, and hopefully easier to read. Secondarily, we will make a few breaking changes to the source language to better position the language for the future.

These new features and the breaking changes will be opt-in. Any existing code will continue to compile. This also means that you will be able to write your packages with the new features, even if your dependencies do not.

These features will be developed and rolled-out over the coming months (and some have already landed!). In order to give builders time to migrate to Move 2024, the first new feature we’ll be releasing is support in the Move toolchain for language flavor control in late February. This will give you the ability to decide which version of Move your code is compiled under. You can opt-in to Move 2024 features already by specifying edition = “2024.alpha” under the [package] section in your Move.toml. Later in 2024, edition = “2024” will become the default.

For more information, see the overarching Move 2024 github issue, or our recent Sui blog post.

Major features

Method syntax

Refinement of the method syntax to be more intuitive and user-friendly, facilitating easier method declaration and invocation. For more information, see issue 14063.

Index syntax

Building on Method syntax, we will add syntax for index accesses depending on the type of access.

Macro functions

Target release: Late February 2024

Incorporation of macro functions, allowing for more powerful and concise code patterns, reducing redundancy.

Enums

Target release: Q2 2024

Implementation of Enums to extend the language’s type system, introducing a new way to define and use enumerated types.

Minor features

Typed Macro Functions & Move 2024 Beta pre-release

Target release: Late February 2024

Further refinement of macro functions and preparation for a beta release to gather community feedback and insights.

public(package)

Target release: Late February 2024

Expansion of the visibility modifier system, introducing public(package) for more nuanced access control within package boundaries.

Positional fields

Target release: Late February 2024

Enhancement of struct definitions with positional fields, improving the clarity and readability of data structures.

Postfix has ability declarations

Target release: Late February 2024

A new postfix syntax for ability declarations, making the expression of constraints more natural and intuitive in the language.

Type inference holes on type annotations

Target release: Late February 2024

Advanced type inference capabilities, aimed at simplifying the process of annotating types, particularly in complex scenarios.

Break with value

Target release: Late February 2024

Enabling break statements in loops to return values, facilitating more expressive and powerful control flow constructs.

RPC 2.0

Target release: Late January 2024

RPC 2.0 is a major effort to re-imagine Sui’s RPCs. You can read more about it on Github. Our interactive demo has been available since late 2023; builders can use this to help with their transition to the new GraphQL RPC API. RPC 2.0 will be fully available in late January 2024. Going forward, RPCs will adopt a quarterly release schedule with a versioning scheme of [year].[month].[patch], breaking changes will be reserved for [year].[month] versions, and each RPC major version will be supported for 6 months for bugfixes. The previous RPC version will not be deprecated until after Q2 2024.

Developer Tooling

Sui CLI PTB Support

Target release: Mid February 2024

Currently, the only way to test PTBs is to use a Sui SDK. This isn’t ideal for experimentation and ad-hoc testing. So, we are adding support for building and executing PTB’s within the Sui CLI. PTBs can be fully constructed either on the command line, or read from a file using a similar format.

Windows Sui binaries in Chocolatey

Target release: Q1 2024

While OS X and GNU/Linux users can take advantage of Homebrew or Cargo to install and upgrade Sui binaries, Windows users only have the option of manually installing binaries from our Github releases. We will be adding these binaries to Chocolatey so that Windows users can also take advantage of a package-manager workflow to keep their binaries updated. We hope this makes developer onboarding a more seamless experience for Windows developers.

Gas profiler

Target release: Q1 2024

Gas fees are a critical component of any dApp. To help builders assess how their dApps consume gas, we’ve been working on a tool to profile and visualize gas usage in applications, based on the Chrome profiler. This has made it much easier for us to understand gas usage internally and we hope it will be as useful for external developers.

Toolchain Versioning

Target release: Late February 2024

Toolchain versioning ensures that when a package is published and its dependencies are verified, the process is conducted using the original toolchain that built the published dependency, rather than the current toolchain in use. This approach is critical because verification involves a byte-for-byte comparison of the bytecode. Utilizing the original toolchain prevents the occurrence of verification failures that could arise from benign changes introduced by newer toolchains.

BCS/JSON (De)Serialization C Library

Target release: Late March 2024

Binary Canonical Serialization, or BCS, is the data format used to represent data on Sui, but many languages lack support for BCS. We will be providing a canonical implementation of BCS serialization and deserialization from and to JSON in a Rust library with an easy to use C API. Builders working in language ecosystems without a BCS implementation can call this library using their languages FFI support. For more information, see issue 13483.

Rust SDK Refresh

Target release: Q1 2024

We will be releasing a major refactor of our Rust SDK to add support for GraphQL querying as well as streamlining transaction building.

Crypto

Verifiable Delay Functions

Target release: Mid February 2024

A verifiable delay function (VDF) is a deterministic function which takes a certain time to evaluate, even if multiple computers are allowed to work in parallel to evaluate it. But once evaluated, the output may be quickly verified by anyone.

VDF’s can be used to construct verifiable, unbiasable on-chain randomness and as also used as a proof-of-work for some blockchain designs. See section 2 in Verifiable Delay Functions by Boneh et. al https://eprint.iacr.org/2018/601.pdf for a survey of applications.

In Sui the usage will be for a continuous supply of on-chain randomness where we only need to assume that 1-out-of-n parties is honest. This can be implemented as a service provided by Mysten and requires only the addition of a few functions to the Sui framework and a smart contract.

Encrypted NFTs

Target release: Late March 2024

Most NFT marketplaces reveal user identities, bids, transactions, and other information including the content of NFTs to the public. This restricts the scope of successful NFT categories to those which are exclusively privacy-insensitive, and also introduces the possibility of shill bidding, wash trading, and even unauthorized copying of digital assets. We will be introducing a protocol for a private NFT exchange between a seller and a buyer that uses zero-knowledge proofs.

Randomness Beacon

Target release: Later in 2024

We will be adding an on-chain randomness beacon to Devnet targeting late February, and mainnet later in 2024 after testing, The goal of the randomness beacon is to provide randomness for smart contracts. That randomness must be unpredictable and unbiasable, even against a subset of malicious validators.

DRAND Improvements

Target release: Devnet/Testnet Q1 2024

We are adding support for BLS12-381 group operations to be added in the future.

Execution

Shared Object Deletion

Target release: Mainnet - Early February 2024

We are adding the capability for shared objects to be deleted (causing storage rebates to be reclaimed by the entity that submits the transaction deleting the shared object). This was released on Testnet in early January of 2024, and after testing, we hope to release this on Mainnet in early February. For more information, see issue 12653.

Closed Loop Token

Target release: Q2 2024

We recently published our standard for Closed-Loop Tokens, which are similar to Coins with the caveat that the creator of a Closed-Loop Token can limit applications where the token is used and/or define custom policies for transfers, spending, and conversion. This can be used to implement loyalty points, regulatory-compliant tokens, or in-game currencies, among other things. We will be releasing more support across RPCs, fullnodes, indexers, and our SDKs for this standard.

Other Upcoming Features and Improvements

SuiNS: .move Service

Target release: Later this year

The .move service is an extension of SuiNS to provide an on-chain service that maps human-readable names to object ids. The .move service will allow builders and community members to identify and understand objects on Sui, and to quickly identify and discover packages for their development needs, without having to memorize complex addresses or verifying authors. Wallets can interact with the .move service to enable users to understand if the packages they are interacting with are legitimate.

Native Bridge

Target release: Later this year

To empower more types of cross chain communication and diversify bridging experiences on Sui, we’ll be introducing Sui Bridge, a trustless native bridge leveraging Sui’s security model. This bridge will rely on the same security assumptions as Sui’s core network, and hence trusting Sui Bridge will require the same security assumptions as trusting Sui itself. Sui Bridge will start as a fungible token bridge between Sui and Ethereum, while being extensible so as to support new assets, message types, and chains in the future. For more information, see issue 14983.

6 Likes

It’s been an exciting few months in the Sui Ecosystem. Much of our previously discussed enhancements are now live, including the Move 2024 compiler & framework support, many improvements to the Sui CLI including PTB support, faucet support, transaction replay and gas profiling, transfer to object, and shared object deletion. Some work has been rescheduled for later this year, including our Rust SDK refresh and BCS/JSON (de)serialization library. Tune in to Sui Basecamp for more announcements!

Category Item Release Date
Move 2024 Enums May
RPC 2.0 REST API and others Q2
Dev Tooling Move Autoformatter May
IDE Improvements Q3
Automated Address Management Q3
Sui CLI Dry Run May
Sui CLI Gas Estimation May
Sui CLI local forking Q3
Local network command simplification Q2
Crypto Verifiable Delay Functions End of April
Randomness Beacon End of April
Obfuscated NFTs Q2
Everything Else Deepbook v3 Q2
SuiNS .move service Later this year
Native Bridge Early Q3

Move 2024

Next major release: Enums, May

Most of Move 2024 has been released. Sui Framework and other system code has been migrated to Move 2024. Enums will still be coming in May as planned.

For more information about migrating to Move 2024, see our migration guide.

RPC 2.0

Next major release: REST API and others, Q2

RPC 2.0’s endpoints were released as scheduled. Work on RPC 2.0 is ongoing with more releases, including our REST API, planned for Q2. Deprecation of the JSON RPC is scheduled for sometime in Q3. Stay tuned for more updates on RPC 2.0, which will come as we get closer to these dates.

Dev Tooling

Move Autoformatter

Target release: May

We are working on an autoformatter for Move code, currently scheduled for release in May. This will be an IDE-agnostic tool based on Prettier.

IDE Improvements

Target release: Q3

In addition to autoformatting, we are working on various improvements to the IDE experience for Sui development. We’ve recently released a pre-release version of our own Move IDE plugin, which can be found on the Visual Studio marketplace. Over the next few months expect more enhancements to land here.

Automated Address Management

Target release: Q3

We’re working on functionality so that Sui developers can publish and upgrade source packages across multiple networks, without having to manually update or refer to numeric addresses.

Sui CLI Dry Run

Target release: early May

We’re adding support to the Sui CLI for dry-running transactions to see their effects, in the same way the CLI can currently run transactions.

Sui CLI Gas Estimation

Target release: mid May

Rather than passing a gas budget to every transaction to be executed, users will be able to have the CLI estimate the gas budget for them (using dryrun).

Sui CLI Local Forking

Target release: end of Q2

In order to make debugging easier, we’re adding the ability to fork the Sui network from any transaction into your local network.

Local Network Command Consolidation

Target release: end of Q2

In order to simplify the codebase and streamline developer workflows, we’ll be consolidating the sui-start and sui-test-validator CLI commands. Scripts that use these commands will need to be migrated.

Crypto

Verifiable Delay Functions

Target release: end of April

VDFs will be live in Devnet sometime in April, with a further rollout to be determined after testing, but likely completed by the end of April.

Randomness Beacon

Target release: end of April

Randomness Beacon is live on Devnet, with further rollout to be determined after testing, but likely completed by the end of April.

Obfuscated NFTs

Target release: Q2

Tune in to Sui Basecamp for updates on obfuscated NFTs!

Everything Else

Deepbook v3

Target release: Q2

We are in the process of a major upgrade to the Deepbook framework estimated to be released to dev/testnets sometime in Q2.

SuiNS .move service

Target release: Later this year

Work on .move is ongoing and the release is still targeted for later this year.

Native Bridge

Target Release: Early Q3

Work on the native bridge has continued and the contracts have been sent to audit. We expect the bridge to be live on Testnet by the end of April and are optimistically targeting early Q3 for mainnet.

1 Like