Skip to content

nicolocarcagni/Swallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOLE Wallet

SOLE Wallet is a native, non-custodial desktop client for the SOLE cryptocurrency network. Built with Python 3, GTK4, and libadwaita, it adheres to modern GNOME human interface guidelines to provide a native Linux desktop experience.

The application allows users to generate and manage local wallets, view their balance and transaction history, and broadcast new transactions directly to the network without relying on third-party custodial services. Private keys are encrypted locally using AES-GCM and never leave the device.

Architecture

At its core, SOLE Wallet is a thin client that interfaces directly with a remote or local SOLE Go node via a REST API. It handles UTXO (Unspent Transaction Output) management and cryptographic signing natively in Python.

When a user initiates a transfer, the wallet queries the Go node for available UTXOs to cover the amount. It then constructs the transaction, substitutes the appropriate public key hashes for spending, and signs the payload locally via ECDSA (P-256). The fully serialized, byte-perfect transaction is then converted to a hex string and broadcast to the node's /tx/send endpoint. The node reconstructs the transaction, verifies the signature against the consensus rules, and propagates it to the network.

Building and Installation

This project is packaged exclusively as a Flatpak and uses the Meson build system. Dependencies are managed strictly via an offline, reproducible manifest generated by flatpak-pip-generator.

To build the application from source, you will need flatpak, flatpak-builder, and the GNOME SDK installed on your system.

  1. Clone the repository
git clone https://github.com/nicolocarcagni/Swallet.git
cd Swallet
  1. Generate the Python dependencies If you modify requirements.txt, you must regenerate the Flatpak dependency manifest before building. Use the provided generator script:
python3 build-aux/flatpak-pip-generator.py -r requirements.txt --output python3-requirements
  1. Build and install via Flatpak Builder Compile the application and install it for the local user:
flatpak-builder --user --install --force-clean build-dir io.github.nicolocarcagni.Swallet.json

Alternatively, you can open the project in GNOME Builder and hit the "Run" button to compile and execute it within a sandboxed environment.

Running

If installed via the command line, you can launch the application by running:

flatpak run io.github.nicolocarcagni.Swallet

About

A modern, non-custodial desktop wallet for the SOLE cryptocurrency, built with Python, GTK4, and libadwaita.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors