The private Ethereum wallet with built-in Tor
You can use Brume Wallet on a website, as a browser extension, and as a mobile application
- Copy the link to the AltStore source
https://raw.githubusercontent.com/brumewallet/wallet/main/altstore.json
- Clone the repository on your GitHub account
- Host it on a cloud provider with
npm run build:vercel
as build command andout
as build output
- Download .zip
- Extract
website.zip
in a new folder - Serve using
npx serve
- Download .zip
- Extract
chrome.zip
in a new folder - Open Chrome, open settings, left panel, bottom, click
Extensions
- Top bar, right, enable
Developer mode
- Click
Load unpacked
, select the folder wherechrome.zip
was extracted
- Download .zip
- Extract
firefox.zip
in a new folder - Open Firefox, navigate to
about:debugging
- Left panel, click
This Firefox
Temporary Extensions
, clickLoad Temporary Add-on
- Navigate to the Brume Wallet folder
- Open the folder where
firefox.zip
was extracted - Select the
manifest.json
file
-
Install node v20.3.1 (npm v9.6.7)
-
Clone the repository
git clone https://github.com/brumewallet/wallet && cd wallet
- Build the website and extension
npm install && npm run build && npm run zip
- Website and extension files are in the
dist
folder
GitHub Actions automatically rebuilds each release and checks that the committed files are the same as the built ones
https://github.com/brumewallet/wallet/actions/workflows/release.yml
You can check the comparison yourself by running the following
# Create ./tmp
mkdir ./tmp
# Unzip committed zip files into ./tmp
unzip ./dist/chrome.zip -d ./tmp/chrome
unzip ./dist/firefox.zip -d ./tmp/firefox
unzip ./dist/website.zip -d ./tmp/website
# Rebuild
npm ci && npm run build
# Compare unzipped content
diff -r ./tmp/chrome ./dist/chrome
diff -r ./tmp/firefox ./dist/firefox
diff -r ./tmp/website ./dist/website
# Delete ./tmp
rm -rf ./tmp
# Restore build files
git restore ./dist/
# Recompute IPFS hashes
node ./scripts/verify.ipfs.mjs
# Display IPFS hashes
cat ./dist/.ipfs.md
cat ./dist/.website.ipfs.md
# Compare all files
[[ -z $(git status --porcelain) ]] && echo "OK" || echo "NOT OK"