Files
pallectrum/CHANGELOG.md
davide3011 9c3d9e0755 Release v1.1.0
Bump version to 1.1.0 across version.py, README, manifest.json and
CHANGELOG. Update user guide with troubleshooting section covering the
SSL certificate reset workflow
2026-02-19 10:32:41 +01:00

23 KiB

Changelog

All notable changes to Pallectrum will be documented in this file.

Pallectrum is a lightweight wallet client for the Palladium blockchain. It is based on Electrum Bitcoin Wallet, adapted to support Palladium's network and consensus rules. Palladium is a Bitcoin fork with custom parameters and features.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


[Unreleased]

Added

  • Placeholder for future changes

[1.1.0] - 2026-02-19

Overview

This release adds ARM64/aarch64 platform support, native Palladium URI scheme integration, a unified network reset feature for both desktop and Android interfaces, and several bug fixes and documentation improvements.

Added

  • ARM64/aarch64 support: AppImage builds now include a dedicated ARM64 variant for Linux on aarch64 hardware.
  • ARM64 QML support: Android/QML interface now works on ARM64 devices with pinned PyQt6 dependencies (PyQt6>=6.7.0,<6.8.0) to ensure compatibility where PyQt6 ≥ 6.9 is unavailable.
  • Palladium URI scheme: Donation flow and payment handling now use the palladium: URI scheme instead of bitcoin:.
  • Reset SSL certificates: New action in both Qt (Server tab) and QML (Server Settings) to delete locally cached TLS certificates and force re-fetch on reconnect. Useful when a server renews its self-signed certificate.
  • Reset known servers: New action alongside SSL reset to clear the list of recently used servers, available in both Qt and QML interfaces.
  • Troubleshooting section in user guide: Added documentation explaining SSL certificate caching, why self-signed certificates require manual reset, and step-by-step instructions for both Android and desktop.

Fixed

  • WIF deserialization bug: Fixed incorrect private key deserialization for Palladium network parameters.
  • Docker build warning: Resolved undefined TARGETARCH variable warning in multi-platform Docker builds.
  • Whitepaper link: Updated Help → White Paper URL to the correct repository (palladium-coin/whitepaper).
  • Browser opening on Linux: webopen() now uses xdg-open instead of Python's webbrowser module, preventing text-based browsers (e.g. w3m) from being selected instead of the desktop browser.

Changed

  • README: Updated "Running from Source" section with clear numbered steps, separate x86_64 and ARM64 dependency instructions, and improved QML optional section.

[1.0.1] - 2026-01-10

Changed

  • Rebrand icons: Updated all application icons with new Pallectrum logo.

[1.0.0] - 2025-12-10

Overview

First Stable Release! This milestone release marks Pallectrum as production-ready for the Palladium blockchain. After extensive testing and refinement through beta versions (0.9.x), Pallectrum 1.0.0 provides a stable, user-friendly wallet experience with complete rebranding, improved UI/UX, and high-quality visual assets.

Highlights

  • Complete rebranding from Electrum to Pallectrum across all interfaces
  • Improved UI/UX for both desktop and mobile platforms
  • High-quality icon set refresh with better visual consistency
  • Robust build system for Windows, Linux, and Android
  • Production-ready stability and performance

Fixed

UI Improvements

