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.

Beta-4, Fuel’s Fourth Public Testnet

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 with forc-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

🗃 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 the forc index plugin.

📲 Application Development

  • Sway Standards:
  • 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 the StorageBytes and StorageString types have been introduced.
    • Hasher type and Hash 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 as as_address() and token features such as transfer().
    • The std-lib has now been throughly documented.
    • Various optimizations and developer experience improvements.

More Resources for Developers and Users

🧳 Testnet Migration guide

🚰 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

⚡️ 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.

Join the Fuel community

Become a Fuel Contributor