Bitcoin Forum
May 05, 2024, 07:23:52 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Wallet software / TermWallet - Lightweight Command-Line Wallet on: January 07, 2015, 01:42:14 AM
I'm excited to release a project I've been working on the past few months, which has reached a point of usability and stability I'm finally satisfied with.  It uses the latest bitcoinj version, currently 0.12.2.

TermWallet

TermWallet is a bitcoinj-based wallet tailor-made for the command line.  It does not download the whole blockchain, and as a result the blockchain data only take up about a megabyte of space.  Small servers with limited HDD space are thus the ideal use-case for TermWallet.  Generated addresses are deterministic (HD) by default, using the BIP32 specification, but external private keys can also be imported into the wallet.

TermWallet can make transactions using only one address's outputs by including a novel adaption of bitcoinj's CoinSelector method, IndividualCoinSelector.  Previously, bitcoinj (and subsequently bitcoinj-based wallets such as Multibit) has not been able to select outputs from only one address.  IndividualCoinSelector provides this capability. Use the "-f (--from)" option while using the "send" command to designate the address to send from.

An encryption function is included, currently only encrypting private keys. Further, TermWallet provides a 'panic' command that can send all the BTC's in the wallet to an external address and, optionally, delete the wallet (including all files). This should be used if the computer is compromised or at risk.  No private keys will be easily recoverable.

An experimental function is provided to connect to the blockchain through Tor.  Use "-t" or "--tor" to use it.

To view the full usage menu, use "termwallet --help"

Install Instructions

Full Source Code: https://github.com/grayleonard/termwallet

Requirements:
OSX or Linux
Java 1.6 (bitcoinj requirement)

Quick Install:
Code:
wget -O - https://raw.githubusercontent.com/grayleonard/termwallet/master/install.sh | sh
You may need to run
Code:
wget -O - https://raw.githubusercontent.com/grayleonard/termwallet/master/install.sh | sudo sh
if permission is denied (note the 'sudo')

If you want to build from source:
Code:
git clone https://github.com/grayleonard/termwallet.git
cd termWallet
./build.sh
(Maven2 is required to build the project)

Get started by running 'termwallet new'. It creates a new address. Examples below.

Contributions and bug reports are welcomed, just make a pull request or open an issue.

"Screenshots"
Code:
[term@wallet]$ termwallet status
Connecting to and downloading blockchain...
Finished downloading blockchain...

Your addresses and their balances:
Deterministic Keys:
157tPz2zUc7Q843bRXhbN2PgNRJwFP3tBi      Balance: BTC 0.00
1QECpf8AjyZMCEV54uhKccRd6ueYiUHhik      Balance: BTC 0.00
18PcKRUNkq26JN3sXx9VGmch5Guj2JX9q8      Balance: BTC 0.00
1pXcUE8PJy8VdP4dPfttr3FyUCBwmStfH       Balance: BTC 0.00

Confirmed: BTC 0.00
Unconfirmed: BTC 0.00

Code:
[term@wallet]$ termwallet import
Connecting to and downloading blockchain...
Finished downloading blockchain...

Private key: correct horse battery staple
Creating ECKey ECKey{pub=047e225fa4260a6b6ce741170396462629115f52fe5305830df1c2acce10250f11a16e5a2a0816c677c4506db3a4b8f73f3ea97d538488674f84e20d40956751fc, isEncrypted=false}...
Added new ECKey, address 1EnngHuGmcjz781rYV5KXw4FAcwXi5o4ei to wallet...

Code:
[term@wallet]$ termwallet new
Connecting to and downloading blockchain...
Finished downloading blockchain...

New Address 1L54YBPbPQAhMnxCmQedNeSuXp63RHCKdG with purpose RECEIVE_FUNDS

Donation address: 1L54YBPbPQAhMnxCmQedNeSuXp63RHCKdG  Wink
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!