1. Fix(QML): Resolve text overlap in transaction input display

  • Issue: Transaction input information (short_id and value) overlapped on small screens or with long identifiers in Android QML interface
  • Solution: Split transaction input display into two separate rows
    • First row: displays input index (#) and short_id with text eliding (Text.ElideRight)
    • Second row: displays value amount and unit with left margin indent
  • Impact: All transaction input information remains visible and readable without UI elements overlapping, especially important for coinbase inputs and transactions with long identifiers

2. Fix: Update seed dialog window title from Electrum to Pallectrum

  • Changed window title from "Electrum - Seed" to "Pallectrum - Seed" in Wallet > Seed dialog
  • Completes branding consistency across desktop Qt interface

Branding & References

3. Fix(constants): Update bug report references to Pallectrum

  • Changed bug report URLs from spesmilo/electrum to palladium-coin/pallectrum
  • Updated "Electrum" to "Pallectrum" in Help > Report Bug dialog text
  • Ensures users report issues to the correct repository

Build System

4. Fix(build): Update shortcuts to reference Pallectrum executable

  • Fixed Windows desktop and start-menu shortcuts to use correct executable path
  • Updated Windows registry entries for proper application launching
  • Ensures shortcuts work correctly after installation

Changed

Visual Assets Refresh

5. Complete icon set rebuild with improved quality

  • Rebuilt all icon resolutions from 1024px master source for optimal clarity
  • Improved scaling quality using NoAura/LoHalo interpolation algorithms
  • Enhanced Windows .ico file quality with better anti-aliasing
  • Cleaned duplicate assets and aligned icon files across all platforms
  • Result: Better visual quality on all screen resolutions (desktop, mobile, high-DPI displays)

Download

Release binaries available at: https://github.com/palladium-coin/pallectrum/releases/tag/v1.0.0

  • Windows Portable: pallectrum-1.0.0-portable.exe (recommended for USB drives)
  • Windows Installer: pallectrum-1.0.0-setup.exe (standard installation)
  • Linux AppImage: pallectrum-1.0.0-x86_64.AppImage (all distributions)
  • Android APK: pallectrum-1.0.0.apk

Checksums

SHA256 checksums will be provided in the release notes.


[0.9.1] - 2025-12-09

Overview

This release fixes critical build system issues for Linux AppImage reproducibility. Linux builds are new to Pallectrum and were not available in previous versions.

Fixed

1. Fix: Type2-runtime path resolution for reproducible AppImage builds

Issue resolved: Building with ELECBUILD_COMMIT failed with "Unable to load provided runtime file" errors.

Root Cause:

  • Reproducible builds create a fresh git clone for deterministic output
  • Type2-runtime binary built in original project directory was inaccessible to fresh clone
  • Runtime cache location changed between contexts

Implemented changes:

a) Runtime cache persistence (contrib/build-linux/appimage/make_type2_runtime.sh)

  • Changed cache to fixed $PROJECT_ROOT location (persists across fresh clones)
  • Added validation: file exists AND non-zero size
  • Automatic cleanup and rebuild if runtime is corrupted

b) Runtime transfer for fresh clones (contrib/build-linux/appimage/build.sh)

  • Copies pre-built runtime from original project to fresh clone when ELECBUILD_COMMIT is set
  • Creates directory structure and includes error handling

Modified files:

  • contrib/build-linux/appimage/build.sh (+9 lines)
  • contrib/build-linux/appimage/make_type2_runtime.sh (+35, -5 lines)

Impact:

  • Reproducible builds now work without runtime errors
  • Better resilience to cache corruption
  • Faster builds through runtime reuse (~5-10 minutes saved)

2. Fix: AppImage filename version handling for deterministic builds

Issue resolved: Filenames were non-deterministic, making it difficult to distinguish official releases from development builds.

Root Cause:

  • Version determined too early (before Python installation)
  • Used git describe which varies by repository state

Implemented changes (contrib/build-linux/appimage/make_appimage.sh):

  • Moved version detection to after environment setup
  • Changed from git describe to print_electrum_version.py (reads electrum/version.py)
  • Conditional filename generation:
    • Reproducible/clean: pallectrum-v0.9.1-x86_64.AppImage
    • Development: pallectrum-v0.9.1-<count>-g<hash>-dirty-x86_64.AppImage

Modified files:

  • contrib/build-linux/appimage/make_appimage.sh (+16, -3 lines)

Impact:

  • Deterministic filenames for reproducible builds
  • Development builds clearly marked as non-official
  • Better traceability for debugging

Technical Details

  • Docker-based reproducible builds with fresh clone isolation
  • Runtime cached after first build (saves 5-10 minutes on subsequent builds)
  • Total changes: 3 files, 63 insertions, 8 deletions

Testing

  • Reproducible build with ELECBUILD_COMMIT=HEAD works without errors
  • Development builds produce -dirty filename
  • Runtime caching works across multiple builds
  • AppImage executes correctly on Ubuntu 20.04+

Upgrade Notes

For end users: No action required. This is a build system fix only.

For maintainers: Reproducible builds with ELECBUILD_COMMIT now work reliably.


[0.9.0] - 2025-12-07

Overview

This release introduces critical bug fixes for the Android QML app and updates to terminology and documentation to reflect Pallectrum instead of Electrum.

