Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Note

This code relates to version 1.x of QRL, the world's first open-source PQ blockchain, which has been securing digital assets since December 2016. The next generation of QRL, version 2.0, is in development and has its own repositories. See this discussion page.

Release Build Codacy Badge MIT licensed

qrl-wallet | wallet.theqrl.org

This is the QRL wallet application developed by The QRL team, and hosted on wallet.theqrl.org

It provides both web and desktop interfaces using Meteor, Tailwind CSS, daisyUI, NodeJS and Electron.

All secure XMSS operations are run in a web assembly compiled version of qrllib locally in your browser or desktop application. Keys stay in the memory space of the XMSS object, which is destroyed the moment you close the wallet, browser window or desktop application.

Development Dependencies

The following dependencies are required for a functional local development environment.

NodeJS v22 — we recommend nvm, which will pick up the version in .nvmrc. That file is the authoritative version for both local development and CI.

Meteor 3.4 — install per the official instructions (npm install -g meteor). The project pins its release in .meteor/release, and the tool springboards to that version automatically.

node-gyp

npm install -g node-gyp

node-gyp issues can generally be solved with updating npm (npm i -g npm) and rebuilding modules (npm rebuild)

Linux only: libusb-dev, libudev-dev and libarchive-tools

sudo apt-get install libusb-dev libudev-dev libarchive-tools

Windows only: Build Tools for Visual Studio (the "Desktop development with C++" workload), required to compile the native USB/HID modules.

Everything else — including @theqrl/electrify-qrl for the desktop build and electron-builder for the installers — is a local dependency installed by npm install. No global installs are needed beyond the above.

Install qrl-wallet

git clone https://github.com/theQRL/qrl-wallet.git
cd qrl-wallet
npm install

Run QRL Wallet (web wallet)

meteor

A locally running wallet will be available at http://localhost:3000

The compiled Tailwind stylesheet (public/tailwind-output.css) is committed, so meteor alone gives a fully styled wallet. If you are editing styles or Tailwind classes, use the dev script instead — it rebuilds the stylesheet on change alongside Meteor:

npm run dev

To rebuild the stylesheet once, without watching:

npm run build:css

Lint

npm run releaseready

This runs meteor lint and is the check to run before opening a pull request.

Tests

There is currently no working automated test suite: npm test is a placeholder, and the legacy browser tests under tests/ have no runner wired up. Changes should be verified by hand until a runner is reinstated.

Run QRL Wallet (desktop client)

npm run electron

Package Electron Client

Ensure a node binary for the platform being built for is present in .electrify/bin. To copy the one currently on your PATH:

npm run acquire:node

The wallet holds no server-side database, so no mongo binaries are required.

  1. Clean only the target platform output in .electrify/.dist

MacOS, Linux and Windows

npm run cleanDist

For explicit platform cleanup:

npm run cleanDist:darwin
npm run cleanDist:linux
npm run cleanDist:win32
  1. Package Electron App

MacOS, Linux and Windows

npm run releaseready
npm run build

For explicit platform packaging:

npm run build:darwin
npm run build:linux
npm run build:win32

Build Installer

npm run installer

Installers are produced by electron-builder: a .dmg on macOS, .deb and .pacman packages on Linux, and an NSIS .exe on Windows. Output is written alongside the packaged app in .electrify/.dist.

For explicit platform installers:

npm run installer:darwin
npm run installer:linux
npm run installer:win32

Releases

Official desktop artifacts are built and published by the release-build workflow, which runs on a v* tag across a six-platform matrix.

If you have issues, the QRL Discord is a good place to ask for help.