Welcome to Road to Mainnet, our new series sharing the latest network updates, DevEx improvements, ecosystem developments, and community activities. Stay informed and connected as we progress together toward Fuel Mainnet launch.
Developers, don’t forget to register for the Encode Hackathon, and if you’re going to EthCC in Brussels, check out the Fuel Luma calendar for where to find us.
In May, we released the Fuel Sepolia Testnet, Fuel's first public testnet— and the final phase ahead of mainnet. We are seeing sustained high traffic as more teams, users and developers put the network through its paces.
Highlights since the testnet launch:
We announced a $1.3-million crowdsourced security audit program, which runs from June 17th to July 22nd, in collaboration with Immunefi to identify potential vulnerabilities in Fuel’s code base before mainnet. To join the program, visit the Immunefi Attackathon page.
The Fuel-core 0.28.0
release provides a significant speed upgrade, delivering a remarkable 250X improvement in transaction processing per block.
We’ve rolled out DevEx updates to enhance our native applications, Sway, our tooling suite, and introduced new features and improvements to the Rust and TypeScript SDKs.
Since we launched the Testnet, more than 15 teams - including Spark, Fuelet, and Pyth - have deployed smart contracts on the testnet. Expect 50+ other projects to deploy soon on the Fuel ecosystem.
At Fuel, we’re continuously improving our technology and network. To improve the network’s efficiency, speed, and security, we pushed a major speed upgrade - Fuel-core 0.28.0 - that brings 250X improvement in transaction processing within each block. The implementation of memory re-usage in the Fuel virtual machine drastically reduced initialization costs, leading to the significant improvement in network processing speeds.
Currently, with a block gas limit set at 30M, the memory allocation stands at 5M. Fuel-core 0.28.0
boosts the system's capacity to handle VM initializations within a block to approximately 1500 instances. This is a substantial increase from the previous capability of only 6 instances per block. The memory allocation will now vary between 100 to 20,000, depending on the transaction size. This translates into positive changes for both developers and the network:
VM Memory optimization: The use and transfer of VM memory is optimized between different node layers, reducing costs for VM initialization and ensuring fair charges for memory allocation operations.
Opcodes Optimization: All opcodes have been optimized, resulting in cheaper transaction fees. For more details, check out the Github repo here.
Network Synchronization and Stability: We’ve significantly improved network synchronization for the first 1.5 million blocks, reducing the time nodes need to catch up with the blockchain’s latest state. Additionally, we resolved issues with the reconnection mechanism, ensuring more stable and reliable node operations.
To enhance the experience for our developers and users, we’ve rolled out important improvements to our products, tooling suite, Sway, and the Rust and TypeScript SDKs.
Gas Cost Estimate: Users can now have better gas cost estimates before executing a transaction due to an added functionality to specify gas prices during dry-running transactions.
Automatic Wallet Updates: The Fuel Wallet browser app will now be auto-updated to the latest version in the Chrome store.
Support for all Ethereum wallets is live on testnet: including MetaMask, Rabby, Rainbow, and more. These connectors eliminate the need for multiple wallets, allowing you to choose the one you’re already familiar with. You can start using them on the Fuel Bridge.
Enhanced type support, simplified StorageMap usage, and bug fixes improve performance, efficiency and ease of use for developers.
Developers no longer need to import the Hash
trait when using StorageMap
in their storage definitions. Previously, including the Hash
trait was necessary, but this fix simplifies the process and eliminates the need for this import in most cases.
We fixed performance issues with encoding-related code in version 1 of the auto-generated code for Dead Code Analysis. This ensures that only necessary fields are used during the encoding and decoding of contract inputs and outputs, eliminating unused fields. This improvement optimizes performance, reduces code bloat, and enhances overall efficiency.
More types now support Display
and DisplayWithEngines.
The return type of output_asset_to
has been updated to Address.
Using Address
instead of b256
is more expressive and prevents misuse of values, preventing mistakes. Additionally, logId
fields in ABI specifications now use string
instead of number
. This change to the ABI files has allowed us to provide better support for indexing and is a stepping stone for us to make the ABI files more robust in the future
ℹ️ For a detailed list of all changes to Sway, check out the full release change-log here.
In forc-doc
, we added type implementations and primitives, and improved IR
printing in the forc CLI. Additionally, forc-test
now features log decoding capabilities, providing better insights into decoded log values. Notably, the forc check
command now executes about 60% faster, significantly boosting efficiency.
forc deploy
now includes gas fee estimation, making deployments more efficient and predictable. These updates collectively enhance the developer experience and streamline various processes.
The Sway Playground
We introduced a dropdown menu for selecting examples, adding ease of use. Additionally, we now support transpiling Solidity into Sway code, making it easier for developers to transition their projects.
Thanks to Alex Primak, a Fuel moderator and active community member, you can now use your Sway online IDE on Dark Mode to build smart contracts.
ℹ️ Discover the new features in the Sway Playground and see how they can streamline your development process.
Rust SDK
Predicate estimation now falls back to the API, ensuring more reliable performance. We’ve implemented a new encoding scheme and completely removed the legacy encoding to streamline processes and enhance efficiency.
We’ve also made fuel-core
more dynamic, with support for multiple versions and soft warnings when incorrect versions are used, helping maintain compatibility. Additionally, we now support Upload
and Upgrade
transactions for more flexibility.
ℹ️ Read the full Rust SDK Release change logs to see how these changes can improve your development experience.
TypeScript SDK
We’ve made significant updates to the TypeScript SDK.
You can now run Bun out of the box, with built-in binaries for forc
and fuel-core
removed. We've added support for transferring to multiple addresses with multiTransfer
.
Additionally, functions like assembleTransactionSummary
, getOperations
, and getWithdrawFromFuelOperations
now require the baseAssetId
.
We also added a new node command to the Fuels CLI and support for the forc build --json-abi-with-callpaths
flag. Improvements include a better arrayify
error message, support for generic enums
in typegen, and converting typegen factories into object instances.
ℹ️ To get started on Fuel Sepolia, visit our Developer Quickstart Guide for a detailed walkthrough of how to write a smart contract in Sway, deploy to Fuel, or build a front end.
Our core team is hard at work tuning the chain for maximum performance - expect to see several updates as we continue to add new features to the testnet and Sway as we move rapidly toward Mainnet.
Developers, join the Fuel x Encode Club Educate & Hackathon for an unparalleled opportunity to build on Fuel. Educational sessions start on July 15th to help you level up your skills. Then, from July 30th, tackle hackathon challenges for a chance to win exciting prizes. Register now!
Upcoming Events: Subscribe to the Fuel Luma calendar to find out where we’ll be at EthCC!
Follow @BuildOnFuel on X to stay updated on our road to Mainnet.