Critical Bug Fixes (Android QML)

1. Fix: Real-time balance updates

Issue resolved: The Android app balance was not updating in real-time when transactions received confirmations or when coinbase rewards became mature (120 blocks). Users had to close and restart the app to see the correct balance.

Root Cause:

  • Missing balanceChanged signal emission when a transaction changed height (received blockchain confirmations)
  • Missing handler for blockchain_updated event that notifies new blocks and coinbase maturation

Implemented changes:

a) Fix for transaction confirmations

  • File: electrum/gui/qml/qewallet.py:211
  • Added self.balanceChanged.emit() in on_event_adb_tx_height_changed

b) Fix for coinbase maturity

  • File: electrum/gui/qml/qewallet.py:245-250
  • Added new handler on_event_blockchain_updated()
  • Emits balanceChanged when new blocks arrive

c) Debug logging

  • File: electrum/gui/qml/components/controls/BalanceSummary.qml:178
  • Added console.log to track balance updates

Impact:

  • Balance updates automatically when transactions receive confirmations
  • Mining rewards (coinbase) appear automatically after 120 confirmations
  • No longer necessary to restart the app to see correct balance
  • Better user experience for miners

2. Fix: Typo correction in BalanceDetails.qml

Issue resolved: "Lightning swap" button was causing QML runtime errors.

Root Cause: Typo in QEAmount property - used .satInt instead of .satsInt

Modified file: electrum/gui/qml/components/BalanceDetails.qml:217

Terminology and Documentation Updates

3. Payment request text updates

  • Replaced "Bitcoin/Electrum" references with "Palladium/Pallectrum"
  • File: ReceiveTab - Request expiration section
  • Changes:
    • "bitcoin addresses" → "Palladium addresses"
    • "electrum wallets" → "Pallectrum wallet"
    • "Bitcoin address" → "Palladium address"

4. Preferences → Units update

  • Thousands separator checkbox: "bitcoin" → "Palladium"
  • Links now point to Pallectrum GitHub repository instead of electrum.org
  • "Bitcoin whitepaper" references updated to reflect Palladium
  • Links to project documentation on GitHub

7. Windows builds documentation

  • Added README.md with description of two Windows versions:
    • pallectrum-x.x.x-portable.exe - Recommended for USB drives
    • pallectrum-x.x.x-setup.exe - Standalone installer

8. Help menu cleanup

  • Removed "Check for updates" menu item that referenced Electrum update servers
  • File: electrum/gui/qt/main_window.py (lines 844, 897-898)
  • Reason: Update checker pointed to https://electrum.org/version which is not appropriate for Pallectrum

Technical Details

Balance update architecture:

  • Pattern: Event-driven reactive updates
  • Thread-safe via @qt_event_listener decorator
  • Zero overhead (signal emission is O(1))
  • No polling - completely event-driven

Performance:

  • CPU: O(1) per signal emit
  • Memory: No increase
  • Battery: No impact (rare events, ~1 every 10 minutes)
  • Network: No additional traffic

Event frequency:

  • adb_tx_height_changed: Only when wallet TX receives confirmations
  • blockchain_updated: ~1 time every 10 minutes (new block)

Upgrade

For existing users:

  • No data migration required
  • Existing wallets 100% compatible
  • No reconfiguration needed

What will change:

  • Balance updates automatically (no more restarts)
  • Terminology updated to Palladium/Pallectrum

Testing

Tests performed:

  • New TX received → Balance updated
  • TX receives confirmations → Balance from unconfirmed to confirmed
  • Coinbase matures (120 confirmations) → Reward appears automatically
  • Lightning swap button → Works correctly
  • No redundant updates

[0.2.0] - 2025-12-04

Technical Cleanup and Optimization

  • Complete removal of Bitcoin chain infrastructure
    • Removed Bitcoin testnet4, signet, mutinynet, and simnet network definitions
    • Deleted chains/mainnet/ directory (servers, checkpoints, fallback nodes)
    • Removed Bitcoin-specific trampoline Lightning nodes configuration
    • Removed Bitcoin-specific block explorers (testnet4, signet)
    • Cleaned up Ledger hardware wallet plugin (removed signet chain mapping)
    • Updated crash reporter whitelist (removed testnet4, signet genesis hashes)
  • Test suite cleanup
    • Updated all test files to use Palladium as default network instead of BitcoinMainnet
    • Modified 5 test files (tests/init.py, test_blockchain.py, test_bitcoin.py, test_psbt.py, test_network.py)
    • Removed BitcoinMainnet references from test loops and teardown methods
  • Code optimization
    • Removed superfluous modules, functions, and files inherited from Electrum
    • Minor code fixes and optimizations throughout the codebase
    • Light refactoring to simplify and streamline the codebase

