Releases: BlockBreakers/BlockWallet
Release list
Block Wallet v0.3.0
Monero joins Bitcoin, Ethereum, Solana and Litecoin as a fifth chain, derived from the same recovery phrase.
Monero
- Send and receive XMR. The wallet downloads blocks and scans them on the device with the private view key, so the node you use learns nothing about your account from a sync. Standard address only; subaddresses are not offered.
- Keys from your existing phrase, using the Ledger Monero app's derivation (secp256k1
m/44'/128'/0'/0/0, keccak256, reduced). Pinned by a test vector so it cannot drift between releases. Reveal an account in Wallets to get the spend and view keys for any other Monero wallet's "restore from keys"; import a 64-character spend key to bring one in. - Where the scan starts. A wallet created here scans from its own creation. A restored phrase or imported key scans the last thirty days unless you set Settings → Monero → Restore height. Progress shows on the balance as a percentage and is saved every twenty blocks, so a killed app resumes rather than restarts.
- Ten-block lock honoured.
0.5 XMR (+0.1 pending)means 0.1 XMR has arrived and is not yet spendable. Sends pick the largest unlocked outputs, take fifteen decoys per input, cap the node's fee rate, and mark their inputs spent the moment they are broadcast. - Stagenet is the Monero test network behind the existing Use test networks switch. No public stagenet node offers TLS, so the built-in stagenet defaults are the one plaintext exception this wallet ships; a node you enter yourself must still be
https://. - Not in swaps: no venue this wallet uses has an XMR pool.
Everything cryptographic (output recognition, CLSAG, Bulletproofs+) is monero-oxide's monero-wallet crate; the node transport, encrypted scan cache, coin selection and every safety check are this project's. All nineteen new crates are pure Rust.
Also in this release
- Sync loops are no longer duplicated each time Settings is left. This affected every chain; for Monero it would have meant two scanners sharing one cache file.
What has been verified
Against live public nodes, from a desktop: syncing to the tip on mainnet and stagenet; recognising a real stagenet faucet payment and holding it locked for ten blocks; then spending it. That 0.01 XMR stagenet transaction (226d2fe81320b566cae73faae8449cf50a0a271395b52fa1ec3852580ec0b2e0, one input, fee 0.00003 XMR) was built, signed and broadcast by this code, mined in block 2208289, seen by the recipient account, and netted correctly by the sender with its change. Nothing has moved on mainnet, and this release has not been run on a Librem 5. The device checklist, now with Monero boxes, is owed for this version; the last full pass was v0.1.0.
Install
Verify before installing. This is a wallet.
sha256sum --check --ignore-missing SHA256SUMS
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./BlockWallet-v0.3.0-aarch64.flatpak # Librem 5; x86_64 for a desktop
flatpak run io.github.BlockBreakersHQ.BlockWalletYour wallet lives outside the app and survives the upgrade. A store written by an earlier version gets its Monero account on first unlock; that account scans the last thirty days unless you set a restore height, since the phrase may be older than Monero support.
The block_wallet-pureos-* binaries are for the PureOS Store manifest (data/io.github.BlockBreakersHQ.BlockWallet.PureOS.json), built inside sm.puri.Sdk 44; most people want the .flatpak bundle.
v0.2.2
A maintenance release. The swap fee is still 1% everywhere it was already disclosed; only
which venues actually charge it, and one payout address, changed. No UI changes, so this was
spot-checked rather than run against the full Librem 5 checklist.
What changed since 0.2.0
- LI.FI now charges the same 1% wallet fee KyberSwap already did. This build is registered
with LI.FI as an integrator; previously it quoted with no fee at all rather than risk every
EVM quote being rejected by an unregistered name. - Fixed a bug that would have broken every Solana swap the moment a fee was enabled.
Jupiter requires a fee account whenever a fee is requested, and the app was never sending
one. The fee itself is still not enabled on Solana pending a fee token account. - Updated the swap-fee payout address for Ethereum and its L2s.
Two bundles, same as before
Both built offline from the tagged commit, with every cargo dependency vendored: aarch64
for the Librem 5, x86_64 for a desktop.
sha256sum --check --ignore-missing SHA256SUMS
flatpak remote-add --if-not-exists --user flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./BlockWallet-v0.2.2-aarch64.flatpak
flatpak run io.github.BlockBreakersHQ.BlockWalletFull install and update instructions:
README.
Also attached: PureOS Store submission binaries
block_wallet-pureos-aarch64 and block_wallet-pureos-x86_64 are not for hand-installing;
they are what data/io.github.BlockBreakersHQ.BlockWallet.PureOS.json downloads for a PureOS
Store submission. sm.puri.Sdk 44's own Rust (1.69) is far below what this crate needs
(1.91), so these were built inside that same sandbox using a newer Rust toolchain instead,
against sm.puri.Platform 44's actual GTK 4.10.1 / libadwaita 1.3.1 / glibc 2.35. Reproduce
with scripts/pureos-binary-build.sh.
Block Wallet v0.2.0
Self-custody Bitcoin, Ethereum, Solana and Litecoin wallet for the
Librem 5 (PureOS / Phosh) and other GTK4 Linux desktops.
Two bundles are attached: aarch64 for the Librem 5, x86_64 for a desktop. Both were
built offline from the tagged commit, with every cargo dependency vendored.
Install
Verify the download before installing it. This is a wallet.
sha256sum --check --ignore-missing SHA256SUMSThen add the runtime remote, which is harmless if you already have it, and install:
flatpak remote-add --if-not-exists --user flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user ./BlockWallet-v0.2.0-aarch64.flatpak
flatpak run io.github.BlockBreakersHQ.BlockWalletThe app then appears in the Phosh app grid, or your desktop's launcher, like any other app. The
first install also pulls the GNOME 50 runtime, which is a few hundred MB. Updating and
uninstalling are covered in the
README.
What is new since 0.1.0
- Around 315 bundled tokens, up from 33: roughly 275 ERC-20s across the seven supported EVM
networks, and the top 40 Solana tokens. Every contract and mint was verified on-chain before
inclusion. - Two more swap venues. KyberSwap alongside LI.FI for same-chain swaps, and Maya Protocol
alongside THORChain for cross-chain. Venues are compared side by side, and the ones that
decline say why. - Balances are read in a single batched call per chain, so syncing costs the same with 300
tokens as with 4 and no longer risks rate-limiting a public node. - The swap screen picks tokens through a searchable list rather than a long dropdown.
- Empty assets can be hidden, and the home screen narrows to what you hold once you hold
something. A balance that is still syncing, or that could not be fetched, is never treated as
empty. - Polygon's native token is now correctly shown as POL rather than MATIC.
- Failed requests report one readable line instead of a raw transport dump.
Before you use this with real funds
Swaps carry a 1% wallet fee. It is taken by the exchange itself rather than as a separate
transaction, and it is shown as a single Swap fee line on every offer and again on the review
screen before anything can be confirmed.
There is no update channel. This is a hand-installed bundle, not a Flathub app, so nothing
will tell you when a newer version exists. Watch the repository if you want to know.
The hardware checklist was last run end to end against 0.1.0, where all 41 boxes passed on a
Librem 5 running PureOS 11 (Crimson). 0.2.0 has been spot-checked on the same device rather than
re-run in full.
Cross-chain swaps have never moved real coins. Quoting works and is exercised against live
venues, but the settlement path is proven only against captured responses. Treat it as untested
and start small.