Beta-4, Fuel’s Fourth Public Testnet
The new beta-4 testnet introduces public P2P access and multi-token support, enabling native-level NFTs, multi-asset pools, and more.
We are excited to launch the beta-4
testnet, enabling public P2P access so anyone can run local nodes connected to Fuel. Fuel now reaches a crucial milestone on its way to Ethereum mainnet.
Following the beta-3
launch, Fuel has experienced significant growth, now comprising over 40 projects in its ecosystem. We're thrilled to witness our community expanding further, with numerous builders and projects joining from the recently concluded Sway Summer Hackathon and the recently announced Q4 Grants Program cohort. With beta-3
, we’ve seen more than 2,000,000 settled blocks and 10,000 deployed contracts, in addition to the Fuel Wallet amassing nearly 100,000 downloads.
Please note that beta-4
is not an incentivized testnet. There will be no direct rewards for participation in this network.
Introducing Public P2P Access, Multi-token Support, and more.
Building upon the foundation of beta-3
, beta-4
introduces a range of enhancements and new features. Some key features of the beta-4
testnet are:
Multi-token support, enabling native-level assets
Multi-token support allows the inclusion of sub-identifiers during asset creation. These sub-identifiers can include valuable metadata enabling native-level NFTs, multi-asset pools, NFT marketplaces, and more.
Hardened P2P networking, enabling public P2P access
Continuous improvements to P2P networking allow us to enable public P2P networking access in Fuel. This allows users to run a local fuel-core
beta-4
node, which may be useful for testing or indexing applications that are deployed onto Fuel. Public P2P access will also help with stress testing and optimizations in preparation for mainnet.
New VM Opcodes
Many new VM opcodes have been added that should allow for significant bytecode size reductions in contracts, as well as various performance and safety improvements.
Parallel predicate execution
Parallel predicate execution enables Fuel to take advantage of multiple cores to speed up execution processing. Predicates are stateless and inherently parallelizable, making them a good first candidate for parallelizing the FuelVM. This will benefit the performance of applications making heavy use of predicates, such as predicate-based order books.
Revamped bridging design with improved security features and supports upgrading to a full rollup in the future
beta-4
also includes a major upgrade of the native Ethereum bridge. For deposits, this resulted in retryable message UTXOs to enable guaranteed delivery and reduced the number of steps required to bridge native Ethereum. On the withdrawal side, it also improves security and reduces gas costs for users by having the sequencer periodically commit block header hashes to Ethereum. These changes will also enable seamlessly transitioning to a full-rollup mode including DA and fraud-proving in the future.
What’s New
Here is a full list of features and updates that come with beta-4
:
🌴 Compiler
- New storage API.
- More complete type system.
- Better support for trait constraints.
- Disambiguation with fully qualified paths.
- Standardized private-by-default modules.
- Explicit casting of numeric types.
- New language features:
- Associated constants.
- Type aliases.
- Conditional compilation.
- OR match patterns.
- Super-ABIs.
- Copy propagation optimizations.
- Register spilling.
🌐 Client
- Base support of the reputation system, allowing connection of external users to the network.
- Support of Sparse Merkle trees for the contracts state.
- Parallelization of the predicate verification and estimation.
- Allowing managing multiple tokens per one contract.
- Supports a wide arithmetic operations.
- Retryable messages support for more safe token bringing.
- Performance optimizations and benchmarking.
- Refactoring of the FuelVM and fixation of corner cases that could corrupt the VM state.
- Support Secp256r1 signature recovery and Ed25519 verification.
- Optimized and added new opcodes that allow to reduce the size of the contract.
🔧 Tooling
forc-test
now runs unit tests concurrently.forc-doc
added support for nested submodules. Allows jumping into the documentation for any submodules relative to the current file.fuel.nix
has become stable and now has its own install and usage guide.forc-deploy
UX has been improved and now comes with a TUI and integrates withforc-wallet
.- Sway Playground now has an interactive user interface that gets generated from the contract ABI.
🧩 Language Server
- Complete integration with the sway-compiler, now have access to 100% of the tokens.
- Huge gains in backend performance. Most features are now 90% faster than in
beta-3
. - Semantic renaming.
- Semantic highlighting.
- Code actions to auto-generate doc comments using the SRC-2; Inline documentation standard.
- Links in hover popup boxes.
🏗️ SDK
- Rust SDK
- Ergonomic support for custom transaction inputs and outputs for predicates;
- Support for payable methods;
- Integration with the new Sway’s
assert_eq
; - Improved
Script
's custom script building; - Support for config-time constants;
- Better way to setup tests and load and deploy contracts with the new
setup_program_test!
macro and more; Bytes
and raw slices as inputs;- Pay for transactions using predicates (same interface as a wallet);
- Better way to work with logs;
- Gas estimation for script calls;
low_level_call
support;- Many developer experience and QoL improvements as well as many bug-fixes;
- Typescript SDK
- Support for vectors as outputs;
- Main arguments support for scripts;
- Main arguments support for predicates;
- Script support for the new
abi-typegen
; - Predicate support for the new
abi-typegen
; - Transaction dependencies estimation;
- Support for payable methods;
- Pay for transactions using predicates (same interface as a wallet)
- Fuel core control API: launch and manage Fuel nodes using the TS SDK;
- Improved support for more complex types in vectors;
🔌 Front End
- The current Fuel Wallet available on the Chrome web store (v0.11) is only compatible with
beta-3
. The next version of the Fuel Wallet v0.12.4 will be only compatible withbeta-4
once we release it will be automatically distributed to all users. If you want to update or start testing thebeta-4
you can install this version using the link bellow.- To download and use version 0.11 on
beta-3
→ Fuel Wallet (Beta) - To install version 0.12.4 on
beta-4
→ Fuel Wallet Development (Beta)
- To download and use version 0.11 on
- See what projects are building on Fuel → https://alpha.fuel.network/ecosystem/
- Fuel's block explorer (still heavily WIP) → https://fuellabs.github.io/block-explorer-v2/beta-4/#/
🗃 Indexer
- Support for custom types - any type defined in your Sway contract can be indexed.
- Create, build, and deploy indexers in one seamless
forc
experience using theforc index
plugin.
📲 Application Development
- Sway Standards:
- The SRC-20; Token Standard defines the implementation of a standard API for Native Assets using the Sway language. A Token Library that follows this standard for rapid development has also been released.
- The SRC-3; Mint and Burn Standard is used to enable mint and burn functionality for Native Assets.
- The SRC-5; Ownership Standard is used to restrict function calls to admin users in contracts. The Ownership Library has been updated to reflect these changes.
- The SRC-2; Inline Documentation Standard defines how to document your Sway files.
- Sway Standard Library:
- A minimal
String
type has been introduced. - The
StorageKey
has been introduced and storage api has been changed to enable complex storage types. - The
StorableSlice
trait alongside theStorageBytes
andStorageString
types have been introduced. Hasher
type andHash
trait have been introduced.block_header_hash()
,output_asset_to()
,output_asset_id()
have been introduced and improvements to the VM flags have been added.Identity
has received QOL improvements such asas_address()
and token features such astransfer()
.- The std-lib has now been throughly documented.
- Various optimizations and developer experience improvements.
- A minimal
More Resources for Developers and Users
🧳 Testnet Migration guide
- To address any breaking changes from
beta-3
, active builders in the Fuel ecosystem can follow the testnet migration guide → https://docs.fuel.network/guides/testnet-migration/
🚰 Faucet
- Valid transactions are required to deploy contracts and interact with the network, which require coins. Testnet ETH can be obtained from the faucet by completing a captcha.
📃 GraphQL Endpoint
- The Fuel Core node uses GraphQL instead of JSON RPC. A playground for the public GraphQL endpoint for
beta-4
is available here.
Transcend your idea, Build on Fuel
🏃🏻 Getting Started
- For an overview of Fuel, take a look at the new Fuel documentation portal.
- To begin building on Fuel, check out the developer quickstart. This guide provides an end-to-end walkthrough for developers building a dapp on Fuel.
⚡️ Apply for a Grant
- Join the recently announced Fuel Q4 Grants Program by building or integrating on Fuel.
- Apply now and receive up to $50,000 USD in funding and become a part of Fuel’s Ecosystem.
- The application period for the upcoming Q4 cohort opens on Monday the 28th of August and closes on Monday the 11th of September.
If you have any questions (development-related or otherwise), you can join the Fuel Labs Discord and head to the #questions channel under the Testnet category. Be sure to follow our Twitter for updates.
Note that the beta-4
testnet is under active development and may see breaking upgrades and even regenesis events.