Skip to content

Bug: Stack Wallet rejects self-signed certificates for Bitcoin electrum nodes #1462

Open

Description

@MoneroArbo

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

As of the latest update, Stack wallet has stopped connecting to my personal electrum (fulcrum) node. Other wallet softwares connect fine. I believe the issue may be related to self signed certs being rejected entirely when previously they were silently accepted.

A brief look doesn't show to me any PRs that are responsible and I do see we have this other issue open about showing the cert fingerprint like happens for Monero nodes, but at the same time the only error in my logs related to this is the following:

WARNING TimeoutException after 0:00:05.000000: Future not completed
WARNING #0   Future.timeout.<anonymous closure> (dart:async/future_impl.dart:1042)
WARNING #1   <asynchronous suspension>
WARNING #2   ElectrumXInterface._initializeServerVersionAndCheckGenesisHash (package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart:2251)
WARNING #3   <asynchronous suspension>
WARNING #4   ElectrumXInterface.fetchChainHeight (package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart:1223)
WARNING #5   <asynchronous suspension>
WARNING #6   ElectrumXInterface.updateChainHeight (package:stackwallet/wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart:1632)
WARNING #7   <asynchronous suspension>
WARNING 2026-10-03T12:43:19.101937Z BitcoinWallet<PaynymCurrencyInterface> _initializeServerVersionAndCheckGenesisHash() did not complete: 
  ERROR HandshakeException: Handshake error in client (OS Error: 
  ERROR 	CERTIFICATE_VERIFY_FAILED: self signed certificate(handshake.cc:298))
  ERROR #0   _SecureFilterImpl._handshake (dart:io-patch/secure_socket_patch.dart:101)
  ERROR #1   _SecureFilterImpl.handshake (dart:io-patch/secure_socket_patch.dart:146)
  ERROR #2   _RawSecureSocket._secureHandshake (dart:io/secure_socket.dart:995)
  ERROR #3   _RawSecureSocket._tryFilter (dart:io/secure_socket.dart:1127)
  ERROR #4   <asynchronous suspension>
  ERROR 2026-10-03T12:43:22.332408Z Caught exception in refreshWalletData()

Expected Behavior

Connects to electrum nodes with self-signed certs, preferably with cert pinning.

Reproduce Steps

Generate a self signed cert for an electrum node and try connecting to it from stack wallet.

Environment

  • Operating system and version: Android 16, Stack Wallet 2.7.3
  • Real device or emulator/simulator: real device

Logs

https://gist.github.com/MoneroArbo/a4e1ea887a2a457ce9171fdedce013af

Further Information

There's also this issue but I think it's unrelated as it predates my issue.

I also verified that the certificate is not expired. Other wallets tested were Cake, Sparrow, and Electrum.

Activity

  1. changed the title [-]Bug: Stack Wallet rejects signed certificates for Bitcoin electrum nodes[/-] [+]Bug: Stack Wallet rejects self-signed certificates for Bitcoin electrum nodes[/+] on Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions