#!/bin/bash # # Bitcoin private key import helper (c)2012 ElasticNinja # bitcoin:1NinjaRFABUh48pwL5CdAYgnt8bTPnsuu4 # # Requires bitcoin client running in server mode. If you don't already have this # then edit ~/.bitcoin/bitcoin.conf and add following three lines: # rpcuser= # rpcpassword= # server=1 # # After modifying restart your bitcoin client. When you are finished adding keys # you can remove those lines from configuration. # # function unlock_wallet() { bitcoind walletpassphrase "$1" "$2" } function import_key() { bitcoind importprivkey "$1" "$2" } function fatal() { echo $1 exit 1 } function usage() { echo "Usage: bitkeyimport [-P|-p passphrase] [-l label] -k privkey" echo "" echo "-h this help message" echo "-P ask for wallet passphrase" echo "-p use provided passphrase (less secure, but useful in scripting)" echo "-l addressbook label for new address" echo "-k the private key for the new address (required)" echo "" echo "(c)2012 ElasticNinja bitcoin:1NinjaRFABUh48pwL5CdAYgnt8bTPnsuu4" exit 0; } while getopts "hk:l:p:P" option; do case $option in P) askpass=1 ;; p) pass=$OPTARG ;; l) label=$OPTARG ;; k) key=$OPTARG ;; *) usage ;; esac done if ((askpass==1)); then echo -n "Enter wallet passphrase: " stty -echo echonl read pass stty echo fi if [ -z "$key" ]; then echo "No private key specified!" exit 1 fi if [ ! -z "$pass" ]; then unlock_wallet "$pass" 120 || fatal "Could not unlock wallet, passphrase incorrect?" fi echo "Importing key.. be patient, this may take a while." import_key "$key" "$label" || fatal "Could not add key, wallet still locked?" echo "All done!"