Repository navigation
Description
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
[-]Bug: Stack Wallet rejects signed certificates for Bitcoin electrum nodes[/-][+]Bug: Stack Wallet rejects self-signed certificates for Bitcoin electrum nodes[/+]feat: accept a SecurityContext for TLS connections
feat: accept a SecurityContext for TLS connections