Road to Mainnet #1
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.
Highlights
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.
Network Updates
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.
Developer Experience Updates
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.
Fuel Wallet and Fuel Bridge
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.
Sway
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 usingStorageMap
in their storage definitions. Previously, including theHash
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
andDisplayWithEngines.
The return type ofoutput_asset_to
has been updated toAddress.
UsingAddress
instead ofb256
is more expressive and prevents misuse of values, preventing mistakes. Additionally,logId
fields in ABI specifications now usestring
instead ofnumber
. 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.
Tooling
In
forc-doc
, we added type implementations and primitives, and improvedIR
printing in the forc CLI. Additionally,forc-test
now features log decoding capabilities, providing better insights into decoded log values. Notably, theforc 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 supportUpload
andUpgrade
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
andfuel-core
removed. We've added support for transferring to multiple addresses withmultiTransfer
.Additionally, functions like
assembleTransactionSummary
,getOperations
, andgetWithdrawFromFuelOperations
now require thebaseAssetId
.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 betterarrayify
error message, support for genericenums
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.
What’s Next
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.