TOC

Oasis December 2025 Engineering update

Wallet and CLI Updates

Wallet

The Wallet team merged 15 PRs this month:

Update dumped validators (#2163) ±7471 by github-actions[bot] @ 2025-12-01.

Created by https://github.com/oasisprotocol/wallet/blob/master/.github/workflows/dump-validators.yml

If CI actions and checks don't run in this PR: close it and reopen.
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

Allow to change secure flag in app settings on native mobile envs (#2232) ±316 by buberdds @ 2025-12-11.

Closes #2225
Uses https://capacitorjs.com/docs/apis/privacy-screen#privacyscreenconfig
- waits for final decision

Screenshot from 2025-12-08 11-28-22

note: slice settings can control other stuff in the future (themes etc)

CHANGELOG:

Allow to change secure flag in app settings on native mobile envs

Upgrade Capacitor to v7 (#2220) ±141 by buberdds @ 2025-12-02.

Closes #2217

Tested with apk https://github.com/oasisprotocol/wallet/actions/runs/19856136732?pr=2220

CHANGELOG:

Upgrade Capacitor to v7

Adjust enter your mnemonic view to native mobile env (#2241) ±89 by buberdds @ 2025-12-22.

Closes #2238

Screenshot_20251219-112010

CHANGELOG:

Adjust enter your mnemonic view to native mobile env

Add configurable Android versionCode with CI support (#2233) ±53 by buberdds @ 2025-12-10.

CHANGELOG:

Add configurable Android versionCode with CI support

Keep native mobile status bar in sync with app theme (#2239) ±35 by buberdds @ 2025-12-15.

Closes #2237

https://github.com/capawesome-team/capacitor-plugins/tree/main/packages/android-edge-to-edge-support#usage

CHANGELOG:

Keep native mobile status bar in sync with app theme

Update mobile package name (#2224) ±29 by buberdds @ 2025-12-02.

CHANGELOG:

Update mobile package name

Adjust My accounts and Contacts scrollable area heights on mobile (#2230) ±22 by buberdds @ 2025-12-04.

Closes #2226

CHANGELOG:

Adjust My accounts and Contacts scrollable area heights on mobile

Update internal mobile build versions (#2229) ±18 by buberdds @ 2025-12-04.

Built on top of #2228
Closes #2227

yarn changelog

-        versionCode 2
-        versionName "2.4.0"
+        versionCode 20050004161
+        versionName "2.5.0"
-                              CURRENT_PROJECT_VERSION = 2;
+                              CURRENT_PROJECT_VERSION = 20050004161;
-                              MARKETING_VERSION = 2.4.0;
+                              MARKETING_VERSION = 2.5.0;

CHANGELOG:

Update internal mobile build versions

Keep mobile versions in sync (#2228) ±16 by buberdds @ 2025-12-04.

yarn changelog

-        versionName "2.4.0"
+        versionName "2.5.0"
-                               MARKETING_VERSION = 2.4.0;
+                               MARKETING_VERSION = 2.5.0;

CHANGELOG:

Keep mobile versions in sync

Adjust mobile version code value with Google Play versioning boundaries (#2231) ±8 by buberdds @ 2025-12-05.

Related #2227 and #2229

// 2.5.0
versionCode 20050004163 // master
versionCode 205004164 // branch  
            2100000000 // max 

CHANGELOG:

Update internal mobile build versions

Hide experimental build banner in mobile app (#2244) ±8 by lukaw3d @ 2025-12-23.

CHANGELOG:

Hide experimental build banner in mobile app

Generate signed commits in cron CI jobs (#2219) ±7 by lukaw3d @ 2025-12-02.

CHANGELOG:

Generate signed commits in cron CI jobs

Revert ignore UpdateGate in mobile app (#2236) ±5 by buberdds @ 2025-12-11.

Reverts #2199

CHANGELOG:

Revert ignore UpdateGate in mobile app

Adjust margins for mobile edge to edge layout (#2223) ±4 by buberdds @ 2025-12-02.

Closes #2221

alternatives:

android: {
  adjustMarginsForEdgeToEdge: 'auto', 
},
plugins: {
  StatusBar: {
    setOverlaysWebView: true,
  },
},

and controlling padding in app just for mobile builds (header/footer/check dialogs overflow etc)

CHANGELOG:

Adjust margins for mobile edge to edge layout

In total, 15 pull requests were merged in December.


Cli

The Cli team merged 13 PRs this month:

Configure builder by default (#657) ±1411 by ptrus @ 2025-12-09.

Fixes: #652

This PR configures the ROFL builder container image by default for new and upgraded ROFL apps. Also provides clearer error messages when the container runtime is missing or native builds aren't supported.

Everyone should now just run oasis rofl build (regardless of platform).

Note: This changes the built artifacts again, but builds should now be fully reproducible across environments when using the Docker builder.

Changes:

Tested this (and got reproducable builts on):

TODO:

feat: Update tablewriter to v1.1.2 (#663) ±417 by ptrus @ 2025-12-22.

Table formatting change: The only regression is that columns are now separated by 3 spaces instead of tabs. This is actually an improvement as it makes output more portable across different terminals.

rofl/build: Fix concat (#660) ±46 by ptrus @ 2025-12-16.
build: Fix missing eq function in version computation (#661) ±17 by ptrus @ 2025-12-15.

The eq function was used in common.mk but never defined, causing VERSION to always append -git<commit> even when building from an exact tag.

cli/common.mk

Line 55 in 1323206

$(and $(call eq,$(GIT_COMMIT_EXACT_TAG),YES), $(GIT_VERSION)), \

Also fix +dirty suffix to be added in case of uncommitted changes on the exact tag.

feat(build/rofl): Bump rofl-containers to v0.8.6 (#662) ±2 by uniyalabhishek @ 2025-12-18.
2 new releases of cli were made this month: In total, 13 pull requests were merged in December.


Network Updates

Mainnet highlights

[2025-12-08] peternose:

We have released Oasis Core 25.9 for MAINNET.

Key highlights include: ➡️ Full support for multiple transactions from the same sender in a single runtime block. ➡️ Now node operators can forcefully release disk space if enabling late pruning with the command oasis-node storage compact-experimental. ➡️ More robust validation of received light blocks. ➡️ Pretty print of REK (Runtime Encrpytion Key) in node status output. ➡️ New command for offline pruning of consensus databases. ➡️ Various bugfixes.

Visit the changelog" target="_blank">https://github.com/oasisprotocol/oasis-core/blob/v25.9/CHANGELOG.md">changelog 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" target="_blank">https://docs.oasis.io/node/network/mainnet/">network parameters. Thanks!

[2025-12-22] peternose:

We've released Sapphire 1.2.0 and Cipher 3.6.0 for MAINNET.

These releases include minor bug fixes related to multiple transaction verification.

Your nodes should automatically upgrade on Tuesday, 23 December 2025 at the following epochs:
➡️ Epoch 46435: Cipher 3.6.0 ➡️ Epoch 46437: Sapphire 1.2.0

No action is required on your part. However, we recommend monitoring your nodes during and after the upgrade to confirm everything functions correctly.

The number of daily transactions on Sapphire Mainnet fluctuated between 12,667 and 32,826. The monthly average in December was 20,392 transactions per day and was 25% higher compared to the last month (16,325 transactions). The daily maximum was 32,826 transactions on 20 December (compared to 18,148 the last month on 11 November).

dateall
2025-12-0116,363
2025-12-0217,507
2025-12-0317,451
2025-12-0426,393
2025-12-0519,374
2025-12-0612,667
2025-12-0714,321
2025-12-0816,109
2025-12-0916,698
2025-12-1020,767
2025-12-1122,439
2025-12-1222,520
2025-12-1322,419
2025-12-1422,395
2025-12-1520,667
2025-12-1616,008
2025-12-1717,992
2025-12-1822,980
2025-12-1923,403
2025-12-2032,826
2025-12-2132,607
2025-12-2227,389
2025-12-2318,575
2025-12-2418,554
2025-12-2518,527
2025-12-2618,964
2025-12-2719,570
2025-12-2819,222
2025-12-2919,089
2025-12-3018,885
2025-12-3119,477
2026-01-01853

The number of daily transactions on Emerald Mainnet fluctuated between 3,161 and 6,358. The monthly average in December was 5,363 transactions per day and was 16% lower compared to the last month (6,349 transactions). The daily maximum was 6,358 transactions on 5 December (compared to 6,668 the last month on 4 November).

dateall
2025-12-016,086
2025-12-026,320
2025-12-036,338
2025-12-046,323
2025-12-056,358
2025-12-066,282
2025-12-076,296
2025-12-086,303
2025-12-096,320
2025-12-106,331
2025-12-116,312
2025-12-126,304
2025-12-136,279
2025-12-146,288
2025-12-156,300
2025-12-166,284
2025-12-176,305
2025-12-186,326
2025-12-196,318
2025-12-206,288
2025-12-216,295
2025-12-225,252
2025-12-233,171
2025-12-243,340
2025-12-253,178
2025-12-263,193
2025-12-273,170
2025-12-283,161
2025-12-293,180
2025-12-303,177
2025-12-313,178
2026-01-01132

{{NODE_STATS mainnet}}

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

Testnet highlights

[2025-12-02] am3lody:

We have released Oasis Core 25.9 for TESTNET.

Key highlights include: ➡️ New command for offline pruning of consensus databases. ➡️ Various bugfixes.

Visit the changelog (https://github.com/oasisprotocol/oasis-core/blob/v25.9/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/network/testnet/). Thanks!

The number of daily transactions on Sapphire Testnet fluctuated between 7,106 and 22,278. The monthly average in December was 14,909 transactions per day and was 7% lower compared to the last month (15,986 transactions). The daily maximum was 22,278 transactions on 11 December (compared to 26,738 the last month on 12 November).

dateall
2025-12-0113,377
2025-12-0220,791
2025-12-0317,872
2025-12-0417,710
2025-12-0519,477
2025-12-0614,153
2025-12-0710,048
2025-12-0810,126
2025-12-0914,431
2025-12-1018,643
2025-12-1122,278
2025-12-1222,236
2025-12-1318,676
2025-12-1417,822
2025-12-1516,703
2025-12-1616,738
2025-12-1715,815
2025-12-1816,806
2025-12-1916,956
2025-12-2016,212
2025-12-2115,747
2025-12-2213,000
2025-12-2316,378
2025-12-2415,176
2025-12-259,689
2025-12-267,106
2025-12-277,731
2025-12-288,433
2025-12-297,695
2025-12-307,823
2025-12-3116,520
2026-01-01680

The number of daily transactions on Emerald Testnet fluctuated between 2,333 and 6,696. The monthly average in December was 5,118 transactions per day and was 22% lower compared to the last month (6,577 transactions). The daily maximum was 6,696 transactions on 10 December (compared to 6,665 the last month on 7 November).

dateall
2025-12-016,330
2025-12-026,570
2025-12-036,539
2025-12-046,484
2025-12-056,531
2025-12-066,559
2025-12-076,598
2025-12-086,580
2025-12-096,572
2025-12-106,696
2025-12-116,577
2025-12-126,591
2025-12-136,548
2025-12-146,547
2025-12-156,582
2025-12-166,562
2025-12-176,595
2025-12-186,595
2025-12-196,233
2025-12-204,729
2025-12-214,643
2025-12-223,893
2025-12-232,347
2025-12-242,344
2025-12-252,344
2025-12-262,355
2025-12-272,339
2025-12-282,333
2025-12-292,353
2025-12-302,342
2025-12-312,340
2026-01-0197

{{NODE_STATS testnet}}

No major outages were reported for Oasis foundation-provided services in December. 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 14 PRs this month:

analyzer/evmverifier: Fix missing bytecode for verified contracts (#1228) ±10065 by ptrus @ 2025-12-23.

Fixes: #1227

Insert address preimages and queue verified contracts for bytecode analysis. Reprocess contracts missing preimages to backfill historical data from Sourcify.

CHANGELOG:

analyzer/evmverifier: Fix missing bytecode for verified contracts
Insert address preimages and queue verified contracts for bytecode analysis. Reprocess contracts missing preimages to backfill historical data from Sourcify.

docs: Generate docs using @scalar/api-reference instead of redoc-cli (#1217) ±93 by lukaw3d @ 2025-12-23.

CHANGELOG:

Generate docs using @scalar/api-reference instead of redoc-cli

common: Fix NumericToBigInt returning zero for negative exponents (#1230) ±68 by ptrus @ 2025-12-22.
Support validators by node-id/entity-id (#1222) ±50 by ptrus @ 2025-12-21.

Fixes: #1218

TODO:

CHANGELOG:

Support searching validators by node-id/entity-id

runtime/accounts: Include nonce in API response (#1225) ±26 by ptrus @ 2025-12-21.

Fixes: #1213

TODO:

CHANGELOG:

runtime/accounts: Include nonce in API response

openapi: Split long summaries into descriptions (#1215) ±13 by lukaw3d @ 2025-12-10.

CHANGELOG:

openapi: Split long summaries into descriptions

In total, 14 pull requests were merged in December.


Explorer

The Explorer team merged 27 PRs this month:

Migrate runtime events icons to Lucide (#2383) ±215 by buberdds @ 2025-12-16.

Small batch of icons for #2317

Screenshot from 2025-12-10 11-22-26

CHANGELOG:

Migrate runtime events icons to Lucide

Migrate consensus tx icons to Lucide (#2388) ±130 by buberdds @ 2025-12-16.

the last of #2317
Needs #2383, #2384

CHANGELOG:

Migrate consensus transactions icons to Lucide

Prepare Explorer for incoming breaking changes in Nexus API (#2399) ±128 by buberdds @ 2025-12-19.

Closes #2391, prep for oasisprotocol/nexus#1222 (should work with old and new api)

backward compat

CHANGELOG:

Prepare Explorer for incoming breaking changes in Nexus API

Migrate icons to Lucide (#2384) ±124 by buberdds @ 2025-12-16.

Another batch of icons for #2317
Built on top off #2383

CHANGELOG:

Migrate icons to Lucide

Revert fetching balances from gRPC (#2248) ±103 by buberdds @ 2025-12-04.

Closes #1555

https://pr-2248.oasis-explorer.pages.dev/testnet/sapphire/address/0x2B95834655499B3C3817f379e1C8E132baa965F4
vs https://explorer.dev.oasis.io/testnet/sapphire/address/0x2B95834655499B3C3817f379e1C8E132baa965F4

This one is still wrong oasisprotocol/oasis-sdk#2351
https://pr-2248.oasis-explorer.pages.dev/testnet/sapphire/address/oasis1qp3r8hgsnphajmfzfuaa8fhjag7e0yt35cjxq0u4
vs https://explorer.dev.oasis.io/testnet/sapphire/address/oasis1qp3r8hgsnphajmfzfuaa8fhjag7e0yt35cjxq0u4

https://pr-2248.oasis-explorer.pages.dev/mainnet/sapphire/address/0x0A400fb7b16760fF1ed77192cFE45cC303BcB980
vs https://explorer.dev.oasis.io/mainnet/sapphire/address/0x0A400fb7b16760fF1ed77192cFE45cC303BcB980

CHANGELOG:

Revert fetching balances from gRPC

Limit usage of MUI icons (#2376) ±66 by buberdds @ 2025-12-04.

Small batch of icons for #2317

validator active/waiting/inactive chart circles
https://pr-2376.oasis-explorer.pages.dev/mainnet/consensus
vs https://explorer.dev.oasis.io/mainnet/consensus

secondary runtime chart button switcher (emerald/pontusX)
https://pr-2376.oasis-explorer.pages.dev/testnet/consensus
vs https://explorer.dev.oasis.io/testnet/consensus

consensus acc balance chart
https://pr-2376.oasis-explorer.pages.dev/mainnet/consensus/address/oasis1qzca4c3gch3ymy3w7e5ffzf9l6alpazpf5ffyytn
vs https://explorer.dev.oasis.io/mainnet/consensus/address/oasis1qzca4c3gch3ymy3w7e5ffzf9l6alpazpf5ffyytn

search icons at the bottom
https://pr-2376.oasis-explorer.pages.dev/search?q=oasis1qzca4c3gch3ymy3w7e5ffzf9l6alpazpf5ffyytn
vs https://explorer.dev.oasis.io/search?q=oasis1qzca4c3gch3ymy3w7e5ffzf9l6alpazpf5ffyytn

missing validator icon
https://pr-2376.oasis-explorer.pages.dev/mainnet/consensus/validators/oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm
vs https://explorer.dev.oasis.io/mainnet/consensus/validators/oasis1qqekv2ymgzmd8j2s2u7g0hhc7e77e654kvwqtjwm

nft instance details image (contrast/full screen)
https://pr-2376.oasis-explorer.pages.dev/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67/instance/2
vs https://explorer.dev.oasis.io/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67/instance/2

nft gallery thumbnails
https://pr-2376.oasis-explorer.pages.dev/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67/inventory#inventory
vs https://explorer.dev.oasis.io/mainnet/emerald/token/0x903d32d7307b4b3FC4bc9a510CA658C91A346A67/inventory#inventory

cancel icon - cannot provide all no live examples
advance view - events empty state icon
https://pr-2376.oasis-explorer.pages.dev/mainnet/consensus/tx/978e5a21e7727f99104c5ee06a3586da7a54a6f817163a7c9637f2f2368fa5cd
vs https://explorer.dev.oasis.io/mainnet/consensus/tx/978e5a21e7727f99104c5ee06a3586da7a54a6f817163a7c9637f2f2368fa5cd

empty staked card
https://pr-2376.oasis-explorer.pages.dev/mainnet/consensus/address/oasis1qzca4c3gch3ymy3w7e5ffzf9l6alpazpf5ffyytn
vs https://explorer.dev.oasis.io/mainnet/consensus/address/oasis1qzca4c3gch3ymy3w7e5ffzf9l6alpazpf5ffyytn

https://pr-2376.oasis-explorer.pages.dev/mainnet/sapphire/address/0xFBe030f83EC3646cdAEAaA476c02f4b370611a8c
vs https://explorer.dev.oasis.io/mainnet/sapphire/address/0xFBe030f83EC3646cdAEAaA476c02f4b370611a8c

no preview avail
https://pr-2376.oasis-explorer.pages.dev/mainnet/sapphire/token/0x998633BDF6eE32A9CcA6c9A247F428596e8e65d8/inventory#inventory
vs https://explorer.dev.oasis.io/mainnet/sapphire/token/0x998633BDF6eE32A9CcA6c9A247F428596e8e65d8/inventory#inventory

help icon
https://pr-2376.oasis-explorer.pages.dev/mainnet/sapphire/tx/0xa9dd53e1d01b0b089aed72350825ff80a57a4b16a3c3a28cdeba2c0823f0e6b4
vs https://explorer.dev.oasis.io/mainnet/sapphire/tx/0xa9dd53e1d01b0b089aed72350825ff80a57a4b16a3c3a28cdeba2c0823f0e6b4

CHANGELOG:

Limit usage of MUI icons

Assemble changes for 1.26.1 release (#2389) ±61 by buberdds @ 2025-12-15.
Update icons in Layerpicker (#2367) ±38 by kaja-osojnik @ 2025-12-02.

LayerPicker icons update including network status, network icons and chevrons.

Partial implementation of #2317

Before:
Screenshot 2025-12-01 at 19 22 59
Screenshot 2025-12-01 at 19 23 11

After:
Screenshot 2025-12-01 at 19 22 18
Screenshot 2025-12-01 at 19 23 49

CHANGELOG:

Update icons in Layerpicker

Update Transaction icons (#2362) ±34 by kaja-osojnik @ 2025-12-01.

Includes:

Before:
Screenshot 2025-11-26 at 16 23 41
Screenshot 2025-11-26 at 16 24 11

After:
Screenshot 2025-11-26 at 16 20 55
Screenshot 2025-11-26 at 16 21 22

CHANGELOG:

Update Transaction icons in table

Unify and simplify the "Block" and "Height" terminology (#2387) ±30 by buberdds @ 2025-12-15.

Closes #2385

CHANGELOG:

Unify and simplify the "Block" and "Height" terminology

Assemble changes for 1.26.2 release (#2404) ±30 by buberdds @ 2025-12-22.
Change "Layer" to "Chain" and deduplicate unused useFormattedTimestampWithDistance (#2381) ±26 by lukaw3d @ 2025-12-08.

CHANGELOG:

Change "Layer" to "Chain"

Fix inconsistent relative time displays (#2401) ±26 by lukaw3d @ 2025-12-19.

Fixes #2377

http://localhost:1234/mainnet/consensus/block/17407756 showed "1 yr" and "2 years ago" in tooltip. This could be fixed with formatDistanceStrict rounding: floor, but then http://localhost:1234/mainnet/consensus/block/26177788 "4 mo" and "3 months ago" in tooltip. So instead, reused formatDistanceToNow.

CHANGELOG:

Fix inconsistent relative time displays

Update ArrowForwardIcon with ArrowRight lucide icon (#2371) ±25 by kaja-osojnik @ 2025-12-02.

Replace ArrowForwardIcon from MUI with ArrowRight lucide-react icona across the project.

Partial implementation of #2317

Updated at:
https://pr-2371.oasis-explorer.pages.dev/mainnet/sapphire/search?q=noresults
https://pr-2371.oasis-explorer.pages.dev/mainnet/consensus/tx?tx_method=staking.Transfer
https://pr-2371.oasis-explorer.pages.dev/mainnet/sapphire/tx/0x2fd1195b5c4ea9cc0e64af74c741686347e195e01b29a6e2b90ef49dfb4a70cc
https://pr-2371.oasis-explorer.pages.dev/mainnet/sapphire/tx?tx_method=accounts.Transfer
https://pr-2371.oasis-explorer.pages.dev/mainnet/sapphire/token/0x39d22B78A7651A76Ffbde2aaAB5FD92666Aca520

CHANGELOG:

Update ArrowForwardIcon with ArrowRight lucide icon

Update external link icon (#2364) ±19 by kaja-osojnik @ 2025-12-01.

Update OpenInNewIcon MUI icon with ExternalLink from lucide-react.

Before:
Screenshot 2025-11-28 at 13 48 44
Screenshot 2025-11-28 at 13 49 48
Screenshot 2025-11-28 at 13 49 13

After:
Screenshot 2025-11-28 at 13 47 44
Screenshot 2025-11-28 at 13 47 54
Screenshot 2025-11-28 at 13 48 06

CHANGELOG:

Update external link icon

Change "Paratime" to "Chain" (#2382) ±16 by buberdds @ 2025-12-10.

Align search/details labels with #2381

https://pr-2382.oasis-explorer.pages.dev/search?q=11%2C809%2C586
vs https://explorer.dev.oasis.io/search?q=11%2C809%2C586

CHANGELOG:

Change "Paratime" to "Chain"

Include module in error messages (#2394) ±16 by lukaw3d @ 2025-12-17.

Also fixes #1510

CHANGELOG:

Include module in error messages

Add missing keys to custom Lucide icons (#2403) ±13 by buberdds @ 2025-12-22.

73002b9#r173215932

CHANGELOG:

Add missing keys to custom Lucide icons

Revert workaround adding empty revert message to transactions without it (#2407) ±11 by lukaw3d @ 2025-12-22.

Reverts dd6fc7a

Fixes #1511

CHANGELOG:

Revert workaround adding empty revert message to transactions without it

Remove Search Suggestion Icons (#2368) ±9 by kaja-osojnik @ 2025-12-02.

Removing icons as they are not used in new designs anymore.

Partial implementation of #2317

CHANGELOG:

Remove Search Suggestion Icons

Bump Oasis UI Library dependency (#2373) ±9 by buberdds @ 2025-12-03.

includes oasisprotocol/ui-library#94

https://pr-2373.oasis-explorer.pages.dev/mainnet/sapphire/rofl/app/rofl1qze0hqur8xf20xfd44fke8dayysdq8p2wu23x0zp?q=rofl1qze0hqur8xf20xfd44fke8dayysdq8p2wu23x0zp

vs https://explorer.dev.oasis.io/mainnet/sapphire/rofl/app/rofl1qze0hqur8xf20xfd44fke8dayysdq8p2wu23x0zp?q=rofl1qze0hqur8xf20xfd44fke8dayysdq8p2wu23x0zp

CHANGELOG:

Bump Oasis UI Library dependency

Remove MUI dependencies (#2390) ±9 by buberdds @ 2025-12-17.

Closes #2307

CHANGELOG:

Remove MUI dependencies

Update Copy icon (#2366) ±8 by kaja-osojnik @ 2025-12-01.

Update copy icon from MUI to lucide-react.

Partial implementation of #2317

Before:
Screenshot 2025-12-01 at 14 43 23

After:
Screenshot 2025-12-01 at 14 42 43

CHANGELOG:

Update Copy icon

Generate signed commits in cron CI job (#2369) ±8 by lukaw3d @ 2025-12-02.

CHANGELOG:

Generate signed commits in cron CI job

Don't show empty array if no params in contract call function display (#2397) ±7 by lukaw3d @ 2025-12-18.

make this prettier

https://explorer.oasis.io/mainnet/sapphire/tx/0xe2a987eab2cd07d741dc7520a9586562231cf382123f993c8ea0f4052c97ac1a
image

CHANGELOG:

Don't show empty array if no params in contract call function display

Autofocus search on home page (#2398) ±6 by lukaw3d @ 2025-12-18.

CHANGELOG:

Autofocus search on home page

Update assignees in UX github template (#2379) ±3 by buberdds @ 2025-12-05.

Needs to be updated in rose app and votee repo as well

CHANGELOG:

Update assignees in UX github template

2 new releases of explorer were made this month: In total, 27 pull requests were merged in December.


Developer Platform and ParaTime Updates

Oasis Sdk

The Oasis Sdk team merged 10 PRs this month:

feat(rofl-client/rs): add Rust ROFL client (#2371) ±668 by ZigaMr @ 2025-12-20.

This PR adds a new Rust crate providing an async client for ROFL appd over Unix domain sockets. Includes core APIs for app id, key generation, and transaction sign+submit, along with docs and an example.

Bump Oasis Core to 25.9 (#2417) ±496 by peternose @ 2025-12-10.

Once this is merged, runtimes using the latest version of Oasis SDK must run on Oasis Core 25.8 or later, as the Core must support the GetValidators function and corresponding runtime handler function for RHP protocol.

fix(rofl-appd): improve transaction field deserialization flexibility (#2416) ±369 by uniyalabhishek @ 2025-12-17.

Fix transaction deserialization issues causing 422 errors in ROFL appd

fix(rofl-client): default encrypt to true in Python client (#2418) ±55 by matevz @ 2025-12-11.

Python client changes from #2416.

docs/rofl: Simplify rofl build instructions (#2411) ±47 by ptrus @ 2025-12-11.

Merge this once oasisprotocol/cli#657 is merged and released

rofl-client-py: Prepare 0.1.7 release (#2412) ±38 by rube-de @ 2025-12-03.

Add changelog entries for three releases:

fixes:

fix: update txn examples README for ETH-style transfers of ROSE (#2398) ±22 by uniyalabhishek @ 2025-12-10.

closes #2394

docs: Describe the 422 error under Troubleshooting (#2415) ±10 by matevz @ 2025-12-09.
Fix command for fetching Docker image digests (#2413) ±4 by lukaw3d @ 2025-12-06.
docs: Explicitly use "encrypt" field in appd (#2414) ±1 by lukaw3d @ 2025-12-09.

This field is currently required by mistake

2 new releases of oasis-sdk were made this month: In total, 10 pull requests were merged in December.


Sapphire Paratime

The Sapphire Paratime team merged 13 PRs this month:

docs: Add tutorial on encrypted events and examples for Sapphire (#612) ±1873 by uniyalabhishek @ 2025-12-17.

Closes #275.

PREVIEW

Introduces documentation and a new example project for implementing encrypted events on Oasis Sapphire. This allows developers to emit confidential event data that can only be decrypted by authorized parties.

Key Changes:

Example under: https://github.com/oasisprotocol/sapphire-paratime/tree/docs/275-add-encrypted-events-tutorial/examples/encrypted-events

Sidebar update in docs PR: oasisprotocol/docs#1398

docs/develop/security: Add Simulation attack section (#667) ±177 by matevz @ 2025-12-19.

Fixes #654

PREVIEW

A working PoC lives here: https://github.com/oasisprotocol/demo-starter/tree/matevz/simulation-attack/backend

TODO: Move the PoC to a simpler separate demo-simulation-attack repo and add the :::example admonition to the docs.

wagmi-v2: Stable multichain wrapping logic (#634) ±172 by lubej @ 2025-12-04.

In #624 there was an issue discovered for the multichain case, where using the same connector(i.e. MetaMask) wagmi would cache the connectors, causing a collision between the wrapped and unwrapped connector. This was not an issue previously in #550 as the providers were decoupled/duplicated before being fed into wagmi. Adding chain aware wrapping seems to work, so that the connector is only wrapped on Sapphire chains, otherwise it returns unwrapped connector.

wagmi-v2: Fix WalletConnect "Please call connect() before request()" error (#664) ±134 by lubej @ 2025-12-08.

Recent #634 introduced some breaking changes for WalletConnect connector. This PR addresses the change, by obtaining the chainId from the provider itself, instead of calling request on the WalletConnect provider. ChainId is already handled internally in WalletConnect provider, so there is no need to call eth_chainId method on said provider.

Explicitly use evmVersion paris (#663) ±42 by lukaw3d @ 2025-12-08.
integrations/wagmi-v2: Prepare 3.0.0 release (#656) ±17 by matevz @ 2025-12-04.
runtime: Prepare 1.2.0 (#669) ±14 by peternose @ 2025-12-17.
integrations/wagmi-v2: Prepare 3.0.1 release (#665) ±9 by matevz @ 2025-12-08.
clients-js: Prepare 2.3.0 release (#661) ±8 by matevz @ 2025-12-05.
Fix `forge doc` in CI for contracts (#660) ±6 by matevz @ 2025-12-04.

Fixes two issues:

wagmi-v2-example: Use latest v12 MetaMask version (#666) ±4 by lubej @ 2025-12-09.

MetaMask version 12.23.0 is no longer available, while the dappwright recommendedVersion pointed to 12.23.0 the CI will be erroring out.

Until the recommended version is updated, that is the version that works for now.

Tracked here: TenKeyLabs/dappwright#506

examples/wagmi-v2: Bump dappwright to 2.12.0 (#668) ±4 by matevz @ 2025-12-17.

Fixes dappwright test errors. e.g. https://github.com/oasisprotocol/sapphire-paratime/actions/runs/20300938387/job/58306101774?pr=612

xvfb-run pnpm test
  shell: /usr/bin/bash -e {0}
  env:
    SAPPHIRE_LOCALNET_HTTP_PROXY_PORT: 3001
    PNPM_HOME: /home/runner/setup-pnpm/node_modules/.bin

> sapphire-examples-wagmi-v2@0.0.0 test /home/runner/work/sapphire-paratime/sapphire-paratime/examples/wagmi-v2
> playwright test

[WebServer] 
[WebServer] > sapphire-examples-wagmi-v2@0.0.0 start:server /home/runner/work/sapphire-paratime/sapphire-paratime/examples/wagmi-v2
[WebServer] > vite --port 3000
[WebServer] 
[WebServer] 
[WebServer]   VITE v4.5.13  ready in 247 ms
[WebServer] 
[WebServer]   ➜  Local:   http://localhost:3000/
[WebServer]   ➜  Network: use --host to expose

Running 6 tests using 2 workers


Seems you are running a newer version (12.23.1) of metamask than recommended by the Dappwright team.
      Use it at your own risk or set to the recommended version "12.23.0".

Downloading metamask...
  ✘  2 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi (712ms)
  -  3 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi-injected
  -  4 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi-multichain
  -  5 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi-multichain?plain
  -  6 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/rainbowkit

Seems you are running a newer version (12.23.1) of metamask than recommended by the Dappwright team.
      Use it at your own risk or set to the recommended version "12.23.0".

Downloading metamask...
  ✘  7 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi (retry #1) (419ms)
  -  8 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi-injected (retry #1)
  -  9 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi-multichain (retry #1)
  -  10 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi-multichain?plain (retry #1)
  -  11 [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/rainbowkit (retry #1)
  ✓  1 [main] › test/wallet-connect.spec.ts:4:2 › WalletConnect › should have no error when selecting WalletConnect in RainbowKit modal (1.5s)


  1) [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi ──────

    'Version 12.23.1 not found!'

    Retry #1 ───────────────────────────────────────────────────────────────────────────────────────

    'Version 12.23.1 not found!'

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    test-results/e2e-deploy-contract-and-send-encrypted-transaction-wagmi-main-retry1/trace.zip
    Usage:

        pnpm exec playwright show-trace test-results/e2e-deploy-contract-and-send-encrypted-transaction-wagmi-main-retry1/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  1 failed
    [main] › test/e2e.spec.ts:79:3 › deploy contract and send encrypted transaction /#/wagmi ───────
  4 did not run
  1 passed (9.1s)
 ELIFECYCLE  Test failed. See above for more details.
Error: Process completed with exit code 1.
docs: Explicitly use hardhat v2 (docs written before v3 was default) (#662) ±2 by lukaw3d @ 2025-12-08.
4 new releases of sapphire-paratime were made this month: In total, 13 pull requests were merged in December.


Cipher Paratime

The Cipher Paratime team merged 1 PRs this month:

runtime: Prepare 3.6.0 (#71) ±8 by peternose @ 2025-12-17.
1 new releases of cipher-paratime were made this month: In total, 1 pull requests were merged in December.


Oasis Web3 Gateway

The Oasis Web3 Gateway team merged 3 PRs this month: In total, 3 pull requests were merged in December.


Ledger Oasis

The Ledger Oasis team merged 1 PRs this month:

Update deps (#234) ±35 by abenso @ 2025-12-22.

🔗 zboto Link

1 new releases of ledger-oasis were made this month: In total, 1 pull requests were merged in December.


Docs

The Docs team merged 17 PRs this month:

docs/get-involved: Update Telegram channels (#1609) ±121 by peternose @ 2025-12-11.
Update rofl build command (#1610) ±74 by ptrus @ 2025-12-11.
Bunch of UI fixes (#1619) ±65 by matevz @ 2025-12-18.

This PR:

docs/run-your-node/prerequisites: Remove EPID attestation reference (#1602) ±44 by martintomazic @ 2025-12-09.

EPID attestation is outdated. Relates to oasisprotocol/oasis-core#6426.

docs: Add christmas hat (#1584) ±10 by matevz @ 2025-12-01.

It's that time of the year again ;)

Update testnet.md (#1593) ±10 by CrazySerGo @ 2025-12-05.

Oasis Core 25.9 for TESTNET was released.
Docs should be aligned.

docs/node/network/mainnet: Bump Core to 25.9 (#1600) ±10 by peternose @ 2025-12-08.
docs/node/run-your-node: Add another error for Bubblewrap failure (#1613) ±6 by peternose @ 2025-12-17.
docs/node/network/mainnet: Add Sapphire 1.2.0 and Cipher 3.6.0 (#1620) ±6 by peternose @ 2025-12-22.
Update grant application link and remove oracle mention (#1604) ±5 by rbriphy @ 2025-12-10.

Updated the grant application link and removed outdated information about oracle solutions.

docs/node/network/testnet: Bump runtime versions (#1594) ±4 by peternose @ 2025-12-05.
chore: update sapphire docs sidebar (#1398) ±3 by uniyalabhishek @ 2025-12-17.

resolves build error for oasisprotocol/sapphire-paratime#612

Replace SVG favicon with smaller size (#1587) ±0 by kaja-osojnik @ 2025-12-02.

Closes #1586.

docs: Update client-km-compute diagram with a Sapphire chain (#1588) ±0 by matevz @ 2025-12-02.

This makes the diagram more illustrative and consistent with other diagrams where we started to replace generic "ParaTime" box with "Sapphire confidential EVM chain" blockchain diagram.

In total, 17 pull requests were merged in December.


Playground

The Playground team merged 2 PRs this month:

projects: add devmatch hackathon 2025 projects (#151) ±481 by uniyalabhishek @ 2025-12-23.

closes #142

projects: add ethglobal buenos aires top 5 projects (#150) ±439 by uniyalabhishek @ 2025-12-23.

closes #148

In total, 2 pull requests were merged in December.


Demo Voting

The Demo Voting team merged 1 PRs this month:

contracts: Replace private immutable -> private (#27) ±8 by matevz @ 2025-12-08.

Followup to oasisprotocol/sapphire-paratime#636

In total, 1 pull requests were merged in December.


Demo E2eproxy

The Demo E2eproxy team merged 1 PRs this month:

contracts: Replace private immutable -> private (#1) ±4 by matevz @ 2025-12-08.

Followup to oasisprotocol/sapphire-paratime#636

In total, 1 pull requests were merged in December.


Dapp Blockvote

The Dapp Blockvote team merged 1 PRs this month:

contracts: Replace private immutable -> private (#191) ±2 by matevz @ 2025-12-08.

Followup to oasisprotocol/sapphire-paratime#636

In total, 1 pull requests were merged in December.


Dapp Votee

The Dapp Votee team merged 1 PRs this month:

Update assignees in UX github template (#92) ±2 by buberdds @ 2025-12-05.
In total, 1 pull requests were merged in December.


Core Platform Updates

Oasis Core

The Oasis Core team merged 4 PRs this month:

go/worker/common: Replace epoch transitions with committee transitions (#6425) ±1055 by peternose @ 2025-12-05.

In the future there will be no empty EpochTransition runtime blocks, so we need to change the committee worker to be able to run without relying on HeaderType of runtime blocks.

CHANGELOG:

go/worker/common: Replace epoch transitions with committee transitions
The following metric has been removed:
- `oasis_worker_epoch_transition_count`
The following metric has been added:
- `oasis_worker_committee_transition_count`

go/common/sgx/pcs/policy: Add FMSP whitelist to quote policy (#6331) ±332 by peternose @ 2025-12-05.

CHANGELOG:

go/common/sgx/pcs/policy: Add FMSPC whitelist to quote policy

go/runtime/host/sandbox/host: Limit runtime restarts (#6434) ±27 by peternose @ 2025-12-17.
go: Bump go-libp2p to v0.46.0 (#6432) ±10 by peternose @ 2025-12-16.

Solves the following dependency problem:

pkg:golang/github.com/quic-go/quic-go@v0.55.0
1 known vulnerabilities affecting installed version
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ [CVE-2025-64702] CWE-770: Allocation of Resources Without Limits or Throttling                                                                                                                                        ┃
┣━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Description        ┃ quic-go is an implementation of the QUIC protocol in Go. Versions 0.56.0                                                                                                                         ┃
┃                    ┃ and below are vulnerable to excessive memory allocation through quic-go's                                                                                                                        ┃
┃                    ┃ HTTP/3 client and server implementations by sending a QPACK-encoded HEADERS                                                                                                                      ┃
┃                    ┃ frame that decodes into a large header field section (many unique header                                                                                                                         ┃
┃                    ┃ names and/or large values). The implementation builds an http.Header (used                                                                                                                       ┃
┃                    ┃ on the http.Request and http.Response, respectively), while only enforcing                                                                                                                       ┃
┃                    ┃ limits on the size of the (QPACK-compressed) HEADERS frame, but not on the                                                                                                                       ┃
┃                    ┃ decoded header, leading to memory exhaustion. This issue is fixed in                                                                                                                             ┃
┃                    ┃ version 0.57.0.                                                                                                                                                                                  ┃
┣━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ OSS Index ID       ┃ CVE-2025-64702                                                                                                                                                                                   ┃
┣━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ CVSS Score         ┃ 5.3/10 (Medium)                                                                                                                                                                                  ┃
┣━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ CVSS Vector        ┃ CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L                                                                                                                                                     ┃
┣━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Link for more info ┃ https://ossindex.sonatype.org/vulnerability/CVE-2025-64702?component-type=golang&component-name=github.com%2Fquic-go%2Fquic-go&utm_source=nancy-client&utm_medium=integration&utm_content=1.0.33 ┃
┗━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

CHANGELOG:

go: Bump go-libp2p to v0.46.0

In total, 4 pull requests were merged in December.