Changed - UI/UX Improvements

  • Visual assets update
    • Updated wallet images, icons, and graphical resources
    • Improved overall visual consistency and branding
  • User interface enhancements
    • Improved layout, text clarity, and UI element positioning
    • Better visual hierarchy and component spacing
    • Enhanced user experience across all platforms

Added - Documentation and Testnet Support

  • User documentation
    • Added comprehensive user guide: user-guide.md
    • Improved in-app help and documentation
  • Official testnet integration
    • Configured Palladium testnet parameters (ports, magic bytes, genesis hash)
    • Added dedicated Electrum testnet server
    • Testnet infrastructure ready for development and testing

Development Notes

  • Continued development support by Claude 4.5 Sonnet (Anthropic AI)
  • Focus on code quality, maintainability, and user experience

[0.1.0] - 2025-11-24

Initial Fork Release

This is the initial fork of Electrum for the Palladium blockchain project.

Fork Information:

Added

Palladium Blockchain Integration

  • Palladium network parameters
    • Genesis block configuration
    • Network magic bytes
    • Default network ports (mainnet: 2333, testnet: 12333)
    • Block time: 2 minutes (120 seconds)
    • BIP44 coin type: 746
  • Palladium address format support
    • Bech32 address format (default)
    • Address validation for Palladium network
    • P2PKH, P2WPKH, P2SH-P2WPKH address types
  • Palladium Electrum server infrastructure
    • Default server list for Palladium network:
      • 173.212.224.67:50002 (SSL) / 50001 (TCP)
      • 144.91.120.225:50002 (SSL) / 50001 (TCP)
      • 66.94.115.80:50002 (SSL) / 50001 (TCP)
      • 89.117.149.130:50002 (SSL) / 50001 (TCP)
    • Server discovery protocol adaptation
    • SSL/TCP protocol support (version 1.4.2)
  • Consensus algorithm integration
    • LWMA (Lightweight Moving Average) difficulty adjustment from block 29000
    • Checkpoint-based validation system (161 checkpoints covering blocks 0-324,575)
    • Block reward schedule for Palladium
    • Coinbase maturity: 120 blocks

BIP Standards Implementation

  • BIP21 URI scheme: palladium: (instead of bitcoin:)
    • Payment URI parsing and generation
    • QR code integration with palladium scheme
    • Amount and message parameter support
  • BIP44 derivation path: m/44'/746'/0' (Palladium coin type)
  • Default address type: Bech32 (p2wpkh) for WIF imports

User Interface & Branding

  • Complete rebranding from Electrum to Pallectrum
    • Application name and window titles
    • Tray icon and notifications
    • About dialog and version information (0.1.0)
    • Documentation and help texts
    • Terms of Use dialog
  • Currency unit changes
    • Base units: PLM, mPLM, bits, sat (instead of BTC, mBTC)
    • Default unit: mPLM (5 decimal places)
    • All GUI labels and input validators updated
    • Chart and graph labels (BTC → PLM)
    • Amount formatting and display
  • Block explorer integration
  • Network name display
    • Shows "Palladium Mainnet" / "Palladium Testnet"
    • Updated in all GUI components (Qt, QML, text)

Build System

  • Docker-based reproducible builds
    • Windows (Wine): Updated for Pallectrum branding
    • Linux AppImage: Updated for Pallectrum branding
    • Android APK: Updated for Pallectrum branding
    • All build paths changed from electrum to pallectrum
    • Docker image names updated (e.g., pallectrum-wine-builder-img)
  • Binary naming
    • Windows: pallectrum-VERSION-setup.exe
    • Linux: pallectrum-VERSION-x86_64.AppImage
    • Android: pallectrum-VERSION.apk
  • Code signing
    • NSIS installer signed as "Pallectrum"
    • Certificate setup for Windows binaries

