Oasis Engineering Update | June 2025

Check out all the latest news and updates from the Oasis engineering team.

From the full launch of Runtime Offchain Logic (ROFL) and ROFL.App to ongoing platform improvements and upgrades, the past few months have been extremely busy for the Oasis engineering team. This review captures the milestone launch alongside the usual highlights of project updates, critical technical fixes, and new enhancements that pushed the network forward over the last month. Let's dive in!

Wallet & CLI Updates

The ROSE Wallet team merged two bugfix PRs in June. The first was fixing a crash when examining accounts with at least one failed debonding transaction (#2187). The second was a fix to a screenshot generation action in CI (#2186). Svgo dependency was also bumped, resulting in three pull requests merged in June.

The Oasis CLI team worked hard this month in preparation for the EthBelgrade and EthGlobal ROFL hackathons in Belgrade and Cannes, respectively. Following the long-awaited Core, Oasis SDK, and Sapphire support for ROFL logging, a new “oasis rofl machine logs” feature has finally landed in the CLI (#492). This new subcommand allows a developer to examine logs of the rented ROFL machine. Keep in mind that only the app admin is allowed to access those, so the request needs to be signed with a corresponding private key in your wallet. If you have a test account added in your CLI that doesn’t require a password, you can also use the -y flag (#512). Showing per-replica ROFL metadata is now also supported (#485).

A series of checks were added before building the ROFL bundle. The service container URL in the compose.yaml file is now checked that it really contains a mandatory fully-qualified domain name (#482). The permission to download a docker image without authentication is also required and verified before building the bundle. The image platform is also checked to ensure it equals “linux/amd64” since this is the only platform currently supporting the TDX TEE. The mounted volumes in ROFL containers are checked to be either the persistent storage volume or the appd socket (#494). And finally, the size of the docker images is calculated and checked to ensure that it fits the reserved storage resources in the ROFL manifest file (#488).

A new “rofl push” command was added that pushes the ROFL bundle to an OCI repository (#502). When deploying a ROFL app, a new --replace-machine flag was added to enable replacing expired machine instances with the new ones (#506). The Oasis Protocol Foundation-maintained ROFL nodes are now available for production deployments and selected in the CLI by default (#507). The “rofl secret”, “rofl upgrade”, “rofl deploy”, and “rofl provider” subcommands are now fully documented (#495, #505).

The Oasis CLI team merged 14 pull requests in June and also released version 0.14.0 for hackers to use.

Network Updates

Mainnet highlights

The number of daily transactions on Sapphire Mainnet fluctuated in the 15k-20k range with daily spikes above 100k on June 17, 19, and 26.. The monthly average in June was 29,754 transactions per day, slightly lower compared to the last month (31,588 transactions). The daily maximum was 137,055 transactions on June 17 (compared to 122,750 the last month on May 16).

As of June 30, the Mainnet nodes were well decentralized (May figures in parentheses):

  • 110 (114) validator nodes
  • 6 (6) key manager nodes
  • 40 (40) Cipher compute nodes
  • 53 (55) Emerald compute nodes
  • 34 (34) Sapphire compute nodes

No major outages were reported in June. You can check out the status of the OPF-provided services on the Mainnet status page.

Testnet highlights

On June 20, the Oasis Core 25.4 was released and proposed on Testnet. The release is not consensus-breaking, and all Testnet node operators are suggested to upgrade.

The number of daily transactions on Sapphire Testnet fluctuated between 17k and 24k over a period from June 7-13, dropping to the 9k area. The monthly average in June was 16,352 transactions per day and was slightly lower compared to the last month (18,773 transactions). The daily maximum was 24,696 transactions on June 22 (compared to May’s extraordinary 46,427 maximum).

As of June 30, the Testnet nodes were well decentralized (May figures in parentheses):

  • 46 (46) validator nodes
  • 6 (7) key manager nodes
  • 18 (18) Cipher compute nodes
  • 26 (28) Emerald compute nodes
  • 17 (17) Sapphire compute nodes
  • 2 (3) Pontus-X compute nodes

No major outages were reported in June. You can check out the status of the OPF-provided services on the Testnet status page.

Nexus & Explorer

Last month, the Nexus team focused on bringing further performance improvements and better ROFL marketplace integration. When the analyzer was near the head of the chain, the notable 6-second backoff occurred, which caused the indexer to lag 1-2 blocks. The issue was resolved by restructuring the code and simplifying the logic (#1068). DB queries on the smart contracts ABI were also greatly optimized (#935). 

On the ROFL marketplace front, an endpoint was added for fetching a specific ROFL replicas and provider offers (#1056, #1043). Events are now used to detect ROFL-related transactions (#1053). ROFL apps can now be sorted by “created at” (#1077) and filtered by admin address (#1054, #1052) or app ID (#1060). Removed ROFL instances and offers are now marked as such (#1067). Support for ROFL replica metadata was added (#1071). A new escrow address was added for storing ROFL app registration deposits (#1049).

The team made nine new releases in June for the Explorer team to quickly grab and build a product for our users:

In total, 34 pull requests were merged.

The Explorer team worked on improving search capabilities, robustness, and ROFL integration. More flexible searching for multiple words in random order (all free-text search) was added (#2012). Validator accounts in the search results are now correctly marked (#2026). Subcall precompile transactions are now parsed, and the correct method name is now shown (#2044, #2042).

Support for a flex search version of filtering the ROFL app list by name was added (#2013). ROFL app instance expiration time is now based on epoch (#2045). In the ROFL app events page, the events are now links instead of labels (#2022). ROFL machine commands are now parsed in the transaction body (#2043).

Robustness of the consensus (#2004) and ParaTime (#2018) dashboards were improved. If price lookup on Coin Gecko fails, don’t show fake fiat values anymore (#2017). "unknown" method and status most probably means encrypted, so show a lock icon instead (#2032).

The inline copy button next to more account links is now using AdaptiveTrimmer (#2029). The filter positions were adjusted on the Votes proposal page (#1994). The tokens table on mobile was reordered (#2021), and a tooltip for token origins was added (#2009). 

For smart contracts, a simple checkmark is now used whether the contract is verified or not on mobile (#2003)

The default Mainnet theme was refreshed (#2033, #2011, #2051). The change from the dark blue to the white reflects the new design language used on the website and other Oasis products. Build and test frameworks were migrated from parcel/jest to vite/vitest (#1975).

The team made three new releases which were already deployed to explorer.oasis.io:

In total, 33 pull requests were merged in June.

Developer Platform & Paratime Updates

The Oasis SDK team added support to the Runtime SDK for the API endpoint which enables users to fetch logs from a running ROFL replica (#2236).

The ROFL scheduler also received support for fetching logs by fixing CORS and adding support for SIWE authentication in order to support web browsers and Ethereum-compatible wallets (#2252, #2250).

The ROFL primitives, including the marketplace and the secrets were added to the Typescript and Web client (#2243, #2245, #2244).

Six new releases were made:

  • Go client 0.15.1 released on June 4, 0.15.2 released on June 4.
  • ROFL containers 0.5.2 released on June 20.
  • ROFL scheduler 0.2.0 released on June 20, 0.2.1 released on June 27, 0.2.2 released on June 27.

In total, 17 Oasis SDK PRs were merged in June.

The Sapphire team merged support for arbitrary HTTP transport in the Viem v2 wrapper (#591). Kudos to an external contributor BerkliumBirb. A new @oasisprotocol/sapphire-viem-v2 2.1.0 was released, containing the new feature on June 6. The Oasis Web3 Gateway merged a fix to the potential panic during shutdown (#741) and a series of smaller fixes this month.

The docs.oasis.io saw the following changes:

The Blockvote dApp team merged a series of UX fixes. The app can now be whitelabeled with a customizable application title, tagline, background, and other settings simply defined in the .env file (#140). A new GitHub workflow was added for cloudflare deployment (#138). RPC communication was reduced improving both privacy and performance (#150). 

In case of RPC gateway communication errors, properly render those and retry sending the tx when possible (#142). Browser routers are now used instead of hash ones (#152). 15 pull requests were merged in total.

Core Platform Updates

The Oasis Core team introduced the following improvements this month:

  • CometBFT and the Light Client: Service descriptors are now created only once and queries pushed to the channel immediately (#6209). New light query factories were added, which enable stateless nodes to retrieve trusted state roots from the block metadata transaction and use untrusted remote nodes to fetch state and run service clients (#6215). Finally, the light client was refactored for concurrent use by multiple goroutines (#6217).
  • Attestation: Added support for component label attestation to prove specific statements about individual components hosted by a specific node (#6224, #6228). TCB evaluation data numbers are now cached and can be leveraged when the PCS service is offline (#6233).
  • Storage improvements: Also, a long-standing bug was fixed that caused storage finalization to get stuck (#6239). Also, a potential crash when closing a nil file handle was fixed (#6231). The MKVS iterator's doNext function was simplified and made more convenient to use (#6176).

The team released a new Oasis Core 25.4 version on June 20. In total, 15 pull requests were merged.

Looking Ahead

That wraps it up for June. There's much more in the works this summer so be sure to revisit the Oasis blog for more updates. Meanwhile, chat more with the Oasis team by joining the Oasis Discord or the Oasis Forum. Also, check out this post to learn more about ROFL or give the ROFL.App a try here.

How we use cookies?
At Oasis Foundation we believe in your privacy, so you can choose to browse our site without any tracking or by clicking “Accept”, you help us to improve our site and help us grow our ecosystem. View our Privacy Policy for more information.