TOC

Oasis October 2025 Engineering update

Wallet and CLI Updates

Wallet

The Wallet team merged 4 PRs this month:

Update playwright and nodejs (#2210) ±74 by lukaw3d @ 2025-10-23.

Fixes GHSA-qxm8-4v54-964r

CHANGELOG:

Update dependencies

Remove unused DateFormatter component (#2209) ±26 by lukaw3d @ 2025-10-22.

CHANGELOG:

Remove unused DateFormatter component

Recommend updating Ledger firmware if faulty (#2208) ±22 by lukaw3d @ 2025-10-09.

Ledger released new firmware so recommend that instead of our workarounds

Closes #2198

CHANGELOG:

Recommend updating Ledger firmware if faulty

Ignore UpdateGate in mobile app until we publish on Google Play (#2199) ±5 by lukaw3d @ 2025-10-03.

CHANGELOG:

Ignore UpdateGate in mobile app until we publish on Google Play

In total, 4 pull requests were merged in October.


Cli

The Cli team merged 6 PRs this month:

Add `oasis rofl init --reset`, cleanup TDX leftovers in SGX manifest (#634) ±90 by matevz @ 2025-10-29.

This PR:

rofl/show: Support json format output (#635) ±73 by ptrus @ 2025-10-29.
./oasis rofl show rofl1qrqw99h0f7az3hwt2cl7yeew3wtz0fxunu7luyfg --format=json
{
  "app": {
    "id": "rofl1qzzzlecmh0m5lc8kjz0n2y7xjp9nj64gyu2q88hp",
    "policy": {
      "quotes": {
        "pcs": {
          "tcb_validity_period": 30,
          "min_tcb_evaluation_data_number": 18,
          "tdx": {}
        }
      },
      "enclaves": [
        "/Sl0BZ2ogAKyxpyR6YUAkMSBa43n38VYEaDK6AltSMcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
        "k1wGu1PSdsa+IxZ0n2/m6A123vG0TyYuHTvGyJv57i8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
      ],
      "endorsements": [
        {
          "provider_instance_admin": "oasis1qzql9cw9ly746jren7j66jscd36h5c3mfq6d6mct"
        }
      ],
      "fees": 2,
      "max_expiration": 3
    },
    "admin": "oasis1qzql9cw9ly746jren7j66jscd36h5c3mfq6d6mct",
    "stake": {
      "Amount": "100000000000000000000",
      "Denomination": ""
    },
    "metadata": {
      "net.oasis.rofl.author": "Peter Us \u003cpeter@u-s.si\u003e",
      "net.oasis.rofl.description": "Solana interactions example.",
      "net.oasis.rofl.name": "rofl-solana-example",
      "net.oasis.rofl.repository": "https://github.com/ptrus/rofl-solana-example",
      "net.oasis.rofl.version": "0.1.0"
    },
    "sek": "yE66lGAYPU96wK3w/I3lQUOp5AmNtsBP4aB+Pri4oxU="
  },
  "replicas": [
    {
      "app": "rofl1qzzzlecmh0m5lc8kjz0n2y7xjp9nj64gyu2q88hp",
      "node_id": "1owPK3eT21k0ajRG7VfHRgp4JPXobCQtzuglz6ZSJis=",
      "rak": "1dTWM0Y1hkdLUVGHq4DifzHUUI7ZqW+/xiuOzRoB4x8=",
      "expiration": 48474,
      "extra_keys": [
        {
          "secp256k1": "Axwp+4N1CWYPY3e3LklpasFONvhxzTevI0JzKaOTVuM7"
        }
      ],
      "metadata": {
        "net.oasis.app.address": "4kkB49MRXzSi2Ex9YVfkwMYMqpVnWLRoq8T2RrXLJBSP",
        "net.oasis.app.network": "testnet",
        "net.oasis.policy.provider": "omlzaWduYXR1cmVYQJyGpJjVV8AwigOZJeNYTCLQOMJC/x77qu3BGhXojLYLEH0w7pCYgqYqsQrz8fH7nHA9Ikjv58bHfLxyzDT7agVxbGFiZWxfYXR0ZXN0YXRpb25YiKJjcmFrWCDV1NYzRjWGR0tRUYergOJ/MdRQjtmpb7/GK47NGgHjH2ZsYWJlbHOhcm5ldC5vYXNpcy5wcm92aWRlcnhEb21ocGJuTjBZVzVqWlVnQUFBQUFBQUFEcVdod2NtOTJhV1JsY2xVQVZabkI5NEI4aTZvdTdJM2EzRGxkbTV0R0RpRT0=",
        "net.oasis.tls.pk": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKWQnX4xt67lws3E+IH/8ZyYGqNgihaENGMNWbFDccnbnCFSa0xgR9EEwAitUjBvU69Nz4XVunAerJ4PtCV2lhQ=="
      },
      "rek": "qUrzSrIqSp+DAiPgwOf2k99AZxGDWWCOWFuAOBKGujw="
    }
  ]
}
Show total price when topping up rofl machine (#624) ±46 by abukosek @ 2025-10-10.

Closes #612.

feat(build/rofl): Bump rofl-containers to v0.8.1 (#625) ±2 by kostko @ 2025-10-09.
cmd/account/show: add balance alias (#630) ±2 by csillag @ 2025-10-16.

This makes it possible to execute oasis account balance and get the same result as oasis account show.

The goal of this change is to get our CLI tool more inline with expectations (hallucinations) of AI coding tools, by making it more similar to other tools on the market, in order to decrease friction for new developers.

feat(build/rofl): Bump rofl-containers to v0.8.2 (#636) ±2 by ptrus @ 2025-10-28.
1 new releases of cli were made this month: In total, 6 pull requests were merged in October.


Network Updates

Mainnet highlights

[2025-10-29] am3lody:

We have released Oasis Core 25.6 for MAINNET.

Key highlights include: ➡️ Pruning of runtime state was sped up quite significantly by increasing the default BadgerDB block cache size to 256 MiB.
➡️ The runtime host handler was fixed to fetch the light block from other nodes in the network in case block results for the requested height are unavailable.
➡️ CometBFT was fixed to support pruning of consensus block store during initial block sync, reducing overall disk usage.
➡️ The runtime transaction pool now supports multiple transactions from the same sender for runtimes that allow future nonces and multiple sender transactions per block.

NOTE: If you encounter issues with paratimes after upgrading, try restarting your node.

Visit the changelog (https://github.com/oasisprotocol/oasis-core/blob/v25.6/CHANGELOG.md) to view all changes. The upgrade is non-breaking and can be performed at any time by replacing the oasis-node binary and restarting your node. All node operators on MAINNET are encouraged to upgrade. For more information and links to releases, see the updated MAINNET network parameters (https://docs.oasis.io/node/network/mainnet/). Thanks!

The number of daily transactions on Sapphire Mainnet fluctuated between 6,285 and 14,919. The monthly average in October was 12,082 transactions per day and was 9% lower compared to the last month (13,264 transactions). The daily maximum was 14,919 transactions on 8 October (compared to 23,460 the last month on 28 September).

dateall
2025-10-0113,465
2025-10-0211,792
2025-10-0311,819
2025-10-0411,744
2025-10-0511,761
2025-10-0611,878
2025-10-0713,890
2025-10-0814,919
2025-10-0912,217
2025-10-108,190
2025-10-118,039
2025-10-127,921
2025-10-139,856
2025-10-149,637
2025-10-1512,886
2025-10-1613,925
2025-10-1713,804
2025-10-1813,614
2025-10-1913,690
2025-10-2013,814
2025-10-2113,854
2025-10-2213,774
2025-10-237,574
2025-10-246,285
2025-10-2510,324
2025-10-2614,003
2025-10-2713,447
2025-10-2813,566
2025-10-2913,651
2025-10-3014,311
2025-10-3114,903
2025-11-01618

The number of daily transactions on Emerald Mainnet fluctuated between 2,913 and 6,557. The monthly average in October was 5,533 transactions per day and was 72% higher compared to the last month (3,217 transactions). The daily maximum was 6,557 transactions on 26 October (compared to 3,485 the last month on 3 September).

dateall
2025-10-012,913
2025-10-023,193
2025-10-033,201
2025-10-043,169
2025-10-053,175
2025-10-063,177
2025-10-075,233
2025-10-086,290
2025-10-096,352
2025-10-106,535
2025-10-116,441
2025-10-126,357
2025-10-136,365
2025-10-146,363
2025-10-156,324
2025-10-166,314
2025-10-176,357
2025-10-185,123
2025-10-194,008
2025-10-204,901
2025-10-216,324
2025-10-226,325
2025-10-236,327
2025-10-246,370
2025-10-256,290
2025-10-266,557
2025-10-276,297
2025-10-286,318
2025-10-296,314
2025-10-306,347
2025-10-316,278
2025-11-01262

{{NODE_STATS mainnet}}

No major outages were reported for Oasis foundation-provided services in October. A few-minutes downtimes were encountered by the ... You can check out the details on the Mainnet status page.

Testnet highlights

[2025-10-07] am3lody:

We’ve released Sapphire 1.1.0-testnet and Cipher 3.5.0-testnet for the TESTNET.

This release includes various bug fixes for ROFL market and EVM.

For node operators running Oasis Core 25.x on Sapphire and Cipher nodes, your nodes will be automatically upgraded at the following epochs: ➡️ Epoch 44550 – Sapphire1.1.0-testnet ➡️ Yesterday - Cipher 3.5.0-testnet was already upgraded

No action is required on your part. However, we recommend monitoring your nodes during and after the upgrade to confirm everything functions correctly. For more information and links to releases, see the updated TESTNET network parameters (https://docs.oasis.io/node/network/testnet). Thanks!

[2025-10-13] am3lody:

We have released Oasis Core 25.6 for TESTNET.

Key highlights include:
➡️ Pruning of runtime state was sped up quite significantly by increasing the default BadgerDB block cache size to 256 MiB. ➡️ The runtime host handler was fixed to fetch the light block from other nodes in the network in case block results for the requested height are unavailable. ➡️ CometBFT was fixed to support pruning of consensus block store during initial block sync, reducing overall disk usage. ➡️ The runtime transaction pool now supports multiple transactions from the same sender for runtimes that allow future nonces and multiple sender transactions per block.

Visit the changelog (https://github.com/oasisprotocol/oasis-core/blob/v25.6/CHANGELOG.md) to view all changes. The upgrade is non-breaking and can be performed at any time by replacing the oasis-node binary and restarting your node. All node operators on TESTNET are encouraged to upgrade. For more information and links to releases, see the updated TESTNET network parameters (https://docs.oasis.io/node/testnet/). Thanks!

The number of daily transactions on Sapphire Testnet fluctuated between 10,418 and 18,780. The monthly average in October was 12,366 transactions per day and was 19% higher compared to the last month (10,376 transactions). The daily maximum was 18,780 transactions on 8 October (compared to 17,522 the last month on 19 September).

dateall
2025-10-0111,767
2025-10-0211,727
2025-10-0312,881
2025-10-0412,174
2025-10-0511,958
2025-10-0611,371
2025-10-0715,753
2025-10-0818,780
2025-10-0914,822
2025-10-1014,996
2025-10-1111,027
2025-10-1211,367
2025-10-1311,619
2025-10-1411,676
2025-10-1511,321
2025-10-1611,789
2025-10-1711,177
2025-10-1810,486
2025-10-1910,981
2025-10-2011,673
2025-10-2118,557
2025-10-2216,732
2025-10-2310,622
2025-10-2410,854
2025-10-2511,922
2025-10-2611,058
2025-10-2710,520
2025-10-2810,528
2025-10-2910,418
2025-10-3011,073
2025-10-3111,704
2025-11-01445

The number of daily transactions on Emerald Testnet fluctuated between 3,025 and 6,790. The monthly average in October was 5,853 transactions per day and was 86% higher compared to the last month (3,152 transactions). The daily maximum was 6,790 transactions on 26 October (compared to 3,317 the last month on 12 September).

dateall
2025-10-013,025
2025-10-023,263
2025-10-033,265
2025-10-043,264
2025-10-053,262
2025-10-063,262
2025-10-075,431
2025-10-086,485
2025-10-096,524
2025-10-106,521
2025-10-116,528
2025-10-126,518
2025-10-136,533
2025-10-146,528
2025-10-156,473
2025-10-166,507
2025-10-176,502
2025-10-186,522
2025-10-196,530
2025-10-206,526
2025-10-216,515
2025-10-226,526
2025-10-236,525
2025-10-246,527
2025-10-256,516
2025-10-266,790
2025-10-276,485
2025-10-286,527
2025-10-296,512
2025-10-306,529
2025-10-316,525
2025-11-01272

{{NODE_STATS testnet}}

No major outages were reported for Oasis foundation-provided services in October. A few-minutes downtimes were encountered by the ... You can check out the details on the Testnet status page.

Oasis Nexus and Explorer

Nexus

The Nexus team merged 12 PRs this month:

analyzer/runtime: Track runtime staked balance (#1017) ±628 by ptrus @ 2025-10-21.

Fixes: #995

TODO:

CHANGELOG:

analyzer/runtime: Index staking done via runtime

Parallelize consensus block fetching (#1170) ±156 by ptrus @ 2025-10-07.

Fixes #1038

Based on testing this should bring aobut 30% (~300ms) speedup in fetching consnesus blocks.

Add Prometheus metrics for consensus block fetch statuses (#1167) ±36 by jberci @ 2025-10-01.

Closes #1074

analyzer/pubclient_test: Workaround flaky test (#1173) ±30 by ptrus @ 2025-10-09.

Fixes #1169

Changelog 0.7.17 (#1178) ±24 by ptrus @ 2025-10-14.
Pontusx native symbol rename (#1177) ±22 by ptrus @ 2025-10-14.

Rename fee_symbol from EUROe to EURAU for runtime transactions.

CHANGELOG:

Pontus-X native symbol rename

Changelog 0.7.18 (#1182) ±10 by ptrus @ 2025-10-29.
2 new releases of nexus were made this month: In total, 12 pull requests were merged in October.


Explorer

The Explorer team merged 49 PRs this month:

Convert StyledBox elements (#2285) ±661 by kaja-osojnik @ 2025-10-30.

Convert styled MUI Boxes to corresponding elements with tailwind classes.

Partial implementation of issue #2222.

CHANGELOG:

Convert StyledBox elements.

Replace MUI Cards component in dashboard pages (#2278) ±531 by buberdds @ 2025-10-27.

Part of #2270

CHANGELOG:

Replace MUI Cards component in dashboard pages

Replace MUI dependencies in Search with Oasis UI Library (#2255) ±523 by buberdds @ 2025-10-21.

CHANGELOG:

Replace MUI dependencies in Search with Oasis UI Library

Remove usage of MUI Cards in app (#2282) ±412 by buberdds @ 2025-10-28.

Built on top of #2278

Note: SubPageCard/Search results updates just replace MUI Card component. Migrating to new designs is out of scope in this PR

Part of #2270

https://pr-2282.oasis-explorer.pages.dev/mainnet/consensus/validators/oasis1qqtmpsavs44vz8868p008uwjulfq03pcjswslutz
vs https://explorer.dev.oasis.io/mainnet/consensus/validators/oasis1qqtmpsavs44vz8868p008uwjulfq03pcjswslutz

https://pr-2282.oasis-explorer.pages.dev/mainnet/sapphire
vs https://explorer.dev.oasis.io/mainnet/sapphire

https://pr-2282.oasis-explorer.pages.dev/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67
vs https://explorer.dev.oasis.io/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67

https://pr-2282.oasis-explorer.pages.dev/mainnet/consensus/validators/oasis1qqtmpsavs44vz8868p008uwjulfq03pcjswslutz
vs https://explorer.dev.oasis.io/mainnet/consensus/validators/oasis1qqtmpsavs44vz8868p008uwjulfq03pcjswslutz

https://pr-2282.oasis-explorer.pages.dev/testnet/sapphire/search?q=token
vs https://explorer.dev.oasis.io/testnet/sapphire/search?q=token

CHANGELOG:

Remove usage of MUI Cards in app

Update Box element (#2264) ±311 by kaja-osojnik @ 2025-10-22.

Partial implementation of issue #2222.

CHANGELOG:

Update Box element

Update Box element (#2254) ±273 by kaja-osojnik @ 2025-10-16.

Partial implementation of issue #2222.

CHANGELOG:

Update Box element in various places across the project.

Replace MUI ButtonBase with Oasis UI Library component (#2236) ±249 by buberdds @ 2025-10-07.

Affected views

https://pr-2236.oasis-explorer.pages.dev/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67/instance/2/metadata#metadata
vs https://explorer.dev.oasis.io/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67/instance/2/metadata#metadata

CHANGELOG:

Replace MUI ButtonBase with Oasis UI Library component

Limit isMobile usage (#2289) ±238 by buberdds @ 2025-10-30.

Partially limit usage of isMobile (MUI useMediaQuery)

CHANGELOG:

Limit isMobile usage

Update Box elements with tailwind (#2252) ±213 by kaja-osojnik @ 2025-10-14.

Partial implementation of issue #2222.

CHANGELOG:

Update Box elements with tailwind.

Replace Box with tailwind in token pages (#2231) ±208 by kaja-osojnik @ 2025-10-06.

Partial implementation of issue #2222.

CHANGELOG:

Replace Box with tailwind in token pages.

Update Boxes on Consensus related pages (#2250) ±208 by kaja-osojnik @ 2025-10-13.

Partial implementation of issue #2222.

CHANGELOG:

Update Boxes on Consensus related pages.

Replace MUI Progress with Oasis UI Library component (#2235) ±202 by buberdds @ 2025-10-07.

Used in:

CHANGELOG:

Replace MUI Progress with Oasis UI Library component

Replace MUI Table with Oasis UI Library components (#2215) ±197 by buberdds @ 2025-10-06.

Used in:

https://explorer.dev.oasis.io/mainnet/sapphire/tx
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/sapphire/tx

https://explorer.dev.oasis.io/mainnet/sapphire/rofl/app
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/sapphire/rofl/app

https://explorer.dev.oasis.io/mainnet/sapphire/token
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/sapphire/token

https://explorer.dev.oasis.io/mainnet/sapphire/block
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/sapphire/block

https://explorer.dev.oasis.io/mainnet/consensus/address
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/consensus/address
etc

https://explorer.dev.oasis.io/mainnet/emerald/address/0xEF15601B599F5C0696E38AB27f100c4075B36150/events#events
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/emerald/address/0xEF15601B599F5C0696E38AB27f100c4075B36150/events#events

https://explorer.dev.oasis.io/mainnet/sapphire/tx/0x9ce91f01d822bb4144de04ad4fce4711eb005c7d2824bfe38f670bf2916727ca
vs https://pr-2215.oasis-explorer.pages.dev/mainnet/sapphire/tx/0x9ce91f01d822bb4144de04ad4fce4711eb005c7d2824bfe38f670bf2916727ca

https://explorer.dev.oasis.io/testnet/sapphire/block/3038913/events?page=2
vs https://pr-2215.oasis-explorer.pages.dev/testnet/sapphire/block/3038913/events?page=2

CHANGELOG:

Replace MUI Table with Oasis UI Library components

Assemble changes for 1.24.2 release (#2253) ±174 by buberdds @ 2025-10-13.
Update Box element (#2258) ±162 by kaja-osojnik @ 2025-10-21.

Partial implementation of issue #2222.

CHANGELOG:

Update Box element.

Replace MUI dependencies in TableSearchBar with Oasis UI Library (#2247) ±155 by buberdds @ 2025-10-13.

Used in:

CHANGELOG:

Replace MUI dependencies in TableSearchBar with Oasis UI Library

Use rounded numbers everywhere (#2268) ±154 by lukaw3d @ 2025-10-22.

Built on top of #2267
Closes #2244

CHANGELOG:

Use rounded numbers everywhere

Update links and boxes for search results (#2234) ±144 by kaja-osojnik @ 2025-10-07.

Change Link and Box MUI components to tailwind and shadcn Oasis library on search results pages.

Partial implementation of issue #2222.

CHANGELOG:

Update links and boxes for search results.

Replace MUI Tooltip with Oasis UI Library component (#2024) ±137 by buberdds @ 2025-10-31.

First part of Tooltip updates

Waits for

Used in

CHANGELOG:

Replace MUI Tooltip with Oasis UI Library component

Init tailwind themes (#2266) ±117 by buberdds @ 2025-10-22.

Sample use cases:

Full theme migration and MUI themes removal will be possible after implementing new home page and updating network switcher where we will remove most of theme customization

CHANGELOG:

Init tailwind theme

Move knownRuntimeTxMethods to api.ts (#2298) ±92 by lukaw3d @ 2025-10-31.

CHANGELOG:

Move knownRuntimeTxMethods to api.ts

Reduce decimals in rounded numbers ("0.47956…" -> "0.48") (#2267) ±90 by lukaw3d @ 2025-10-22.

Part of #2244

CHANGELOG:

Reduce decimals in rounded numbers ("0.47956…" -> "0.48")

Update boxes on NFT pages (#2240) ±85 by kaja-osojnik @ 2025-10-09.

Partial implementation of issue #2222.

CHANGELOG:

Update boxes on NFT related pages.

Update Box elements in ROFL pages (#2241) ±78 by kaja-osojnik @ 2025-10-10.

Partial implementation of issue #2222.

CHANGELOG:

Update Box elements in ROFL pages.

Detect hot-reload issues with eslint (as a warning for now) (#2296) ±72 by lukaw3d @ 2025-10-31.

Closes #1316

Fixes #315
Related #485

Would detect #1298 (comment)

https://github.com/oasisprotocol/explorer/actions/runs/18961731230/job/54150371357?pr=2296
image

CHANGELOG:

Detect hot-reload issues with eslint

Account Link Boxes (#2223) ±71 by kaja-osojnik @ 2025-10-02.

Replace all Box MUI components in AccountLink with either div or span element with tailwind classes.

Part of implementing issue #2222

CHANGELOG:

Replace Box MUI components in AccountLink

Replace MUI AppBar component with tailwind classes (#2260) ±64 by buberdds @ 2025-10-20.

https://pr-2260.oasis-explorer.pages.dev/mainnet/sapphire
vs https://explorer.dev.oasis.io/mainnet/sapphire

CHANGELOG:

Replace MUI AppBar component with tailwind classes

Remove deprecated label prop from CopyToClipboard (#2256) ±49 by buberdds @ 2025-10-21.

in new designs we don't use "large buttons with custom labels" in CopyToClipboard component

CHANGELOG:

Remove deprecated label prop from CopyToClipboard

Replace account related Box elements (#2229) ±37 by kaja-osojnik @ 2025-10-03.

Partial implementation of issue #2222.

CHANGELOG:

Replace account related Box elements.

Show current epoch number in Consensus snapshot card (#2284) ±36 by buberdds @ 2025-10-28.

Closes #2283

https://pr-2284.oasis-explorer.pages.dev/mainnet/consensus

CHANGELOG:

Show current epoch number in Consensus snapshot card

Right-align balances (#2269) ±35 by lukaw3d @ 2025-10-28.

Built on top of #2268

Part of #2244 (comment)

http://localhost:1234/mainnet/consensus/address/oasis1qpg2xuz46g53737343r20yxeddhlvc2ldqsjh70p
http://localhost:1234/mainnet/consensus/address/oasis1qpt9j6f7zk850dmpd4ju77gqj5zp3l52v5v0w4he
http://localhost:1234/mainnet/consensus/validators/oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm

a b c
Screenshot from 2025-10-21 23-57-36 Screenshot from 2025-10-21 23-57-38 Screenshot from 2025-10-21 23-57-40

CHANGELOG:

Right-align balances

Replace the EUROe token with EURAU (#2224) ±33 by csillag @ 2025-10-04.

The Pontus-X project is migrating to a new stablecoin, so the native token of their chain changes.

We need to track that change.

Depends on:

CHANGELOG:

Replace the EUROe token with EURAU

Replace Box with tailwind in validator pages (#2230) ±33 by kaja-osojnik @ 2025-10-03.

Partial implementation of issue #2222.

CHANGELOG:

Replace Box with tailwind in validator pages.

Test named-addresses links are reachable (#2152) ±30 by lukaw3d @ 2025-10-30.

Ensures https://github.com/oasisprotocol/nexus/blob/85c5f08092790542b7dae93a0697bba4bed3b08a/named-addresses/mainnet_sapphire.json#L182 is not a broken link

Related to #1952

CHANGELOG:

Test named-addresses links are reachable

Show metadata in replica details (#2261) ±23 by buberdds @ 2025-10-20.

https://pr-2261.oasis-explorer.pages.dev/testnet/sapphire/rofl/app/rofl1qz64tdfy8attyqtl3nlg4xtw6jxdv04ccyugna3x/instance/ZjqfpPuhcj6Xelq3rvyfY0IL%2FStmNMZ6ESqit9prTgg%3D

CHANGELOG:

Show metadata in replica details

Fix mobile contract badge in tokens list (#2259) ±19 by buberdds @ 2025-10-29.

Fixes #2121
Reverts #2003 or waits for new contract status icons designs

Waits for Don's feedback

Design feedback: removing the labels doesn’t reduce the table width that much so unless we do a bigger exercise to optimise mobile we can keep labels.

CHANGELOG:

Fix mobile contract badge in tokens list

Replace "ROFL app" in the UI with alternatives (#2251) ±13 by matevz @ 2025-10-10.

Followup to #2186

Related oasisprotocol/oasis-sdk#2323

CHANGELOG:

Replace "ROFL app" in tooltips and messages with alternatives

Make ShowMoreResults look clickable on hover (#2263) ±9 by lukaw3d @ 2025-10-21.

Fixes #2262

CHANGELOG:

Make ShowMoreResults look clickable on hover

Fix outdated jsdoc types (#2290) ±9 by lukaw3d @ 2025-10-30.

CHANGELOG:

Fix outdated jsdoc types

Speedup CI: shard playwright tests (#2275) ±8 by lukaw3d @ 2025-10-23.

CHANGELOG:

Speedup CI: shard playwright tests

Update Pontus-X faucet text and link (#2225) ±7 by csillag @ 2025-10-01.

Change requested by Pontus-X

CHANGELOG:

Update Pontus-X faucet text and link

Make BuildBanner non-sticky to fix on mobile (#2228) ±7 by lukaw3d @ 2025-10-03.

Our sticky AppBar is now shorter so BuildBanner became slightly visible behind it. BuildBanner doesn't really need to stay sticky, so that fixes it.

Recording 2025-10-02 at 21 57 39

CHANGELOG:

Make BuildBanner non-sticky to fix on mobile

Update playwright (#2276) ±5 by lukaw3d @ 2025-10-23.

Fixes GHSA-qxm8-4v54-964r

CHANGELOG:

Update dependencies

Code snippet wrapping on mobile (#2216) ±3 by kaja-osojnik @ 2025-10-08.

Added word wrapping for events code snippets on mobile.

Fixes: #2181

Before:
Screenshot 2025-09-29 at 13 56 27

After:
pr-2216 oasis-explorer pages dev_mainnet_consensus_block_26621356_events(iPhone SE)

CHANGELOG:

Add word wrapping for events code snippets on mobile

Fix snapshot alignment for Pontus-x (#2227) ±3 by kaja-osojnik @ 2025-10-03.

Fix snapshot alignment for Pontus-x for EUROe Price and Test tokens containers.

Issue: #2226

Before:
Screenshot 2025-10-02 at 14 34 36

After:
Screenshot 2025-10-02 at 14 34 14

CHANGELOG:

Fix snapshot alignment for Pontus-x.

Fix block details display (remove "0" breaking the table structure) (#2265) ±3 by lukaw3d @ 2025-10-21.

Related #259

https://explorer.dev.oasis.io/search?q=8586817
Before | After
image

CHANGELOG:

Fix block details display (remove "0" breaking the table structure)

Fix header element alignment (#2272) ±3 by kaja-osojnik @ 2025-10-23.

Fix Alignment 'Visit ROSE App' button on search results page.
Issue: #2257

Before:
Screenshot 2025-10-22 at 14 34 56

After:
Screenshot 2025-10-22 at 14 34 32

CHANGELOG:

Fix header element alignment on search results page.

Make layer details copy-able (#2292) ±3 by lukaw3d @ 2025-10-30.
image

CHANGELOG:

Make layer details copy-able

1 new releases of explorer were made this month: In total, 49 pull requests were merged in October.


Developer Platform and ParaTime Updates

Oasis Sdk

The Oasis Sdk team merged 13 PRs this month:

Bump oasis core to 25.6 (#2352) ±3087 by peternose @ 2025-10-22.
docs: ROFL build revamp (#2309) ±1394 by matevz @ 2025-10-02.

Part of oasisprotocol/docs#1418

This PR brings new organization of ROFL sections following https://diataxis.fr/ writing principles.

Moves the Price oracle and Telegram bot outside of the oasis-sdk to global Build Use cases because they may use both ROFL and Sapphire (see oasisprotocol/docs#1456).

The Quickstart and Workflows are in How-to style, the Features are a Reference:

before after
image image

PREVIEW

rofl-containers: Allow containers to set instance metadata (#2356) ±501 by ptrus @ 2025-10-21.

Closes: #2234

Also see: oasisprotocol/demo-rofl#16

runtime-sdk: Add native method to base unit (#2361) ±361 by peternose @ 2025-10-25.
Bump Rust toolchain to 2025-05-09 (#2363) ±304 by peternose @ 2025-10-25.
rofl-appd: Support runtime state queries (#2367) ±136 by ptrus @ 2025-10-30.

Closes #2366

Probably makes senes to keep it simple for now.

Testing: oasisprotocol/demo-rofl#17

Run all after_handle_call hooks to ensure fee events emit (#2353) ±47 by ptrus @ 2025-10-15.

Fixes 2351

rofl-scheduler: Fix incorrect routing for Wireguard peers (#2345) ±35 by kostko @ 2025-10-01.
rofl: Various minor tweaks (#2348) ±31 by kostko @ 2025-10-08.

Fixes #2347

rofl-proxy: Increase cert provisioning backoff (#2355) ±13 by ptrus @ 2025-10-16.

Increase the max backoff interval above 12 min to recover from potential Let's Encrypt authorization failure limits.
Otherwise, certificate provisioning can get stuck in an endless failure loop due to retrying too quickly.

{"err":"API error: too many failed authorizations (5) for \"ethrpc.rofl.cloud\" in the last 1h0m0s, retry after 2025-10-15 12:44:25 UTC: see https://letsencrypt.org/docs/rate-limits/#authorization-failures-per-hostname-per-account (urn:ietf:params:acme:error:rateLimited)","level":"error","module":"runtime/serverd/cert-provisioner","msg":"failed to provision certificate","sni":"ethrpc.rofl.cloud","ts":"2025-10-15T12:42:10.531241105Z"}

An alternative would be to manually handle the Retry-After value from the error or response header, but the backoff-based approach seemed simpler since it doesnt look like instant-acme provides this nicely.

docker/rofl-dev: Bump Oasis CLI to 0.16.0 (#2346) ±4 by matevz @ 2025-10-02.
Rename EUROe token to EURAU (on Pontus-X) (#2354) ±4 by csillag @ 2025-10-14.

Pontus-X is replacing the stablecoin they use, so we also need to rename the native token of those paratimes.

docker/rofl-dev: Bump Oasis Core to 25.6.x (#2364) ±2 by anzoman @ 2025-10-27.

Upgrading Oasis Core to 25.6.x for rofl-dev Docker image.

7 new releases of oasis-sdk were made this month: In total, 13 pull requests were merged in October.


Sapphire Paratime

The Sapphire Paratime team merged 12 PRs this month:

runtime: Bump Runtime SDK to 0.16.0 and prepare 1.1.0-testnet (#632) ±664 by kostko @ 2025-10-03.
runtime: Bump Runtime SDK to 0.16.1 and prepare 1.1.2-testnet (#646) ±404 by kostko @ 2025-10-25.
runtime: Prepare 1.1.1-testnet (#633) ±94 by kostko @ 2025-10-07.
Merge soldeer job, add conditionals to npm (#631) ±45 by ZigaMr @ 2025-10-02.

This PR:

Ziga mr/feat/sapphirepy wrapper fix (#641) ±27 by ZigaMr @ 2025-10-27.

When sending encrypted (but not signed) view calls the "from" parameter is not set. This PR updates the conditional from params[0]["from"] to params[0].get("from", None) and adds tests.
Bug report: #637

runtime: Prepare 1.1.2 (#649) ±14 by kostko @ 2025-10-30.
clients/py: Prepare for 0.4.1 (#648) ±12 by matevz @ 2025-10-28.
docs: add danger tag about immutable variables unencrypted in runtime… (#636) ±5 by njelich @ 2025-10-19.

… bytecode

runtime: Allow future nonces (#644) ±4 by peternose @ 2025-10-22.

Allowing up to 10 transactions per block from the same sender.

fix: Publish foundry soldeer package on correct tag (#630) ±3 by matevz @ 2025-10-02.

Followup to #629

docs: add constant to immutable danger tag (#645) ±2 by njelich @ 2025-10-22.

adding constant as well, just to make sure noone make a mistake

deps: Bump diagrams for new docusaurus 3.9.1 (#639) ±0 by matevz @ 2025-10-10.

Needed by oasisprotocol/docs#1490

6 new releases of sapphire-paratime were made this month: In total, 12 pull requests were merged in October.


Pontusx Paratime

The Pontusx Paratime team merged 1 PRs this month:

runtime: Bump Oasis SDK to 0.16.1 and prepare 0.0.7-devnet (#13) ±1821 by kostko @ 2025-10-26.
1 new releases of pontusx-paratime were made this month: In total, 1 pull requests were merged in October.


Cipher Paratime

The Cipher Paratime team merged 4 PRs this month:

runtime: Bump Runtime SDK to 0.16.0 and prepare 3.5.0-testnet (#66) ±14 by kostko @ 2025-10-03.
runtime: Bump Runtime SDK to 0.16.1 and prepare 3.5.2-testnet (#68) ±10 by kostko @ 2025-10-25.
runtime: Prepare 3.5.2 (#69) ±8 by kostko @ 2025-10-30.
runtime: Prepare 3.5.1-testnet (#67) ±2 by kostko @ 2025-10-07.
4 new releases of cipher-paratime were made this month: In total, 4 pull requests were merged in October.


Oasis Web3 Gateway

The Oasis Web3 Gateway team merged 10 PRs this month:

feat: E2E regression tests (#790) ±2005 by ptrus @ 2025-10-03.

Closes: #775

other(benchmarks): Remove non-working benchmarks scripts (#791) ±1521 by ptrus @ 2025-10-02.
feat: Bump go to v1.25 (#792) ±74 by ptrus @ 2025-10-02.
feat(docker): Bump locanet versions (#799) ±28 by ptrus @ 2025-10-26.

Bump various versions:

Add advance-epoch.sh script to localnet Docker images (#795) ±26 by abukosek @ 2025-10-09.

This PR adds a helper script to the localnet Docker images, /advance-epoch.sh, which advances the mock epoch by 1 or by the argument given.

ci: Update versions (#801) ±23 by ptrus @ 2025-10-28.

Update oasis-core version and versions used in CI tests

In total, 10 pull requests were merged in October.


Docs

The Docs team merged 12 PRs this month:

New Build->ROFL structure, Learn and Landing page (#1456) ±1150 by matevz @ 2025-10-02.

Required for oasisprotocol/oasis-sdk#2309

Fixes #1434, #1418

This PR updates:

docs/node: Update keymanager config file (#1474) ±64 by amela @ 2025-10-07.
deps: Bump docusaurus to 3.9.1 (#1490) ±36 by matevz @ 2025-10-10.

Fixes #1481

Print document tags in DocCard (#1507) ±36 by lukaw3d @ 2025-10-30.

Fixes #1471

http://localhost:3000/build/, http://localhost:3000/build/use-cases/price-oracle
Before:
Screenshot 2025-10-28 at 13 16 49
Screenshot 2025-10-28 at 13 17 00

After:
Screenshot 2025-10-28 at 13 15 19
Screenshot 2025-10-28 at 13 15 59

deps: Bump docusaurus to 3.9.2 (#1515) ±14 by matevz @ 2025-10-28.

Should be trivial update.

docs/network/testnet: Bump Core to 25.6 (#1486) ±10 by amela @ 2025-10-13.
docs/network/mainnet: Bump Core to 25.6 (#1508) ±10 by amela @ 2025-10-29.
docs/node: Update seed node addresses (#1470) ±8 by amela @ 2025-10-06.
docs/node/network/testnet: Add Sapphire 1.1.0, Cipher 3.5.0 (#1480) ±4 by amela @ 2025-10-07.
docs/network/testnet: Add Sapphire 1.1.1, Cipher 3.5.1 (#1482) ±4 by amela @ 2025-10-07.
In total, 12 pull requests were merged in October.


Demo Starter

The Demo Starter team merged 1 PRs this month:

Update playwright and dappwright and pnpm (#36) ±8 by lukaw3d @ 2025-10-23.
In total, 1 pull requests were merged in October.


Core Platform Updates

Oasis Core

The Oasis Core team merged 21 PRs this month:

go/runtime/txpool: Add support for multiple transactions per sender (#6280) ±3098 by peternose @ 2025-10-10.

The schedule queue was changed to support multiple transactions per sender.

The queue uses virtual transaction blocks to improve priority. For example, if a sender sends a transaction A with sequence number 1 and priority 0 and transaction B with sequence number 2 and priority 100, both transactions are put into a virtual block [A, B] with an average priority 50.

The main queue was changed to support multiple transactions per sender.

CHANGELOG:

go/runtime/txpool: Add support for multiple transactions per sender

[BACKPORT/21.0.x] Add consensus archive mode support (#6350) ±1765 by anzoman @ 2025-10-29.

Adding support for archive mode for Core 21.0.x as a manual backport of #4571.

Testing:

Fixes #6349.

go/consensus/cometbft/apps/scheduler: Simplify code (#6374) ±1118 by peternose @ 2025-10-29.

Simplifies the code and lays the groundwork for upcoming changes to committee elections. The refactor should only simplify the code while preserving existing functionality.

go/common/node/node: Refactor code (#6369) ±456 by peternose @ 2025-10-27.

Minor fixes found along the way.

go/oasis-node/cmd/storage: Add command that flattens consensus dbs (#6311) ±240 by martintomazic @ 2025-10-20.

Part of #6309.

This command has been thoroughly tested and is able to immediately reclaim all the disk space even if enabling pruning late.

Unfortunately, there is a known corner case where disk space used during the peak of the compaction may be double the original size - see. It is for this reason that I suggest to release this as experimental command.

Performance:
Currently it takes less then 1h to compact all the consensus databases (with all the state/blocks from the genesis) on my 2TB playground.

I haven't observed that increasing number of the Flatten workers would increase the overall disk usage during the peak of the compaction (as warned by the badger cli documentation). How about adding this as an optional parameter?

This way users with spare disk space could e.g. configure it to use 8 workers, and thus speed-up compaction significantly. 3-5 times as from my experiments.

We may also explore the impact of increasing BlockCacheSize...

Follow-up
Given that I was testing this only on the consensus DB instances, I suggest to add compaction of the runtime DB instances as a follow-up. The testing there is also complicated as runtime state pruning is very slow, making it hard to prepare realistic samples.

I suggest the following order of follow-ups:

  1. #6341 (only consensus)
  2. Enable compaction for the runtime databases.
  3. E2e test for the compact command.
  4. Enable offline pruning for the runtime databases.

CHANGELOG:

go/oasis-node: Add new command for compacting consensus databases
A new experimental command `oasis-node storage compact-experimental` was added.
The command triggers manual compactions for all the consensus databases. This way node operators can forcefuly release disk space if enabling late pruning.

rust: Bump Rust toolchain to 2025-06-23 (#6367) ±200 by peternose @ 2025-10-27.

Bumping rustc to 1.89.0, higher versions have some problems with mbedtls.

CHANGELOG:

rust: Bump Rust toolchain to 2025-06-23

go/consensus/cometbft/config: Remove unused light block limit config (#6354) ±99 by peternose @ 2025-10-09.

CHANGELOG:

go/consensus/cometbft/config: Remove unused light block limit config
The unused configuration option `num_light_blocks_kept` has been removed from the prune configuration.

changelog: Assemble changes for 25.6 release (#6357) ±99 by kostko @ 2025-10-12.
buildkite: Require Sonatype OSS Index auth for nancy audit (#6345) ±62 by anzoman @ 2025-10-06.

Implementing authentication for our Nancy audit Buildkite step, as Sonatype OSS Index now requires authentication.

Go bump to 1.25.3 (#6377) ±62 by ptrus @ 2025-10-29.

Update Go toolchain to version 1.25.3 to avoid invalid behavior with Root.OpenRoot present in Go 1.25.0–1.25.1 (see
golang/go#75139).

TODO:

CHANGELOG:

Go bump to 1.25.3
Update Go toolchain to version 1.25.3 to avoid invalid behavior with `Root.OpenRoot` present in Go 1.25.0–1.25.1 (see golang/go#75139).

refactor: use slices.Contains to simplify code (#6360) ±43 by suranmiao @ 2025-10-30.

There is a new function added in the go1.21 standard library, which can make the code more concise and easy to read.

Changelog 21.0.2 (#6378) ±37 by ptrus @ 2025-10-31.

Prepare a release for #6350

This is the last backport release we are missing for archive nodes.

Note that the release will be done manually, since the outdated CI jobs on the stable/21.0.x branches are most likely not working anymore.

Similar as it was done for https://github.com/oasisprotocol/oasis-core/releases/tag/v20.12.8 and https://github.com/oasisprotocol/oasis-core/releases/tag/v20.10.2

We will publish/make the release public at a later date, right before we release a new oasis-core version so that these release wont be at the top.

go: Bump github.com/libp2p/go-libp2p to v0.44.0 (#6348) ±31 by kostko @ 2025-10-08.
go/consensus/cometbft/full: Error if light block cannot be constructed (#6351) ±26 by peternose @ 2025-10-09.

Returning an error instead of an empty light block when block results for the requested height are unavailable will cause the runtime host handler to fetch the light block from other nodes in the network.

CHANGELOG:

go/consensus/cometbft/full: Error if light block cannot be constructed
Returning an error instead of an empty light block when block results for the requested height are unavailable will cause the runtime host handler to fetch the light block from other nodes in the network.

go: Bump default block cache size of NodeDB badger instances to 256 MiB (#6339) ±12 by martintomazic @ 2025-10-08.

As from the experiments, increasing block cache size significantly increases the pruning speed of the runtime state (see).

Looking at the badgerDB documentation, it is recommended to use cache if using compression. The current default value is 256 MB, thus bumping to it from existing 64 MB.

Finally, given that we are highly data intensive application we may set it to even more, e.g. 1 GB.

Might be also a good idea to bump cometbft managed databases (i.e. blockstore, state, evidence) albeit feels wasteful for the evidence, and currently there is no granularity. Given we don't have performance bottlenecks there for now we could keep it as is.

Will add a changelog once we align on the final size and scope of the changes.

CHANGELOG:

go/NodeDB: Bump default BadgerDB block cache size to 256 MiB
Previously default value for NodeDB instances was 64 MiB. By bumping it we speed-up pruning of runtime state quite significantly.

go/oasis-test-runner/scenario: Apply the updated policy (#6379) ±8 by peternose @ 2025-10-30.

Test dynamic-update halts at waiting for key manager nodes to initialize as key manager enclave requires key manager policy to be set during initialization (see this build as an example). To fix this, we need to apply the pending policy by transitioning to the next epoch.

Since this test is not included in the basic SGX tests, it failed only on master when full SGX test suite was run.

go/p2p: Add observer nodes to the target set of registered nodes (#6343) ±7 by martintomazic @ 2025-10-08.

Closes #6342.

Not sure this will have much impact as these nodes were likely found via discovery (seed nodes, or possibly via libp2p if already connected with a given peer due to other protocol)...

Bump CometBFT to 0.37.16-oasis1 (#6358) ±5 by kostko @ 2025-10-15.

CHANGELOG:

Bump CometBFT to 0.37.16-oasis1

go/runtime/manager: Fix temporary bundle path (#6375) ±3 by ptrus @ 2025-10-29.

root.Name() already returns the full path.

This might have caused some issues on the testnet provider after node upgrade:

 net.oasis.error: module: unknown code: 1 message: failed to open bundle: runtime/bundle: failed to open bundle: open /node/data/runtimes/tmp/bundles/node/data/runtimes/tmp/bundles/d8f764ac129c15684291a35ce606b0dbf6aeebd6205dbf2e3a69d41994b57598/instance-00000000000003a9: no such file or directory

root.Name() test:

package main

import (
	"fmt"
	"os"
)

func main() {
	_ = os.MkdirAll("/tmp/x/y", 0o755)

	root, err := os.OpenRoot("/tmp/x/y")
	if err != nil {
		panic(err)
	}
	defer root.Close()

	fmt.Println("root.Name() =", root.Name())
}

// outputs: root.Name() = /tmp/x/y

CHANGELOG:

go/runtime/manager: Fix temporary bundle path

docker/oasis-core-dev: Bump rust to 2025-06-23 (#6372) ±2 by peternose @ 2025-10-27.

Forgot to bump Rust for docker in #6367.

1 new releases of oasis-core were made this month: In total, 21 pull requests were merged in October.