Skip to content
Branch: master
Clone or download
Pull request Compare This branch is 38 commits ahead of area:master.
username1565 Add Ethereum
changed files:
	- index.html
	- brainwallet.js
	- electrum.js
	- armory.js
	- bitcoinsig.js
added files:
	- web3-eth-accounts.js

- Add ethereum (web3-eth-accounts.js + empty file
	-- Add Ethereum in dropdown menu.
	-- Hex -> to Ethereum privkey. Fix key length if this hex not contains 32 bytes.
	-- Privkey -> to Ethereum address
	-- Change size to 5 - for qrcode of ethereum private key.
	-- Fix addition slash in the link to block-explorers for qr-code with address.
	-- Armory and Electrum chains supporting Ethereum now. width for chain list changed to 1000px to display ethereum list fully.
	-- Sign and verify message on client-sied - supporting Ethereum now. Add notification for not supporting methods.
	-- Verify lowerCase address, like specified here: Switch ETH address to LowerCase automatically.
	-- Key_file - now can be available to download 32-byte keyfile, corresponding to Ethereum privkey.
	-- Add notification with link on MyEtherWallet in Transactions tab. Make all fields readonly when Ethereum selected.
	-- Add title tooltip when ethereum privkey entered, but ETH - not selected in dropdown menu.
	-- Add ethereum to test signature function. See commented code in bitcoinsig.js
	-- Add speed test code to test signing and verify messages (commented in bitcoinsig.js).
- Add regenerate address from privkey, on Transactions tab, when another coin selected in dropdown menu.
- Fix console.log error on transactions tab: Uncaught SyntaxError: Unexpected end of input, when unspent outputs not loaded.

- Add timeout for generate keys, using Armory and Electrum determininstic chains generators. Now list of chains filling slowly.

See source code.
Latest commit 19961e0 Nov 14, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
css Make signatures compatible with qt-wallets Oct 14, 2018
javascript-file-encrypter move this file Jun 12, 2018
js Add Ethereum Nov 14, 2018
LICENSE Updated license date Jan 1, 2015 Update Aug 6, 2018
index.html Add Ethereum Nov 14, 2018


JavaScript Client-Side Bitcoin Address Generator

Notable features

  • Online converter, including Base58 decoder and encoder
  • OpenSSL point conversion and compressed keys support
  • Armory and Electrum deterministic wallets implementation
  • RFC 1751 JavaScript implementation
  • Bitcoin transactions editor
  • Signing and verifying messages with bitcoin address
  • Litecoin support


index.html changes:

  • Add key-file tab for downloading 32 bytes key, which can be using as password to encryption and decryption.
  • This value is available in separate field "passphrase" and generating as:
  • this = SHA256(priv_hex) XOR sha256(hash_of_random_seed + current_addr);
  • downloading as text and as file. This function in beginning of brainwallet.js
  • Come back the tab "Important Security Update!"
  • Add XOR page to do XOR values.
  • Add new tab t-addr. Conversion between transparent-addr <-> bitcoin-addr.


  • Add multistring variable "var random_seed" to specify custom random-seed.
  • Dynamic text, for toggle buttons - added.
  • Generator update:
  • Add field "Coin parameters".
  • Add toogle-button for "passphrase".
  • Add "hash of random_seed" field.
  • Add XOR button to get generated private key, XORed by "hash of random_seed".
  • Now the same password with different random_seed - give different private keys.
  • Add "Secure Random button" for generating "secret exponent" (private key HEX).
  • Add button to switch type of address (Default address, SegWit and transparent t-addr).
  • Add toogle trigger when "private key" selected.
  • "Toogle key" button triggered to do show private key, when private key selected.

"Chains" update:

  • add "hash of random seed" and XOR button. Generated keys and specified keys can be xored to this.
  • add two strings in Paper Backup - to encode "Chain Code" and this is compatible with previous brainwallet.

Converter update:

  • Add SHA-256 to converter.
  • Add converting bitocoin address to ZCash t-addr and t-addr to bitcoin address.
  • Using locally Get-queries there (separate function).
  • Uploading files, for textarea - added.
  • download textarea, as binary - added.
  • download result as UTF-8 encoded text - added.
  • RAW encoding for source code of files - added.
  • Now, you can see hex-code of file, for example. Also you can download the same file as binary.
  • Now, you can upload any binary file, as RAW-data, see base64 or hex, sign this, verify, then decode this from hex -> to base64 and download as binary. This is the same file, and this opened after renaming, with add extension.

"Sign" and "Verify" update:

  • Fix. Armory HEX now give the verified status, after message signed, in the case when another coin selected in the list.
  • ARCH -> Sign -> Armory HEX -> Sign message -> verify -> Signed message -> MESSAGE VERIFIED.

Coins list update:

  • Now list with the coins is scrollable. Height is limited.
  • Add separate parameter to array with coins.
  • Now can be specified is coin using compressed or uncompressed keys and addresess.
  • Add autoswitching for the status of "Compressed" button, when coin selected in the list.
  • Add autoswitching public key byte when coin selected in list.
  • Chains-tab: Armory and Electrum now supporting compressed keys and addresses.
  • EmerCoin - added. Domain coin:
  • SixEleven - added. Good coin for domain names, where is supporting CNAME, for dynamic dns.
  • Here you can see old version of this brainwallet:
  • VertCoin - added.
  • GeertCoin - added. Only 9.6 million total coins, short blockchain. Cheap coin.
  • Waves - added just for google. They have DEX with many different tokens traded each for each.

-This code need to be optimized and compress. So many comments there.

What need to fix? Check and verify signatures for another altcoins, using compressed private keys... For example, Geertcoin have compressed private keys and address...

  1. Go to
  2. Select Geertcoin in the list.
  3. Default private key in generator: RZUp8o9zpfvDqHixCok4gcHLneqpo8ZEQBM1dVzTLBZ9p5TDnxd5 address corresponded for this private key is GNaix3HVRokcTW9CPM9N8vsVtuzmjguTrv - both are compressed...
  4. Go to "Sign" tab, and press the button "Sign Message".
  5. Signed message can be verified now, in brainwallet bitcoin-qt version of this message, can be verified too, and only in brainwallet...

But in geertcoin-qt.exe this message cann't be verified! Also, message, signed in geertcoin-qt.exe cannt be verified in brainwallet... This need to test for all altcoins, where using compressed and uncompressed keys.

Best regards...

You can’t perform that action at this time.