Documentation

  • README.md: Complete rewrite for Pallectrum
    • Getting Started guide
    • Installation instructions
    • Building from source
    • Palladium-specific features documentation
    • Credits to original Electrum project
  • README-ELECTRUM.md: Original Electrum v4.6.2 documentation preserved
  • AUTHORS: Added Davide Grilli as Pallectrum maintainer
  • CHANGELOG.md: This file, tracking all fork changes

Changed

Core Functionality

  • Network connection logic adapted for Palladium blockchain
  • Transaction validation rules for Palladium consensus
  • Fee estimation adapted to Palladium network conditions
  • Wallet data directory:
    • Windows: C:\Users\<username>\AppData\Roaming\Pallectrum
    • Linux/macOS: ~/.pallectrum
    • Android: <internal storage>/Pallectrum

GUI Updates

  • Android (QML) GUI
    • Fixed all hardcoded "BTC" and "Bitcoin" references
    • Updated wallet wizard and preferences
    • Fixed QR code scanning (removed hardcoded BTC unit)
    • Updated derivation paths (coin type 0 → 746)
    • Network connection dialogs show Palladium
  • Qt (Desktop) GUI
    • Application name in all dialogs
    • Notification messages
    • Export/import dialogs
    • Hardware wallet integration screens
    • Settings and preferences panels
  • Text GUI
    • Command-line help text
    • Daemon mode messages
    • Error messages and prompts

Build Configuration

  • setup.py: Package name, description, author updated
  • buildozer_qml.spec: Android package domain org.palladium.pallectrum
  • electrum.desktop: Linux desktop entry for Pallectrum
  • electrum.nsi: Windows installer for Pallectrum
  • All contrib build scripts: Updated paths and names

Fixed

Critical Fixes

  • Android QML GUI crashes
    • Fixed QR code scanning crash (hardcoded "BTC" reference)
    • Fixed wallet creation with incorrect derivation paths
    • Fixed BIP21 URI parsing for palladium scheme
  • Address generation
    • WIF import now defaults to bech32 (p2wpkh)
    • Correct derivation paths for Palladium (BIP44 coin type 746)
  • Checkpoint validation
    • LWMA difficulty algorithm incompatibility resolved
    • Checkpoint-based validation ensures chain security
    • Skips PoW validation for checkpointed blocks

UI/UX Fixes

  • Balance display: Correct formatting with PLM units
  • Amount input: Regex validators accept PLM notation
  • QR codes: Generate correct palladium: URIs
  • Network status: Shows "Palladium" instead of "Bitcoin"
  • Update check: Disabled automatic update prompts on startup
  • Terms of Use wizard: Fixed presplash image layout with proper sizing and edge-to-edge display
  • Watch-only wallet warning: Replaced "Bitcoin" with "Palladium"

Security

  • Checkpoint-based validation provides security for blocks with LWMA difficulty
  • 161 checkpoints covering blocks 0 through 324,575
  • Will merge relevant security fixes from Electrum upstream as needed

Removed

  • Bitcoin-specific features incompatible with Palladium
  • References to bitcoin.org and electrum.org in user-facing text
  • Automatic update checking (to avoid confusion with Electrum updates)

Development Notes

  • Development supported by Claude 4.5 Sonnet (Anthropic AI) for code analysis, debugging, and documentation assistance

Upstream Synchronization

This fork is based on Electrum and may periodically merge upstream changes for:

  • Security fixes: Critical vulnerabilities will be merged immediately
  • Bug fixes: Important bug fixes affecting wallet functionality
  • Performance improvements: Optimizations that benefit Pallectrum users

Note: Breaking changes or Bitcoin-specific features from upstream will be evaluated case-by-case for compatibility with Palladium blockchain.

Upstream repository: https://github.com/spesmilo/electrum Upstream releases: https://github.com/spesmilo/electrum/releases

Upstream Merge History

Pallectrum Version Based on Electrum Upstream Commit Merge Date Notes
0.1.0 4.6.2 d15598b 2025-11-24 Initial fork

Contributing

Contributions to Pallectrum are welcome! For contributing guidelines, please refer to the main README.

For understanding upstream Electrum changes:




Last Updated: 2025-11-24 Maintained by: Davide Grilli