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
https://raw.githubusercontent.com/brumewallet/wallet/main/altstore.json
npm run build:vercel
as build command and out
as build outputwebsite.zip
in a new foldernpx serve
chrome.zip
in a new folderExtensions
Developer mode
Load unpacked
, select the folder where chrome.zip
was extractedfirefox.zip
in a new folderabout:debugging
This Firefox
Temporary Extensions
, click Load Temporary Add-on
firefox.zip
was extractedmanifest.json
fileInstall node v20.3.1 (npm v9.6.7)
Clone the repository
git clone https://github.com/brumewallet/wallet && cd wallet
npm install && npm run build && npm run zip
dist
folderGitHub 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"
Your storage is hashed and encrypted using strong cryptography algorithms and parameters
Some critical entities like private keys and seed phrases are stored in WebAuthn and require authentication (FaceID/TouchID)
Nobody can access your private keys or seed phrases without your password + authentication (FaceID/TouchID)
This mitigates supply-chain attacks and phishing attacks, and prevents phone-left-on-the-table attacks
We try our best to avoid supply-chain attacks from external packages
We use the Tor and the TLS protocols in a way that's mostly safe, even though they are not fully implemented nor audited
Keep in mind that the zero risk doesn't exist, and a highly motivated attacker could deanonymize you by doing the following steps (very unlikely to happen):
Owning the entry node, and logging all IP addresses using Brume Wallet, something he could know by:
Owning the JSON-RPC server, and logging all wallet addresses that used Tor
Correlating IP addresses logs with wallet addresses logs, and if both sides are small enough, linking a particular IP address to a particular wallet address