<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eorituz</id>
	<title>Bitcoin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eorituz"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/wiki/Special:Contributions/Eorituz"/>
	<updated>2026-06-03T10:02:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Cold_storage&amp;diff=43529</id>
		<title>Cold storage</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Cold_storage&amp;diff=43529"/>
		<updated>2013-12-31T12:53:00Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cold storage&#039;&#039;&#039; in the context of Bitcoin refers to keeping a reserve of Bitcoins offline.&lt;br /&gt;
&lt;br /&gt;
For example, a Bitcoin exchange typically offers an instant withdrawal feature, and might be a steward over hundreds of thousands of Bitcoins.  To minimize the possibility that an intruder could steal the entire reserve in a security breach, the operator of the website follows a best practice by keeping the majority of the reserve in &#039;&#039;cold storage&#039;&#039;, or in other words, not present on the web server or any other computer.  The only amount kept on the server is the amount needed to cover anticipated withdrawals.&lt;br /&gt;
&lt;br /&gt;
Methods of cold storage include keeping bitcoins:&lt;br /&gt;
* On a USB drive or other data storage medium in a safe place (e.g. safety deposit box, safe)&lt;br /&gt;
* On a [[paper wallet]]&lt;br /&gt;
* On a bearer item such as a [[physical bitcoin]].&lt;br /&gt;
* Online, but on encrypted media where the encryption key is offline.&lt;br /&gt;
* Use a offline Bitcoin [[Hardware wallet]] (So far only [http://www.pi-wallet.com/products/pi-wallet Pi-Wallet] is operational.)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Deep cold storage&#039;&#039;&#039; refers to keeping a reserve of Bitcoins offline, using a method that makes retrieving coins from storage significantly more difficult than sending them there.  This could be done for safety&#039;s sake, such as to prevent theft or robbery.&lt;br /&gt;
&lt;br /&gt;
Because Bitcoins can be sent to a wallet by anyone knowing the wallet address, it is trivial to put a wallet in cold storage but to keep a copy of the addresses needed to send funds to it.&lt;br /&gt;
&lt;br /&gt;
A simple example of deep cold storage is opening a safety deposit box and putting a USB stick containing an encrypted wallet file in it.  The public (sending) addresses can be used any time to send additional bitcoins to the wallet, but spending the bitcoins would require physical access to the box (in addition to knowledge of the encryption password).&lt;br /&gt;
&lt;br /&gt;
Deep cold storage would typically be used for holding large amounts of bitcoins, or for a trustee holding bitcoins on behalf of others.  In such a case, additional precautions should be taken beyond a simple example of a single safety deposit box.&lt;br /&gt;
* The box could be accessed by bank or maintenance personnel, so the contents of the box alone should not be sufficient to access the wallet.&lt;br /&gt;
* The box could be stolen or destroyed in a disaster, or the media could become unreadable, so the box should not contain the only copy of the wallet.&lt;br /&gt;
* The trustee could die or become incapacitated.  If access to the wallet or knowledge of its location is lost, or encryption passwords are lost, the bitcoins are gone forever.  Provisions should be made so that the box can be accessed by someone else as appropriate, including any encryption passwords.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[How to import private keys]]&lt;br /&gt;
* [[How to set up a secure offline savings wallet]]&lt;br /&gt;
* [http://codinginmysleep.com/bitcoin-cold-storage-in-plain-english Bitcoin Cold Storage In Plain English] by David Perry&lt;br /&gt;
* [https://blockchain.info/wallet/paper-tutorial Paper Wallet Tutorial] blockchain.info&lt;br /&gt;
&lt;br /&gt;
[[Category:Introduction]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Cold_storage&amp;diff=43528</id>
		<title>Cold storage</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Cold_storage&amp;diff=43528"/>
		<updated>2013-12-31T12:50:24Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Cold storage&#039;&#039;&#039; in the context of Bitcoin refers to keeping a reserve of Bitcoins offline.&lt;br /&gt;
&lt;br /&gt;
For example, a Bitcoin exchange typically offers an instant withdrawal feature, and might be a steward over hundreds of thousands of Bitcoins.  To minimize the possibility that an intruder could steal the entire reserve in a security breach, the operator of the website follows a best practice by keeping the majority of the reserve in &#039;&#039;cold storage&#039;&#039;, or in other words, not present on the web server or any other computer.  The only amount kept on the server is the amount needed to cover anticipated withdrawals.&lt;br /&gt;
&lt;br /&gt;
Methods of cold storage include keeping bitcoins:&lt;br /&gt;
* On a USB drive or other data storage medium in a safe place (e.g. safety deposit box, safe)&lt;br /&gt;
* On a [[paper wallet]]&lt;br /&gt;
* On a bearer item such as a [[physical bitcoin]].&lt;br /&gt;
* Online, but on encrypted media where the encryption key is offline.&lt;br /&gt;
* Use a offline Bitcoin [[Hardware wallet]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Deep cold storage&#039;&#039;&#039; refers to keeping a reserve of Bitcoins offline, using a method that makes retrieving coins from storage significantly more difficult than sending them there.  This could be done for safety&#039;s sake, such as to prevent theft or robbery.&lt;br /&gt;
&lt;br /&gt;
Because Bitcoins can be sent to a wallet by anyone knowing the wallet address, it is trivial to put a wallet in cold storage but to keep a copy of the addresses needed to send funds to it.&lt;br /&gt;
&lt;br /&gt;
A simple example of deep cold storage is opening a safety deposit box and putting a USB stick containing an encrypted wallet file in it.  The public (sending) addresses can be used any time to send additional bitcoins to the wallet, but spending the bitcoins would require physical access to the box (in addition to knowledge of the encryption password).&lt;br /&gt;
&lt;br /&gt;
Deep cold storage would typically be used for holding large amounts of bitcoins, or for a trustee holding bitcoins on behalf of others.  In such a case, additional precautions should be taken beyond a simple example of a single safety deposit box.&lt;br /&gt;
* The box could be accessed by bank or maintenance personnel, so the contents of the box alone should not be sufficient to access the wallet.&lt;br /&gt;
* The box could be stolen or destroyed in a disaster, or the media could become unreadable, so the box should not contain the only copy of the wallet.&lt;br /&gt;
* The trustee could die or become incapacitated.  If access to the wallet or knowledge of its location is lost, or encryption passwords are lost, the bitcoins are gone forever.  Provisions should be made so that the box can be accessed by someone else as appropriate, including any encryption passwords.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[How to import private keys]]&lt;br /&gt;
* [[How to set up a secure offline savings wallet]]&lt;br /&gt;
* [http://codinginmysleep.com/bitcoin-cold-storage-in-plain-english Bitcoin Cold Storage In Plain English] by David Perry&lt;br /&gt;
* [https://blockchain.info/wallet/paper-tutorial Paper Wallet Tutorial] blockchain.info&lt;br /&gt;
&lt;br /&gt;
[[Category:Introduction]]&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Software&amp;diff=43503</id>
		<title>Software</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Software&amp;diff=43503"/>
		<updated>2013-12-29T11:53:53Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: /* Bitcoin clients */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of Bitcoin-related &#039;&#039;&#039;software&#039;&#039;&#039;. See also [[:Category:Software|Category:Software]].&lt;br /&gt;
&lt;br /&gt;
Be sure to keep on top of the latest [[CVEs|security vulnerabilities]]!&lt;br /&gt;
&lt;br /&gt;
==Bitcoin clients==&lt;br /&gt;
===Bitcoin clients===&lt;br /&gt;
::&#039;&#039;Main article and feature comparison: [[Clients]]&#039;&#039;&lt;br /&gt;
*[[Bitcoin-Qt]] - C++/Qt based tabbed UI. Linux/MacOSX/Windows. Full-featured [[Thin Client Security|thick client]] that downloads the entire [[block chain]], using code from the original Bitcoin client.&lt;br /&gt;
*[[bitcoind]] - GUI-less version of the original Bitcoin client, providing a [[API reference (JSON-RPC)|JSON-RPC]] interface&lt;br /&gt;
*[[MultiBit]] - lightweight [[Thin Client Security|thin client]] for Windows, MacOS and Linux with support for opening multiple wallets simultaneously&lt;br /&gt;
*[[Electrum]] - a &amp;quot;blazing fast, open-source, multi-OS Bitcoin client/wallet with a very active community&amp;quot; - also a [[Thin Client Security|thin client]].&lt;br /&gt;
*[[Bitcoin-js-remote]] - JavaScript RPC client, support for QR codes&lt;br /&gt;
*[https://github.com/TheSeven/Bitcoin-WebUI Bitcoin WebUI] - JavaScript RPC client&lt;br /&gt;
*[https://github.com/zamgo/bitcoin-webskin Bitcoin Webskin] - PHP web interface to bitcoind and namecoind&lt;br /&gt;
*[https://bitcointalk.org/index.php?topic=50721.0 subvertx] - command line bitcoin tools&lt;br /&gt;
*[[Bitcoiner]] - Java RPC client (Android)&lt;br /&gt;
*[[Armory]] - Python-based client currently in beta-level&lt;br /&gt;
*[[Spesmilo]] - Python/PySide RPC client (abandoned)&lt;br /&gt;
*[[Gocoin]] - WebUI client written in Go language, with a cold deterministic brain-wallet.&lt;br /&gt;
&lt;br /&gt;
====Frontends to eWallet====&lt;br /&gt;
*[[BitPay]] - Android application&lt;br /&gt;
*[https://blockchain.info/wallet Blockchain] - Javascript bitcoin client with client side encryption.&lt;br /&gt;
&lt;br /&gt;
====Experimental====&lt;br /&gt;
*[[Freecoin]] - C++ client, supports alternative currencies like [https://bitcointalk.org/index.php?topic=9493.0 Beertoken]&lt;br /&gt;
*[[BitDroid]] - Java client&lt;br /&gt;
*[[Bitdollar]] - C++/Qt client, unstable beta version&lt;br /&gt;
&lt;br /&gt;
===Libraries===&lt;br /&gt;
*[https://bitcointalk.org/index.php?topic=30646.0 libbitcoin]&lt;br /&gt;
*[[BitCoinJ]] - Java client library, early development stage but used in live projects already&lt;br /&gt;
*[[BCCAPI]] (Bitcoin Client API) - a java library designed for making secure light-weight bitcoin clients.&lt;br /&gt;
&lt;br /&gt;
==Bitcoin Trade Data==&lt;br /&gt;
*[[Bitcoin Charts]] – Prices, volume, and extensive charting on virtually all Bitcoin markets.&lt;br /&gt;
*[[MtGox Live]] - An innovative chart showing a live feed of [[MtGox]] trades and market depth.  (Must Use Chrome)&lt;br /&gt;
*[http://btccharts.com BTCCharts] - An innovative chart showing a live feed of multiple markets, currencies and timeframes.&lt;br /&gt;
*[http://MY-BTC.info MY-BTC.INFO] - A free profit/loss portfolio manager for Bitcoins and other digital currencies including many charts.&lt;br /&gt;
*[http://BitcoinExchangeRate.org BitcoinExchangeRate.org] - Bitcoin and USD converter with convenient URL scheme and Auto-updating Portfolio Spreadsheet.&lt;br /&gt;
*[[Bitcoin Sentiment Index]] - A financial index that collects and disseminates sentiment data about bitcoin.&lt;br /&gt;
*[[Preev]] - Bitcoin converter with live exchange rates.&lt;br /&gt;
*[[Skami]] - Bitcoin Market Exchange comparison charts.&lt;br /&gt;
*[[BitcoinSentiment]] - Crowdvoting site offering means of voting and viewing voters sentiment towards bitcoin.&lt;br /&gt;
*[[TradingView]] – network where traders exchange ideas about Bitcoin using advanced free online charts&lt;br /&gt;
&lt;br /&gt;
==Bitcoin software==&lt;br /&gt;
&lt;br /&gt;
===Web interfaces for merchants===&lt;br /&gt;
*[[BTCMerch]] - Payment processor for bitcoins and other cryptocurrencies. 0.5% transaction fee. Sandbox is available.&lt;br /&gt;
*[[BitMerch]] - Embeddable HTML buttons, instant sign-up, instant payouts, automatic price adjustment for other currencies. No programming skills required to set up.&lt;br /&gt;
*[[Bitcoin Evolution]] - Non wallet-based Buy Now button to insert into websites (handles sales tracking; client must be used for actual transaction)&lt;br /&gt;
*[[BitPay]] - Buy Now buttons, Checkout posts/callbacks, Mobile Checkout, JSON API&lt;br /&gt;
*[[Btceconomy]] - a JavaScript widget listing items for sale&lt;br /&gt;
*[[Javascript Bitcoin Converter]] - currency conversion&lt;br /&gt;
*[[WalletBit]] - Easy JavaScript Buy Now buttons, Instant Payment Notification, Application Programming Interface (JSON API), Mobile Checkout, QR-Code&lt;br /&gt;
* [https://PikaPay.com PikaPay] ([[PikaPay|info]]) Buy Now buttons, Twitter Integration, JSON API&lt;br /&gt;
&lt;br /&gt;
===Shopping Cart Integration in eCommerce-Systems===&lt;br /&gt;
*[[Zen Cart Bitcoin Payment Module]] - a payment module that interacts with bitcoind for the Zen Cart eCommerce shopping chart.&lt;br /&gt;
*[[Karsha Shopping Cart Interface]] -  is a mobile payment-interface which enables its users to accept payments.&lt;br /&gt;
*[[Bitcoin-Cash]] - an easy to use payment module for xt:Commerce&lt;br /&gt;
*[[BitPay]] - bitcoin plugins for Magento, Opencart, Zencart, PHP, JSON API&lt;br /&gt;
*[[WalletBit]] - Plugins for PrestaShop, OpenCart, PHP, JSON API&lt;br /&gt;
*[[OpenCart Bitcoin]] - An OpenCart payment module that communicates with a bitcoin client using JSON RPC.&lt;br /&gt;
*[[OsCommerce_Bitcoin_Payment_Module|OsCommerce Bitcoin Payment Module]] - a payment module that uses a python monitoring script to interact with bitcoind for OsCommerce&lt;br /&gt;
* [http://drupal.org/project/uc_bitcoin Drupal Ubercart Bitcoin payment method] enables you to accept Bitcoin as payment for your Drupal/Ubercart enabled website product/services.&lt;br /&gt;
&lt;br /&gt;
=== Enterprise server ===&lt;br /&gt;
*[http://bitsofproof.com Bits of Proof] - a modular enterprise-ready implementation of the Bitcoin protocol.&lt;br /&gt;
&lt;br /&gt;
===Web apps (opensource)===&lt;br /&gt;
*[[Bitcoin Central]] - currency exchange&lt;br /&gt;
*[[Bitcoin Poker Room]] - poker site&lt;br /&gt;
*[[Abe]] - block chain viewer&lt;br /&gt;
*[[Simplecoin]] - PHP web frontend for a pool&lt;br /&gt;
*[[bitcoin_simple_php_tools]] simple php tools for webmasters&lt;br /&gt;
&lt;br /&gt;
===Browser extensions===&lt;br /&gt;
*[[Bitcoin Extension]] - check balance and send bitcoins (Chrome)&lt;br /&gt;
*[[Bitcoin Prices (extension)]] - monitoring price (Firefox)&lt;br /&gt;
*[[Bitcoin Ticker]] - monitoring price (Chrome)&lt;br /&gt;
*[[Biticker]] - Bitcoin ticker, currency converter and history price graph (Chrome)&lt;br /&gt;
*[https://chrome.google.com/webstore/detail/bitcoin-microformats/bkanicejfbhlidgjkpenmddnacjengld?hl=en Bitcoin Microformats] Show bitcoin address metadata embedded in a page (Chrome)&lt;br /&gt;
*[https://chrome.google.com/webstore/detail/bitcoin-address-lookup/pmlblkdmadbidammhjiponepngbfcpge?hl=en Bitcoin Address Lookup] Right click an address to view its value. (Chrome)&lt;br /&gt;
&lt;br /&gt;
===PC apps===&lt;br /&gt;
*[https://sourceforge.net/projects/bitcointrader/ Qt Bitcoin Trader] - Open Source Mt.Gox, BTC-e, Bitstamp and BTCChina trading client for Windows, Mac OS X and Linux&lt;br /&gt;
*[[http://www.mybtc-trader.com MyBTC-Trader.com]] - a MtGox Bitcoin trading client for windows with GUI&lt;br /&gt;
*[[Mining Explorer]] - monitoring tool for bitcoin mining&lt;br /&gt;
*[[Bitcoin SMS Alert]] - sends SMS text alerts to a user&#039;s phone based on BTC price / percent thresholds.&lt;br /&gt;
*[[BTConvert]] - currency conversion&lt;br /&gt;
*[[Sierra Chart MtGox Bridge]] - real-time charting&lt;br /&gt;
*[[BitTicker]] - monitoring price (Mac OS X)&lt;br /&gt;
*[[ToyTrader]] - a command line trading tool for [[MtGox]]&lt;br /&gt;
*[[goxsh]] - a command-line frontend to the [[MtGox|Mt. Gox Bitcoin Exchange]] (Python)&lt;br /&gt;
*[[MyBitcoins gadget]] - monitoring pool earnings / price (Windows gadget)&lt;br /&gt;
*[[Bitcoin QR Popup]] - streamlined interface to bitcoin for POS systems (Windows)&lt;br /&gt;
*[http://gnome-help.org/content/show.php/Bitcoin+Rate?content=138572 Bitcoin Rate] - Desktop widget with BTC exchange rate (KDE)&lt;br /&gt;
*[http://kde-apps.org/content/show.php?content=142344 Bitcoin Monitor] - Desktop widget to monitor status of your Bitcoin miners on mining pools (KDE)&lt;br /&gt;
&lt;br /&gt;
===Mobile apps===&lt;br /&gt;
==== iPhone / iPad ====&lt;br /&gt;
*[https://blockchain.info/wallet/iphone-app Blockchain] - Fully featured iphone bitcoin app.&lt;br /&gt;
*[[Bitcoin Ticker (iPhone)]] - monitoring price w/push notifications&lt;br /&gt;
*[[BitCoins Mobile]] - First iPad native app! Live market data, news feeds, mining pool statistics, full screen exchange price charts, bitcoin network statistical charts. (iPad only, iPhone/iPod Touch coming soon!)&lt;br /&gt;
*[https://github.com/teeman/BitcoinTrader BitcoinTrader] - Spend/receive BTC via QR codes, trade, deposit/withdraw, etc. Supports Mt. Gox, TradeHill, ExchB, CampBX, and InstaWallet.&lt;br /&gt;
*[[Bit-pay]] - Mobile Checkout, set prices in any currency and receive mobile-to-mobile payment&lt;br /&gt;
*[[Easywallet.org]] - Web based wallet, works with QR Code scanner on iPhone/iPad/iPod touch&lt;br /&gt;
*[https://itunes.apple.com/us/app/btc-miner/id648411895?ls=1&amp;amp;mt=8 BTC Miner (iPhone)] - monitor mining results from various mining pools on iPhone/iPad/iPod touch&lt;br /&gt;
*[[BitTick]] -  Real-time Bitcoin ticker. Real-time currency convert(support 50+ currency. USD, GBP, EUR, CNY, JPY, CAD, RUB, AUD, BRL, NZD, PLN, KRW…) &lt;br /&gt;
&lt;br /&gt;
==== Android ====&lt;br /&gt;
* Direct link to Android Market bitcoin apps. https://play.google.com/store/search?q=bitcoin&lt;br /&gt;
*[[BitCare]] - Track bitcoin wallet balance, trade on Mt.Gox, monitor mining pool hashrate, balance, worker status. &lt;br /&gt;
*[[Bitcoin Alert]] - monitoring price (Android)&lt;br /&gt;
*[[Bitcoin-android]] - Does not appear to be being maitained anymore. https://market.android.com/details?id=com.bitcoinandroid&lt;br /&gt;
*[[Bitcoin Wallet Balance]] - view your balance in real time on your android phone&lt;br /&gt;
*[[Bitcoin Wallet]] - This is the most functional Android bitcoin wallet application. https://market.android.com/details?id=de.schildbach.wallet&lt;br /&gt;
*[[BitcoinSpinner]] - Single address, easy to use, lightweight and open source client. Keys stored on device.&lt;br /&gt;
*[[BitcoinX]] - monitoring price (Android)&lt;br /&gt;
*[[BitPay]] - https://market.android.com/details?id=com.bitcoin.bitpay (Is not related to the bit-pay.com online payment processor.)&lt;br /&gt;
*[[Bridgewalker]] - euro-denominated wallet for the Bitcoin economy&lt;br /&gt;
*[https://blockchain.info/wallet/android-app Blockchain] - Lightweight Android Bitcoin Client - Also works with blockchain.info web interface and iphone app.&lt;br /&gt;
*[[http://coincliff.com CoinCliff]] - Monitors price and fires alarms to wake you up, or notifications, as in text messages (Android)&lt;br /&gt;
*[[Easywallet.org]] - Web based wallet, works with QR Code scanner on Android devices&lt;br /&gt;
*[[Miner Status]] - monitoring miner status (Android)&lt;br /&gt;
*[[SMS Bitcoins]] - transactions by SMS&lt;br /&gt;
&lt;br /&gt;
==== Windows Phone 7 ====&lt;br /&gt;
*Direct link to Windows Phone Marketplace Bitcoin apps: [http://www.windowsphone.com/en-us/store/search?q=bitcoin]&lt;br /&gt;
&lt;br /&gt;
==== Windows Phone 8 ====&lt;br /&gt;
*[[Bitcoin Can]] - Monitoring prices, account balances and mobile trading on multiple exchanges including MtGox and CampBX. http://www.windowsphone.com/en-us/store/app/bitcoin-can/57fcf4d6-497a-4663-8da3-93cb26c83b11&lt;br /&gt;
&lt;br /&gt;
see also [[Bitcoin Payment Apps]]&lt;br /&gt;
&lt;br /&gt;
===Operating systems===&lt;br /&gt;
*[[MinePeon]] - Bitcoin mining on the Raspberry PI&lt;br /&gt;
*BAMT - a minimal Linux based OS intended for headless mining.  Initially announced [https://bitcointalk.org/index.php?topic=65915.0 here]  (not maintained)&lt;br /&gt;
*[[LinuxCoin]] - a lightweight Debian-based OS, with the Bitcoin client and GPU mining software (not maintained)&lt;br /&gt;
&lt;br /&gt;
===Mining apps===&lt;br /&gt;
Main page: [[Mining software]]&lt;br /&gt;
*[[50Miner]] - A GUI frontend for Windows(Poclbm, Phoenix, DiabloMiner, cgminer)&lt;br /&gt;
*[[BFGMiner]] - Modular ASIC/FPGA/GPU miner in C&lt;br /&gt;
*[http://www.groupfabric.com/bitcoin-miner/ Bitcoin Miner by GroupFabric] - Free easy-to-use DirectX GPU miner on the Windows Store&lt;br /&gt;
*[[BTCMiner]] - Bitcoin Miner for ZTEX FPGA Boards&lt;br /&gt;
*[[Bit Moose]] - Run Miners as a Windows Service.&lt;br /&gt;
*[[Poclbm]] - Python/OpenCL GPU miner ([[Poclbm-gui|GUI(Windows &amp;amp; MacOS X)]])&lt;br /&gt;
*[[CGMiner]] - ASIC/FPGA/GPU miner in C&lt;br /&gt;
*[[Poclbm-mod]] - more efficient version of [[Poclbm]] ([[Poclbm-mod-gui|GUI]])&lt;br /&gt;
*[[DiabloMiner]] - Java/OpenCL GPU miner ([[DiabloMiner.app|MAC OS X GUI]])&lt;br /&gt;
*[[RPC Miner]] - remote RPC miner ([[RPCminer.app|MAC OS X GUI]])&lt;br /&gt;
*[[Phoenix miner]] - miner&lt;br /&gt;
*[[Cpu Miner]] - miner&lt;br /&gt;
*[[Ufasoft miner]] - miner&lt;br /&gt;
*[[Pyminer]] - Python miner, reference implementation&lt;br /&gt;
*[[Remote miner]] - mining pool software&lt;br /&gt;
*[[Open Source FGPA Bitcoin Miner]] - a miner that makes use of an FPGA Board&lt;br /&gt;
*[https://github.com/mkburza/Flash-Player-Bitcoin-Miner Flash Player Bitcoin Miner] - A proof of concept Adobe Flash Player miner&lt;br /&gt;
*[http://fabulouspanda.co.uk/macminer/ MacMiner] - A native Mac OS X Bitcoin/Litecoin miner based on cgminer, bfgminer, cpuminer and poclbm&lt;br /&gt;
*[[Asteroid]] - Mac-specific GUI based on cgminer&lt;br /&gt;
*[[MultiMiner]] - GUI based on cgminer/bfgminer for Windows, OS X and Linux, allows switching between currencies based on profitability&lt;br /&gt;
&lt;br /&gt;
===Mining Pool Servers (backend)===&lt;br /&gt;
Main page: [[Poolservers]]&lt;br /&gt;
&lt;br /&gt;
*[[ecoinpool]] - Erlang poolserver (not maintained)&lt;br /&gt;
*[[Eloipool]] - Fast Python3 poolserver&lt;br /&gt;
*[[Pushpoold]] - Old mining poolserver in C (not maintained)&lt;br /&gt;
*[[Poold]] - Old Python mining poolserver (not maintained)&lt;br /&gt;
*[[PoolServerJ]] - Java mining poolserver (not maintained)&lt;br /&gt;
&lt;br /&gt;
===Utilities, libraries, and interfaces:===&lt;br /&gt;
*[[BitcoinCrypto]] - a lightweight Bitcoin crypto library for Java/Android&lt;br /&gt;
*[[Bitcoin Dissector]] - a wireshark dissector for the bitcoin protocol&lt;br /&gt;
*[[Bitcointools]] - a set of Python tools accessing the transaction database and the wallet&lt;br /&gt;
*[[Finance::MtGox]] - a Perl module which interfaces with the Mt. Gox API&lt;br /&gt;
*[[libblkmaker]] - C library implementation of [[getblocktemplate]] decentralized mining protocol&lt;br /&gt;
*[[python-blkmaker]] - Python module implementation of [[getblocktemplate]] decentralized mining protocol&lt;br /&gt;
&lt;br /&gt;
===Lists of software===&lt;br /&gt;
*[[BitGit]] - list of Bitcoin-related opensource projects hosted at Git&lt;br /&gt;
&lt;br /&gt;
===Developer resources===&lt;br /&gt;
*[[:Category:Developer|Category:Developer]]&lt;br /&gt;
*[[:Category:Technical|Category:Technical]]&lt;br /&gt;
*[[Original Bitcoin client/API calls list]]&lt;br /&gt;
*[[API reference (JSON-RPC)]]&lt;br /&gt;
*[[PHP_developer_intro|PHP Developer Introduction]]&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
*[[Namecoin]] - a distributed naming system based on Bitcoin technology&lt;br /&gt;
*[[Bitcoin Consultancy]] - an organization providing open source software and Bitcoin-related consulting&lt;br /&gt;
*[[Open Transactions]] - a financial crypto and digital cash software library, complementary to Bitcoin&lt;br /&gt;
*[[Moneychanger]] - Java-based GUI for [[Open Transactions]]&lt;br /&gt;
*[http://btcnames.org/ BTCnames] - a webbased aliasing service which allows to handle unlimited names for your BTC deposit hashes&lt;br /&gt;
*[[Devcoin]] - the open source developer coin&lt;br /&gt;
&lt;br /&gt;
[[Category:Software|*]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Securing_your_wallet&amp;diff=43459</id>
		<title>Securing your wallet</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Securing_your_wallet&amp;diff=43459"/>
		<updated>2013-12-27T10:10:33Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: /* Hardware wallets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Wallet security can be broken down into two independent goals:&lt;br /&gt;
# Protecting your wallet against loss.&lt;br /&gt;
# Protecting your wallet against theft.&lt;br /&gt;
&lt;br /&gt;
In the case that your current wallet hasn&#039;t been protected adequately (e.g. put online with a weaker password):&lt;br /&gt;
# Making a new secure wallet, using appropriate long-term protection.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For a brief overview see also: [[Wallet Security Dos and Don&#039;ts|Wallet Security Dos and Don&#039;ts]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Paper Wallets==&lt;br /&gt;
[[Paper wallet]]s are a fairly simple way to store your bitcoins independent of a computer. When generated securely and stored on paper, or other offline storage media, a paper wallet decreases the chances of your bitcoins being stolen by hackers, or computer viruses.&lt;br /&gt;
&lt;br /&gt;
With each entry on a paper wallet, you are securing a sequence of secret numbers that is used to prove your right to spend the bitcoins assigned to one of your addresses. This secret number, called a [[private key]], is most commonly written as a sequence of fifty-one alphanumeric characters, beginning with a &#039;5&#039;.&lt;br /&gt;
&lt;br /&gt;
One way you can create a paper wallet is by visiting the [[BitAddress|BitAddress.org]] or [[BitcoinPaperWallet|BitcoinPaperWallet.com]] websites. These websites feature a free client-side paper wallet generator written in JavaScript. The HTML for either of these generators can be downloaded from GitHub and used on an offline computer. Using either of these generators online by directly connecting to their websites is relatively safe for storing smaller amounts of bitcoin, but extra precautions should be taken to ensure that keys are not compromised by spyware that may be monitoring browser activity. Blockchain.info offers a [https://blockchain.info/wallet/paper-tutorial tutorial on how to generate a paper wallet] with an online component so you can check your balance easily.&lt;br /&gt;
&lt;br /&gt;
To generate a safer paper wallet, first save the paper wallet generating code to a newly-formatted USB stick. Then &amp;quot;clean-boot&amp;quot; your computer with a bootable CD (such as a Linux Live CD) &#039;&#039;while disconnected from the Internet&#039;&#039;. Disconnecting from the Internet guarantees that that the paper wallet generator is truly self-contained and isn&#039;t communicating with an online service. Then insert the USB stick and open the wallet generator&#039;s HTML file from the web browser. Print your paper wallets or store them on external media (do not save them on the computer), and then shut down the computer. You may need to load an appropriate printer driver in order to print while booted from the live CD.&lt;br /&gt;
&lt;br /&gt;
A paper wallet includes at least one public bitcoin address and its corresponding private key. You can send bitcoins to the public address and they will be inaccessible until the private key is imported into a wallet. As of version 0.6.0, the bitcoin QT software has a command line feature called &amp;quot;importprivkey&amp;quot; that can load private keys. Online exchanges and wallets such as [[MtGox]], CoinBase and Blockchain.info have features for importing (or &amp;quot;sweeping&amp;quot;) private keys as well.&lt;br /&gt;
&lt;br /&gt;
Remember, spyware and viruses often attempt to monitor your computer activities so that their authors can steal from you. They are interested in passwords to online accounts, and anything of value. Bitcoin wallets and private keys are something of value that have already been targeted by malware. Paper wallets isolate you from much of this risk.&lt;br /&gt;
&lt;br /&gt;
If your computer is infected with spyware or viruses - even if there are no symptoms, or your antivirus isn&#039;t reporting anything - then anything you type, view, or save on your computer, could potentially be stolen by someone remotely controlling your computer. Your private key can then be intercepted while you enter it, so only enter a Bitcoin private key into your computer when your intent is to redeem its value &#039;&#039;immediately&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Hardware wallets ==&lt;br /&gt;
[[Hardware wallet]]s are a major effort to provide a good combination of enhanced security and usability.&lt;br /&gt;
&lt;br /&gt;
So far only [http://www.pi-wallet.com/ Pi Wallet] is operational.&lt;br /&gt;
&lt;br /&gt;
==Importance of security updates==&lt;br /&gt;
&lt;br /&gt;
No software is perfect, and from time to time there may be security vulnerabilities found in your Bitcoin client as well.&lt;br /&gt;
Be sure you keep your client updated with the latest bug fixes, especially when a new vulnerability is discovered.&lt;br /&gt;
We maintain a [[CVEs|list a known vulnerabilities]] on this wiki - you can watch that page to get updates.&lt;br /&gt;
Note that you &#039;&#039;don&#039;t&#039;&#039; need to be running the latest major client version: some clients, including the popular Bitcoin-Qt, have older versions available with bugfix-only updates.&lt;br /&gt;
&lt;br /&gt;
==Securing the Bitcoin-QT or bitcoind wallet==&lt;br /&gt;
&lt;br /&gt;
Bitcoin transactions send Bitcoins to a specific public key. A Bitcoin address is an encoded hash of a public key. In order to use received Bitcoins, you need to have the private key matching the public key you received with. This is sort of like a super long password associated with an account (the account is the public key). Your Bitcoin wallet contains all of the private keys necessary for spending your received transactions. If you delete your wallet without a backup, then you no longer have the authorization information necessary to claim your coins, and the coins associated with those keys are lost forever.&lt;br /&gt;
&lt;br /&gt;
The wallet contains a pool of queued keys. By default there are 100 keys in the [[key pool]].  The size of the pool is configurable using the &amp;quot;-keypool&amp;quot; command line argument.  When you need an address for whatever reason (send, “new address”, generation, etc.), the key is not actually generated freshly, but taken from this pool. A brand new address is generated to fill the pool back to 100. So when a backup is first created, it has all of your old keys plus 100 unused keys. After sending a transaction, it has 99 unused keys. After a total of 100 new-key actions, you will start using keys that are not in your backup. Since the backup does not have the private keys necessary for authorizing spends of these coins, restoring from the old backup will cause you to lose Bitcoins.&lt;br /&gt;
&lt;br /&gt;
Creating a new address generates a new pair of public and private keys, which are added to your wallet. Each keypair is mostly random numbers, so they cannot be known prior to generation. If you backup your wallet and then create more than 100 new addresses, the keypair associated with the newest addresses will not be in the old wallet because the new keypairs are only known after creating them. Any coins received at these addresses will be lost if you restore from the backup.&lt;br /&gt;
&lt;br /&gt;
The situation is made somewhat more confusing because the receiving addresses shown in the UI are not the only keys in your wallet. Each Bitcoin generation is given a new public key, and, more importantly, each sent transaction also sends some number of Bitcoins back to yourself at a new key. When sending Bitcoins to anyone, you generate a new keypair for yourself and simultaneously send Bitcoins to your new public key and the actual recipient&#039;s public key. This is an anonymity feature – it makes tracking Bitcoin transactions much more difficult.&lt;br /&gt;
&lt;br /&gt;
So if you create a backup, do more than 100 things that cause a new key to be used, and then restore from the backup, some Bitcoins will be lost. Bitcoin has not deleted any keys (keys are never deleted) – it has created a new key that is not in your old backup and then sent Bitcoins to it.&lt;br /&gt;
&lt;br /&gt;
== Making a new wallet ==&lt;br /&gt;
&lt;br /&gt;
If a wallet or an encrypted wallet&#039;s password has been compromised, it is wise to create a new wallet and transfer the full balance of bitcoins to addresses contained only in the newly created wallet. Examples of ways a wallet may be compromised are through password re-use, minimal strength passwords, computer hack or virus attack.&lt;br /&gt;
&lt;br /&gt;
There are a number of ways to create a new wallet with Bitcoin-QT or bitcoind but this is a process that has been tested with bitcoind 0.6.3. We use the copy command to minimize the chance of any data loss but you are warned to make backups of any wallet.dat that holds a balance for you.&lt;br /&gt;
&lt;br /&gt;
:1. Shut down the Bitcoin program.&lt;br /&gt;
:2. Find and make a backup of the &amp;quot;compromised&amp;quot; wallet.dat file and rename it, perhaps adding a short description:&lt;br /&gt;
:::wallet.dat -&amp;gt;  wallet-compromised.dat&lt;br /&gt;
:Depending on your OS, the wallet file will be located at:&lt;br /&gt;
:::Windows: %APPDATA%\Bitcoin\&lt;br /&gt;
:::Linux: ~/.bitcoin/&lt;br /&gt;
:::Mac: ~/Library/Application Support/Bitcoin/&lt;br /&gt;
:3. Start the Bitcoin program and it will create a new wallet.dat. You may then encrypt the wallet as desired and make a new backup.&lt;br /&gt;
:4. Once you&#039;ve made a new wallet, you can obtain one or more addresses and copy them into a text editor. After obtaining the new address(es), shut down the Bitcoin program, make a backup of the new wallet.dat file and copy it to a new file named wallet-new.dat.&lt;br /&gt;
:5. Copy the wallet-compromised.dat file back to wallet.dat, start the Bitcoin program and transfer your balance to the new address(es) you put in your text editor. Once the balance is back to 0 for your compromised wallet, you may want to wait a couple minutes or for a confirmation or check block explorer to be sure the transactions have been broadcasted. Then you may shut down the Bitcoin program.&lt;br /&gt;
:6. Rename wallet.dat to wallet-compromised.dat. &lt;br /&gt;
:7. Rename wallet-new.dat to wallet.dat.&lt;br /&gt;
&lt;br /&gt;
You should now have a new wallet with all the bitcoins from the old wallet.&lt;br /&gt;
&lt;br /&gt;
==Making a secure workspace==&lt;br /&gt;
&lt;br /&gt;
If you are using your computer to handle bitcoins, a wallet, Bitcoin-related passwords, or Bitcoin private keys, you must take care that the system is free of malware, viruses, keyloggers, remote access tools, and other tools that may be used to make remote copies of any of the above. In the case that your computer is compromised, the precautions taken below may provide additional protection.&lt;br /&gt;
&lt;br /&gt;
===Debian-based Linux===&lt;br /&gt;
&lt;br /&gt;
The first step is to make a [http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/ new user]. In order for that new user to have an encrypted home directory, you&#039;ll first need the encryption utility. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install ecryptfs-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you&#039;re ready to create a new user&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo adduser --encrypt-home new_user_name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to come up with a [[#Choosing_A_Strong_Password|secure]] new password for that user.&lt;br /&gt;
&lt;br /&gt;
When you get to the prompt &#039;Enter the new value, or press ENTER for the default&#039;, just keep hitting ENTER.&lt;br /&gt;
&lt;br /&gt;
Then switch user to the new user.  To get to the new user you can use the switch user icon for your system, which on Ubuntu is in the &#039;System/Quit&#039; screen, or if there is no switch icon on your system you can log out and log back in as the new user.&lt;br /&gt;
&lt;br /&gt;
Since the home folder of this user is encrypted, if you&#039;re not logged in as that user, data that is saved there can&#039;t be browsed, even by a root user. If something goes wrong with your system, and you need to decrypt the new user&#039;s files, you&#039;ll need its decryption key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ecryptfs-unwrap-passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will ask you for your user&#039;s password and give you the decryption key. &#039;&#039;&#039;WRITE DOWN OR SAVE THE CODE IT RETURNS&#039;&#039;&#039; because you will need it if you ever have to pull your data off while the OS is not working. (You can run it again later if you need to, but run it now so that you can get your data if your Linux install gets botched.)&lt;br /&gt;
&lt;br /&gt;
The encrypted folder data is not encrypted while it&#039;s in memory, and so if it&#039;s ever sent to the swap partition it can be stolen from there unless that too is encrypted - be aware that this will mean you cannot use Hibernate anymore, as the bootloader won&#039;t be able to restore the hibernation data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ecryptfs-setup-swap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then click on a folder in the new user to display the file browser, then keep going up folders until you see the new user home directory, then right click to bring up the Properties dialog, then click on the Permissions tab, then in the Others section, set the folder access to None.&lt;br /&gt;
&lt;br /&gt;
For secure browsing, open Firefox, and then go into the Edit menu and click Preferences.  Starting from the left, click on the General tab, and in the &#039;Startup/When Firefox starts&#039; pop up menu, choose &#039;Show a Blank Page&#039;.  Then click on the Content tab, and deselect &#039;Load images automatically&#039; and deselect &#039;Enable JavaScript&#039;.  Then click on the Privacy tab, and in the &#039;History/Firefox will&#039; pop up menu, choose &#039;Never remember history&#039;.  Then click on the Security tab, and in the Passwords section, deselect &#039;Remember passwords for sites&#039; and deselect &#039;Use a master password&#039;.  Then click on the Advanced tab, then click on the Update tab, and then in the &#039;Automatically check for updates to&#039; section, deselect &#039;Add-ons&#039; and &#039;Search Engines&#039;.&lt;br /&gt;
&lt;br /&gt;
When JavaScript is disabled, the [http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/bitcoin-0.3.23-linux.tar.gz/download Linux download page] will not download automatically, so you&#039;ll have to click on the &#039;direct link&#039; part of the &amp;quot;Problems with the download? Please use this &#039;direct link&#039; or try another mirror.&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
===Mac===&lt;br /&gt;
This solution &#039;&#039;&#039;does not scale&#039;&#039;&#039;; the amount of needed space can grow beyond the image size.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Due to the frequency with which Windows computers are compromised, it is advised to encrypt your wallet or to keep your wallet on an encrypted disk image created by third-party software, such as [http://www.truecrypt.org/ TrueCrypt] (open source) or [http://www.jetico.com/encryption-bestcrypt/ Jetico BestCrypt] (commercial). This also applies to the storage of passwords, private keys and other data that can be used to access any of your Bitcoin balances.&lt;br /&gt;
&lt;br /&gt;
Assuming that you have installed the Windows Bitcoin client and run it at least once, the process is described below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;To mount the Bitcoin data directory on an encrypted drive&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol start=1 type=1&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the third-party disk image encryption program of your choice to create and mount an encrypted disk image of at least 5GB in size. This procedure stores the entire block chain database with the wallet.dat file so the required size of the encrypted disk image required may grow in the future.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the Bitcoin data directory, and copy the directory with all contents to the encrypted drive.&lt;br /&gt;
&amp;lt;p&amp;gt;For help finding this directory, see &amp;lt;b&amp;gt;[[Securing_your_wallet#Locating_Bitcoin_s_data_directory|Locating Bitcoin&#039;s Data Directory]]&amp;lt;/b&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a Windows shortcut that starts Bitcoin with the &amp;lt;code&amp;gt;-datadir&amp;lt;/code&amp;gt; parameter and specifies the encrypted drive and directory.&lt;br /&gt;
&amp;lt;p&amp;gt;For example, if you installed Bitcoin in the default directory, mounted your Bitcoin encrypted drive as &amp;lt;code&amp;gt;E:\&amp;lt;/code&amp;gt;, and stored your Bitcoin data directory on it as &amp;lt;code&amp;gt;Bitcoin&amp;lt;/code&amp;gt;, you would type the following command as the shortcut Target:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;C:\Program Files\Bitcoin\bitcoin.exe -datadir=E:\Bitcoin&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Bitcoin&#039;s settings and configure it &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; to start automatically when you start Windows.&lt;br /&gt;
&amp;lt;p&amp;gt;This is to allow you to mount the Bitcoin encrypted disk image before starting Bitcoin.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Shut down Bitcoin, and then restart it from the new shortcut.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After doing this, any time you want to use Bitcoin, you must first mount the Bitcoin encrypted disk image using the same drive designation, and then run Bitcoin from the shortcut that you created, so that it can find its data and your wallet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== General Solutions ===&lt;br /&gt;
&lt;br /&gt;
Your wallet.dat file is not encrypted by the Bitcoin program by default but the most current release of the Bitcoin client provides a method to encrypt with a passphrase the private keys stored in the wallet. Anyone who can access an unencrypted wallet can easily steal all of your coins.  Use one of these encryption programs if there is any chance someone might gain access to your wallet.&lt;br /&gt;
* [http://www.7-zip.org/ 7-zip] - Supports strongly-encrypted archives.&lt;br /&gt;
* [http://www.axantum.com/axcrypt/ AxCrypt by Axantum]&lt;br /&gt;
* [http://lrzip.kolivas.org lrzip] - Compression software for Linux and OSX that supports very high grade password protected encryption&lt;br /&gt;
* [http://www.truecrypt.org/ TrueCrypt] - Volume-based on-the-fly encryption (for advanced users)&lt;br /&gt;
&lt;br /&gt;
There is also a list of [[OpenSourceEncryptionSoftware|open source encryption software.]]&lt;br /&gt;
&lt;br /&gt;
Decrypting and encrypting the wallet.dat every time you start or quit the Bitcoin client can be &#039;&#039;tedious&#039;&#039; (and outright error-prone). If you want to keep your wallet encrypted (except while you&#039;re actually running the Bitcoin client), it&#039;s better to relegate the automation to a [http://lorelei.kaverit.org/bitcoin.sh small shell script] that handles the en/decryption and starting up Bitcoin client for you (Linux and OSX). &lt;br /&gt;
&lt;br /&gt;
There is also a method to print out and encrypt your wallet.dat as a special, scannable code. See details here: [[WalletPaperbackup]]&lt;br /&gt;
&lt;br /&gt;
==== Password Strength ====&lt;br /&gt;
Brute-force password cracking has come a long way. A password including capitals, numbers, and special characters with a length of 8 characters can be trivially solved now (using appropriate hardware). The recommended length is &#039;&#039;&#039;at least&#039;&#039;&#039; 12 characters long.  You can also use a multi-word password and there are techniques to increase the strength of your passwords without sacrificing usability. [http://www.baekdal.com/tips/password-security-usability The Usability of Passwords] &lt;br /&gt;
&lt;br /&gt;
However, simply using dictionary words is also insecure as it opens you up to a dictionary attack. If you use dictionary words, be sure to include random symbols and numbers in the mix as well.&lt;br /&gt;
&lt;br /&gt;
If you use keyfiles in addition to a password, it is unlikely that your encrypted file can ever be cracked using brute-force methods, even when even a 12 character password might be too short.&lt;br /&gt;
&lt;br /&gt;
Assume that any encrypted files you store online (eg. Gmail, Dropbox) will be stored somewhere forever and can never be erased.&lt;br /&gt;
&lt;br /&gt;
===== Choosing A Strong Password =====&lt;br /&gt;
Make sure you pick at least one character in each group:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Lowercase: abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
  Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;
  Number: 1234567890&lt;br /&gt;
  Symbol: `~!@#$%^&amp;amp;*()-_=+\|[{]};:&#039;&amp;quot;,&amp;lt;.&amp;gt;/? (space)&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;9 char = unsuitable for use&lt;br /&gt;
  09 char = insecure&lt;br /&gt;
  10 char = low security&lt;br /&gt;
  11 char = medium security&lt;br /&gt;
  12 char = good security (good enough for your wallet)&lt;br /&gt;
  13 char = very good, enough for anything.&lt;br /&gt;
&lt;br /&gt;
You might want to read [http://security.stackexchange.com/questions/662/what-is-your-way-to-create-good-passwords-that-can-actually-be-remembered What is your way to create good passwords that can actually be remembered?] and [http://security.stackexchange.com/questions/6095/xkcd-936-short-complex-password-or-long-dictionary-passphrase XKCD #936: Short complex password, or long dictionary passphrase?]&lt;br /&gt;
&lt;br /&gt;
== Backing up your wallet ==&lt;br /&gt;
See [[Backingup_your_wallet|Backing up your wallet]].&lt;br /&gt;
&lt;br /&gt;
==Erasing Plain-text Wallets==&lt;br /&gt;
&lt;br /&gt;
In most operating systems, including Windows, Linux, and Mac OS X, simply deleting a wallet.dat file will &#039;&#039;not&#039;&#039; generally destroy it. It is likely that advanced tools can still be used to recover the wallet.dat file, even after it has been deleted.&lt;br /&gt;
&lt;br /&gt;
The Linux &#039;&#039;&#039;shred&#039;&#039;&#039; command can be used to overwrite the wallet file with random data prior to deleting; this particular copy of the file will then be practically impossible to recover.  Using shred (and similar tools on Windows) however does not guarantee that still other copies don&#039;t exist somewhere hidden on your HD. That will depend on your system configuration and what packages you have installed. Some system restore and backup tools, for instance, create periodic snapshots of your  filesystem, duplicating your wallet.dat.&lt;br /&gt;
&lt;br /&gt;
In Mac OS, the equivalent of &#039;&#039;&#039;shred&#039;&#039;&#039; is &#039;&#039;&#039;srm&#039;&#039;&#039; (introduced in Leopard). Using the Finder to remove files, clicking &amp;quot;Secure Empty Trash&amp;quot; in the Finder menu will shred the contents of the trash can. As with any OS this doesn&#039;t guarantee that there are not other copies elsewhere on your system.&lt;br /&gt;
&lt;br /&gt;
For Windows, the built-in command &#039;&#039;cipher /W&#039;&#039; will shred all previously-deleted files. [http://www.cylog.org/utilities/cybershredder.jsp CyberShredder] can securely deleted individual files.&lt;br /&gt;
&lt;br /&gt;
==Online and Mobile Wallets==&lt;br /&gt;
&lt;br /&gt;
Thus far, this article has been discussing the security of a wallet file for Bitcoin-QT or bitcoind that is under your sole control. Additional wallets applications and services have become available that offer other features and more convenience but not without introducing additional risk. When storing bitcoins with an [[eWallet]] such as Instawallet or Easywallet, you are essentially storing your private keys or wallet with that provider. &lt;br /&gt;
&lt;br /&gt;
Online wallets have a number of pros and cons to consider. For example, you can access your wallet on any computer in the world, but depending on the service, your bitcoins may be lost if the service is compromised. &lt;br /&gt;
&lt;br /&gt;
Mobile wallet applications are available for Android devices that allow you to send bitcoins by QR code or NFC, but this opens up the possibility of loss if mobile device is compromised. It may be possible to encrypt and backup the wallet or private keys on a mobile device but it is not advisable to store a large amount of bitcoins there without doing your own research and testing.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Data directory]]&lt;br /&gt;
* [[How to import private keys]]&lt;br /&gt;
* [http://startbitcoin.com/how-to-create-a-secure-bitcoin-wallet/ Secure Bitcoin Wallet Tutorial]&lt;br /&gt;
* [[How to set up a secure offline savings wallet]]&lt;br /&gt;
* [http://arimaa.com/bitcoin/ Bitcoin Gateway - A Peer-to-peer Bitcoin Vault and Payment Network]&lt;br /&gt;
* [http://blog.cyplo.net/2012/04/01/bitcoin-wallet-recovery-photorec/ Find lost wallet eg. after disk format, using Photorec]&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
&lt;br /&gt;
[[de:Sichere deine Geldbörse]]&lt;br /&gt;
[[ru:Bitcoin и безопасность]]&lt;br /&gt;
[[es:Cómo asegurar su monedero]]&lt;br /&gt;
[[zh-cn:保护你的钱包]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Securing_your_wallet&amp;diff=43378</id>
		<title>Securing your wallet</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Securing_your_wallet&amp;diff=43378"/>
		<updated>2013-12-23T10:37:30Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: /* Hardware wallets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Wallet security can be broken down into two independent goals:&lt;br /&gt;
# Protecting your wallet against loss.&lt;br /&gt;
# Protecting your wallet against theft.&lt;br /&gt;
&lt;br /&gt;
In the case that your current wallet hasn&#039;t been protected adequately (e.g. put online with a weaker password):&lt;br /&gt;
# Making a new secure wallet, using appropriate long-term protection.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For a brief overview see also: [[Wallet Security Dos and Don&#039;ts|Wallet Security Dos and Don&#039;ts]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Paper Wallets==&lt;br /&gt;
[[Paper wallet]]s are a fairly simple way to store your bitcoins independent of a computer. When generated securely and stored on paper, or other offline storage media, a paper wallet decreases the chances of your bitcoins being stolen by hackers, or computer viruses.&lt;br /&gt;
&lt;br /&gt;
With each entry on a paper wallet, you are securing a sequence of secret numbers that is used to prove your right to spend the bitcoins assigned to one of your addresses. This secret number, called a [[private key]], is most commonly written as a sequence of fifty-one alphanumeric characters, beginning with a &#039;5&#039;.&lt;br /&gt;
&lt;br /&gt;
One way you can create a paper wallet is by visiting the [[BitAddress|BitAddress.org]] or [[BitcoinPaperWallet|BitcoinPaperWallet.com]] websites. These websites feature a free client-side paper wallet generator written in JavaScript. The HTML for either of these generators can be downloaded from GitHub and used on an offline computer. Using either of these generators online by directly connecting to their websites is relatively safe for storing smaller amounts of bitcoin, but extra precautions should be taken to ensure that keys are not compromised by spyware that may be monitoring browser activity. Blockchain.info offers a [https://blockchain.info/wallet/paper-tutorial tutorial on how to generate a paper wallet] with an online component so you can check your balance easily.&lt;br /&gt;
&lt;br /&gt;
To generate a safer paper wallet, first save the paper wallet generating code to a newly-formatted USB stick. Then &amp;quot;clean-boot&amp;quot; your computer with a bootable CD (such as a Linux Live CD) &#039;&#039;while disconnected from the Internet&#039;&#039;. Disconnecting from the Internet guarantees that that the paper wallet generator is truly self-contained and isn&#039;t communicating with an online service. Then insert the USB stick and open the wallet generator&#039;s HTML file from the web browser. Print your paper wallets or store them on external media (do not save them on the computer), and then shut down the computer. You may need to load an appropriate printer driver in order to print while booted from the live CD.&lt;br /&gt;
&lt;br /&gt;
A paper wallet includes at least one public bitcoin address and its corresponding private key. You can send bitcoins to the public address and they will be inaccessible until the private key is imported into a wallet. As of version 0.6.0, the bitcoin QT software has a command line feature called &amp;quot;importprivkey&amp;quot; that can load private keys. Online exchanges and wallets such as [[MtGox]], CoinBase and Blockchain.info have features for importing (or &amp;quot;sweeping&amp;quot;) private keys as well.&lt;br /&gt;
&lt;br /&gt;
Remember, spyware and viruses often attempt to monitor your computer activities so that their authors can steal from you. They are interested in passwords to online accounts, and anything of value. Bitcoin wallets and private keys are something of value that have already been targeted by malware. Paper wallets isolate you from much of this risk.&lt;br /&gt;
&lt;br /&gt;
If your computer is infected with spyware or viruses - even if there are no symptoms, or your antivirus isn&#039;t reporting anything - then anything you type, view, or save on your computer, could potentially be stolen by someone remotely controlling your computer. Your private key can then be intercepted while you enter it, so only enter a Bitcoin private key into your computer when your intent is to redeem its value &#039;&#039;immediately&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Hardware wallets ==&lt;br /&gt;
[[Hardware wallet]]s are a major effort to provide a good combination of enhanced security and usability.&lt;br /&gt;
&lt;br /&gt;
So far there is only [http://www.pi-wallet.com/ Pi Wallet] operational.&lt;br /&gt;
&lt;br /&gt;
==Importance of security updates==&lt;br /&gt;
&lt;br /&gt;
No software is perfect, and from time to time there may be security vulnerabilities found in your Bitcoin client as well.&lt;br /&gt;
Be sure you keep your client updated with the latest bug fixes, especially when a new vulnerability is discovered.&lt;br /&gt;
We maintain a [[CVEs|list a known vulnerabilities]] on this wiki - you can watch that page to get updates.&lt;br /&gt;
Note that you &#039;&#039;don&#039;t&#039;&#039; need to be running the latest major client version: some clients, including the popular Bitcoin-Qt, have older versions available with bugfix-only updates.&lt;br /&gt;
&lt;br /&gt;
==Securing the Bitcoin-QT or bitcoind wallet==&lt;br /&gt;
&lt;br /&gt;
Bitcoin transactions send Bitcoins to a specific public key. A Bitcoin address is an encoded hash of a public key. In order to use received Bitcoins, you need to have the private key matching the public key you received with. This is sort of like a super long password associated with an account (the account is the public key). Your Bitcoin wallet contains all of the private keys necessary for spending your received transactions. If you delete your wallet without a backup, then you no longer have the authorization information necessary to claim your coins, and the coins associated with those keys are lost forever.&lt;br /&gt;
&lt;br /&gt;
The wallet contains a pool of queued keys. By default there are 100 keys in the [[key pool]].  The size of the pool is configurable using the &amp;quot;-keypool&amp;quot; command line argument.  When you need an address for whatever reason (send, “new address”, generation, etc.), the key is not actually generated freshly, but taken from this pool. A brand new address is generated to fill the pool back to 100. So when a backup is first created, it has all of your old keys plus 100 unused keys. After sending a transaction, it has 99 unused keys. After a total of 100 new-key actions, you will start using keys that are not in your backup. Since the backup does not have the private keys necessary for authorizing spends of these coins, restoring from the old backup will cause you to lose Bitcoins.&lt;br /&gt;
&lt;br /&gt;
Creating a new address generates a new pair of public and private keys, which are added to your wallet. Each keypair is mostly random numbers, so they cannot be known prior to generation. If you backup your wallet and then create more than 100 new addresses, the keypair associated with the newest addresses will not be in the old wallet because the new keypairs are only known after creating them. Any coins received at these addresses will be lost if you restore from the backup.&lt;br /&gt;
&lt;br /&gt;
The situation is made somewhat more confusing because the receiving addresses shown in the UI are not the only keys in your wallet. Each Bitcoin generation is given a new public key, and, more importantly, each sent transaction also sends some number of Bitcoins back to yourself at a new key. When sending Bitcoins to anyone, you generate a new keypair for yourself and simultaneously send Bitcoins to your new public key and the actual recipient&#039;s public key. This is an anonymity feature – it makes tracking Bitcoin transactions much more difficult.&lt;br /&gt;
&lt;br /&gt;
So if you create a backup, do more than 100 things that cause a new key to be used, and then restore from the backup, some Bitcoins will be lost. Bitcoin has not deleted any keys (keys are never deleted) – it has created a new key that is not in your old backup and then sent Bitcoins to it.&lt;br /&gt;
&lt;br /&gt;
== Making a new wallet ==&lt;br /&gt;
&lt;br /&gt;
If a wallet or an encrypted wallet&#039;s password has been compromised, it is wise to create a new wallet and transfer the full balance of bitcoins to addresses contained only in the newly created wallet. Examples of ways a wallet may be compromised are through password re-use, minimal strength passwords, computer hack or virus attack.&lt;br /&gt;
&lt;br /&gt;
There are a number of ways to create a new wallet with Bitcoin-QT or bitcoind but this is a process that has been tested with bitcoind 0.6.3. We use the copy command to minimize the chance of any data loss but you are warned to make backups of any wallet.dat that holds a balance for you.&lt;br /&gt;
&lt;br /&gt;
:1. Shut down the Bitcoin program.&lt;br /&gt;
:2. Find and make a backup of the &amp;quot;compromised&amp;quot; wallet.dat file and rename it, perhaps adding a short description:&lt;br /&gt;
:::wallet.dat -&amp;gt;  wallet-compromised.dat&lt;br /&gt;
:Depending on your OS, the wallet file will be located at:&lt;br /&gt;
:::Windows: %APPDATA%\Bitcoin\&lt;br /&gt;
:::Linux: ~/.bitcoin/&lt;br /&gt;
:::Mac: ~/Library/Application Support/Bitcoin/&lt;br /&gt;
:3. Start the Bitcoin program and it will create a new wallet.dat. You may then encrypt the wallet as desired and make a new backup.&lt;br /&gt;
:4. Once you&#039;ve made a new wallet, you can obtain one or more addresses and copy them into a text editor. After obtaining the new address(es), shut down the Bitcoin program, make a backup of the new wallet.dat file and copy it to a new file named wallet-new.dat.&lt;br /&gt;
:5. Copy the wallet-compromised.dat file back to wallet.dat, start the Bitcoin program and transfer your balance to the new address(es) you put in your text editor. Once the balance is back to 0 for your compromised wallet, you may want to wait a couple minutes or for a confirmation or check block explorer to be sure the transactions have been broadcasted. Then you may shut down the Bitcoin program.&lt;br /&gt;
:6. Rename wallet.dat to wallet-compromised.dat. &lt;br /&gt;
:7. Rename wallet-new.dat to wallet.dat.&lt;br /&gt;
&lt;br /&gt;
You should now have a new wallet with all the bitcoins from the old wallet.&lt;br /&gt;
&lt;br /&gt;
==Making a secure workspace==&lt;br /&gt;
&lt;br /&gt;
If you are using your computer to handle bitcoins, a wallet, Bitcoin-related passwords, or Bitcoin private keys, you must take care that the system is free of malware, viruses, keyloggers, remote access tools, and other tools that may be used to make remote copies of any of the above. In the case that your computer is compromised, the precautions taken below may provide additional protection.&lt;br /&gt;
&lt;br /&gt;
===Debian-based Linux===&lt;br /&gt;
&lt;br /&gt;
The first step is to make a [http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/ new user]. In order for that new user to have an encrypted home directory, you&#039;ll first need the encryption utility. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install ecryptfs-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you&#039;re ready to create a new user&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo adduser --encrypt-home new_user_name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to come up with a [[#Choosing_A_Strong_Password|secure]] new password for that user.&lt;br /&gt;
&lt;br /&gt;
When you get to the prompt &#039;Enter the new value, or press ENTER for the default&#039;, just keep hitting ENTER.&lt;br /&gt;
&lt;br /&gt;
Then switch user to the new user.  To get to the new user you can use the switch user icon for your system, which on Ubuntu is in the &#039;System/Quit&#039; screen, or if there is no switch icon on your system you can log out and log back in as the new user.&lt;br /&gt;
&lt;br /&gt;
Since the home folder of this user is encrypted, if you&#039;re not logged in as that user, data that is saved there can&#039;t be browsed, even by a root user. If something goes wrong with your system, and you need to decrypt the new user&#039;s files, you&#039;ll need its decryption key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ecryptfs-unwrap-passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will ask you for your user&#039;s password and give you the decryption key. &#039;&#039;&#039;WRITE DOWN OR SAVE THE CODE IT RETURNS&#039;&#039;&#039; because you will need it if you ever have to pull your data off while the OS is not working. (You can run it again later if you need to, but run it now so that you can get your data if your Linux install gets botched.)&lt;br /&gt;
&lt;br /&gt;
The encrypted folder data is not encrypted while it&#039;s in memory, and so if it&#039;s ever sent to the swap partition it can be stolen from there unless that too is encrypted - be aware that this will mean you cannot use Hibernate anymore, as the bootloader won&#039;t be able to restore the hibernation data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ecryptfs-setup-swap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then click on a folder in the new user to display the file browser, then keep going up folders until you see the new user home directory, then right click to bring up the Properties dialog, then click on the Permissions tab, then in the Others section, set the folder access to None.&lt;br /&gt;
&lt;br /&gt;
For secure browsing, open Firefox, and then go into the Edit menu and click Preferences.  Starting from the left, click on the General tab, and in the &#039;Startup/When Firefox starts&#039; pop up menu, choose &#039;Show a Blank Page&#039;.  Then click on the Content tab, and deselect &#039;Load images automatically&#039; and deselect &#039;Enable JavaScript&#039;.  Then click on the Privacy tab, and in the &#039;History/Firefox will&#039; pop up menu, choose &#039;Never remember history&#039;.  Then click on the Security tab, and in the Passwords section, deselect &#039;Remember passwords for sites&#039; and deselect &#039;Use a master password&#039;.  Then click on the Advanced tab, then click on the Update tab, and then in the &#039;Automatically check for updates to&#039; section, deselect &#039;Add-ons&#039; and &#039;Search Engines&#039;.&lt;br /&gt;
&lt;br /&gt;
When JavaScript is disabled, the [http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/bitcoin-0.3.23-linux.tar.gz/download Linux download page] will not download automatically, so you&#039;ll have to click on the &#039;direct link&#039; part of the &amp;quot;Problems with the download? Please use this &#039;direct link&#039; or try another mirror.&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
===Mac===&lt;br /&gt;
This solution &#039;&#039;&#039;does not scale&#039;&#039;&#039;; the amount of needed space can grow beyond the image size.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Due to the frequency with which Windows computers are compromised, it is advised to encrypt your wallet or to keep your wallet on an encrypted disk image created by third-party software, such as [http://www.truecrypt.org/ TrueCrypt] (open source) or [http://www.jetico.com/encryption-bestcrypt/ Jetico BestCrypt] (commercial). This also applies to the storage of passwords, private keys and other data that can be used to access any of your Bitcoin balances.&lt;br /&gt;
&lt;br /&gt;
Assuming that you have installed the Windows Bitcoin client and run it at least once, the process is described below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;To mount the Bitcoin data directory on an encrypted drive&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol start=1 type=1&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the third-party disk image encryption program of your choice to create and mount an encrypted disk image of at least 5GB in size. This procedure stores the entire block chain database with the wallet.dat file so the required size of the encrypted disk image required may grow in the future.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the Bitcoin data directory, and copy the directory with all contents to the encrypted drive.&lt;br /&gt;
&amp;lt;p&amp;gt;For help finding this directory, see &amp;lt;b&amp;gt;[[Securing_your_wallet#Locating_Bitcoin_s_data_directory|Locating Bitcoin&#039;s Data Directory]]&amp;lt;/b&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a Windows shortcut that starts Bitcoin with the &amp;lt;code&amp;gt;-datadir&amp;lt;/code&amp;gt; parameter and specifies the encrypted drive and directory.&lt;br /&gt;
&amp;lt;p&amp;gt;For example, if you installed Bitcoin in the default directory, mounted your Bitcoin encrypted drive as &amp;lt;code&amp;gt;E:\&amp;lt;/code&amp;gt;, and stored your Bitcoin data directory on it as &amp;lt;code&amp;gt;Bitcoin&amp;lt;/code&amp;gt;, you would type the following command as the shortcut Target:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;C:\Program Files\Bitcoin\bitcoin.exe -datadir=E:\Bitcoin&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Bitcoin&#039;s settings and configure it &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; to start automatically when you start Windows.&lt;br /&gt;
&amp;lt;p&amp;gt;This is to allow you to mount the Bitcoin encrypted disk image before starting Bitcoin.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Shut down Bitcoin, and then restart it from the new shortcut.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After doing this, any time you want to use Bitcoin, you must first mount the Bitcoin encrypted disk image using the same drive designation, and then run Bitcoin from the shortcut that you created, so that it can find its data and your wallet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== General Solutions ===&lt;br /&gt;
&lt;br /&gt;
Your wallet.dat file is not encrypted by the Bitcoin program by default but the most current release of the Bitcoin client provides a method to encrypt with a passphrase the private keys stored in the wallet. Anyone who can access an unencrypted wallet can easily steal all of your coins.  Use one of these encryption programs if there is any chance someone might gain access to your wallet.&lt;br /&gt;
* [http://www.7-zip.org/ 7-zip] - Supports strongly-encrypted archives.&lt;br /&gt;
* [http://www.axantum.com/axcrypt/ AxCrypt by Axantum]&lt;br /&gt;
* [http://lrzip.kolivas.org lrzip] - Compression software for Linux and OSX that supports very high grade password protected encryption&lt;br /&gt;
* [http://www.truecrypt.org/ TrueCrypt] - Volume-based on-the-fly encryption (for advanced users)&lt;br /&gt;
&lt;br /&gt;
There is also a list of [[OpenSourceEncryptionSoftware|open source encryption software.]]&lt;br /&gt;
&lt;br /&gt;
Decrypting and encrypting the wallet.dat every time you start or quit the Bitcoin client can be &#039;&#039;tedious&#039;&#039; (and outright error-prone). If you want to keep your wallet encrypted (except while you&#039;re actually running the Bitcoin client), it&#039;s better to relegate the automation to a [http://lorelei.kaverit.org/bitcoin.sh small shell script] that handles the en/decryption and starting up Bitcoin client for you (Linux and OSX). &lt;br /&gt;
&lt;br /&gt;
There is also a method to print out and encrypt your wallet.dat as a special, scannable code. See details here: [[WalletPaperbackup]]&lt;br /&gt;
&lt;br /&gt;
==== Password Strength ====&lt;br /&gt;
Brute-force password cracking has come a long way. A password including capitals, numbers, and special characters with a length of 8 characters can be trivially solved now (using appropriate hardware). The recommended length is &#039;&#039;&#039;at least&#039;&#039;&#039; 12 characters long.  You can also use a multi-word password and there are techniques to increase the strength of your passwords without sacrificing usability. [http://www.baekdal.com/tips/password-security-usability The Usability of Passwords] &lt;br /&gt;
&lt;br /&gt;
However, simply using dictionary words is also insecure as it opens you up to a dictionary attack. If you use dictionary words, be sure to include random symbols and numbers in the mix as well.&lt;br /&gt;
&lt;br /&gt;
If you use keyfiles in addition to a password, it is unlikely that your encrypted file can ever be cracked using brute-force methods, even when even a 12 character password might be too short.&lt;br /&gt;
&lt;br /&gt;
Assume that any encrypted files you store online (eg. Gmail, Dropbox) will be stored somewhere forever and can never be erased.&lt;br /&gt;
&lt;br /&gt;
===== Choosing A Strong Password =====&lt;br /&gt;
Make sure you pick at least one character in each group:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Lowercase: abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
  Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;
  Number: 1234567890&lt;br /&gt;
  Symbol: `~!@#$%^&amp;amp;*()-_=+\|[{]};:&#039;&amp;quot;,&amp;lt;.&amp;gt;/? (space)&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;9 char = unsuitable for use&lt;br /&gt;
  09 char = insecure&lt;br /&gt;
  10 char = low security&lt;br /&gt;
  11 char = medium security&lt;br /&gt;
  12 char = good security (good enough for your wallet)&lt;br /&gt;
  13 char = very good, enough for anything.&lt;br /&gt;
&lt;br /&gt;
You might want to read [http://security.stackexchange.com/questions/662/what-is-your-way-to-create-good-passwords-that-can-actually-be-remembered What is your way to create good passwords that can actually be remembered?] and [http://security.stackexchange.com/questions/6095/xkcd-936-short-complex-password-or-long-dictionary-passphrase XKCD #936: Short complex password, or long dictionary passphrase?]&lt;br /&gt;
&lt;br /&gt;
== Backing up your wallet ==&lt;br /&gt;
See [[Backingup_your_wallet|Backing up your wallet]].&lt;br /&gt;
&lt;br /&gt;
==Erasing Plain-text Wallets==&lt;br /&gt;
&lt;br /&gt;
In most operating systems, including Windows, Linux, and Mac OS X, simply deleting a wallet.dat file will &#039;&#039;not&#039;&#039; generally destroy it. It is likely that advanced tools can still be used to recover the wallet.dat file, even after it has been deleted.&lt;br /&gt;
&lt;br /&gt;
The Linux &#039;&#039;&#039;shred&#039;&#039;&#039; command can be used to overwrite the wallet file with random data prior to deleting; this particular copy of the file will then be practically impossible to recover.  Using shred (and similar tools on Windows) however does not guarantee that still other copies don&#039;t exist somewhere hidden on your HD. That will depend on your system configuration and what packages you have installed. Some system restore and backup tools, for instance, create periodic snapshots of your  filesystem, duplicating your wallet.dat.&lt;br /&gt;
&lt;br /&gt;
In Mac OS, the equivalent of &#039;&#039;&#039;shred&#039;&#039;&#039; is &#039;&#039;&#039;srm&#039;&#039;&#039; (introduced in Leopard). Using the Finder to remove files, clicking &amp;quot;Secure Empty Trash&amp;quot; in the Finder menu will shred the contents of the trash can. As with any OS this doesn&#039;t guarantee that there are not other copies elsewhere on your system.&lt;br /&gt;
&lt;br /&gt;
For Windows, the built-in command &#039;&#039;cipher /W&#039;&#039; will shred all previously-deleted files. [http://www.cylog.org/utilities/cybershredder.jsp CyberShredder] can securely deleted individual files.&lt;br /&gt;
&lt;br /&gt;
==Online and Mobile Wallets==&lt;br /&gt;
&lt;br /&gt;
Thus far, this article has been discussing the security of a wallet file for Bitcoin-QT or bitcoind that is under your sole control. Additional wallets applications and services have become available that offer other features and more convenience but not without introducing additional risk. When storing bitcoins with an [[eWallet]] such as Instawallet or Easywallet, you are essentially storing your private keys or wallet with that provider. &lt;br /&gt;
&lt;br /&gt;
Online wallets have a number of pros and cons to consider. For example, you can access your wallet on any computer in the world, but depending on the service, your bitcoins may be lost if the service is compromised. &lt;br /&gt;
&lt;br /&gt;
Mobile wallet applications are available for Android devices that allow you to send bitcoins by QR code or NFC, but this opens up the possibility of loss if mobile device is compromised. It may be possible to encrypt and backup the wallet or private keys on a mobile device but it is not advisable to store a large amount of bitcoins there without doing your own research and testing.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Data directory]]&lt;br /&gt;
* [[How to import private keys]]&lt;br /&gt;
* [http://startbitcoin.com/how-to-create-a-secure-bitcoin-wallet/ Secure Bitcoin Wallet Tutorial]&lt;br /&gt;
* [[How to set up a secure offline savings wallet]]&lt;br /&gt;
* [http://arimaa.com/bitcoin/ Bitcoin Gateway - A Peer-to-peer Bitcoin Vault and Payment Network]&lt;br /&gt;
* [http://blog.cyplo.net/2012/04/01/bitcoin-wallet-recovery-photorec/ Find lost wallet eg. after disk format, using Photorec]&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
&lt;br /&gt;
[[de:Sichere deine Geldbörse]]&lt;br /&gt;
[[ru:Bitcoin и безопасность]]&lt;br /&gt;
[[es:Cómo asegurar su monedero]]&lt;br /&gt;
[[zh-cn:保护你的钱包]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Securing_your_wallet&amp;diff=43377</id>
		<title>Securing your wallet</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Securing_your_wallet&amp;diff=43377"/>
		<updated>2013-12-23T10:33:00Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: /* Hardware wallets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Wallet security can be broken down into two independent goals:&lt;br /&gt;
# Protecting your wallet against loss.&lt;br /&gt;
# Protecting your wallet against theft.&lt;br /&gt;
&lt;br /&gt;
In the case that your current wallet hasn&#039;t been protected adequately (e.g. put online with a weaker password):&lt;br /&gt;
# Making a new secure wallet, using appropriate long-term protection.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For a brief overview see also: [[Wallet Security Dos and Don&#039;ts|Wallet Security Dos and Don&#039;ts]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Paper Wallets==&lt;br /&gt;
[[Paper wallet]]s are a fairly simple way to store your bitcoins independent of a computer. When generated securely and stored on paper, or other offline storage media, a paper wallet decreases the chances of your bitcoins being stolen by hackers, or computer viruses.&lt;br /&gt;
&lt;br /&gt;
With each entry on a paper wallet, you are securing a sequence of secret numbers that is used to prove your right to spend the bitcoins assigned to one of your addresses. This secret number, called a [[private key]], is most commonly written as a sequence of fifty-one alphanumeric characters, beginning with a &#039;5&#039;.&lt;br /&gt;
&lt;br /&gt;
One way you can create a paper wallet is by visiting the [[BitAddress|BitAddress.org]] or [[BitcoinPaperWallet|BitcoinPaperWallet.com]] websites. These websites feature a free client-side paper wallet generator written in JavaScript. The HTML for either of these generators can be downloaded from GitHub and used on an offline computer. Using either of these generators online by directly connecting to their websites is relatively safe for storing smaller amounts of bitcoin, but extra precautions should be taken to ensure that keys are not compromised by spyware that may be monitoring browser activity. Blockchain.info offers a [https://blockchain.info/wallet/paper-tutorial tutorial on how to generate a paper wallet] with an online component so you can check your balance easily.&lt;br /&gt;
&lt;br /&gt;
To generate a safer paper wallet, first save the paper wallet generating code to a newly-formatted USB stick. Then &amp;quot;clean-boot&amp;quot; your computer with a bootable CD (such as a Linux Live CD) &#039;&#039;while disconnected from the Internet&#039;&#039;. Disconnecting from the Internet guarantees that that the paper wallet generator is truly self-contained and isn&#039;t communicating with an online service. Then insert the USB stick and open the wallet generator&#039;s HTML file from the web browser. Print your paper wallets or store them on external media (do not save them on the computer), and then shut down the computer. You may need to load an appropriate printer driver in order to print while booted from the live CD.&lt;br /&gt;
&lt;br /&gt;
A paper wallet includes at least one public bitcoin address and its corresponding private key. You can send bitcoins to the public address and they will be inaccessible until the private key is imported into a wallet. As of version 0.6.0, the bitcoin QT software has a command line feature called &amp;quot;importprivkey&amp;quot; that can load private keys. Online exchanges and wallets such as [[MtGox]], CoinBase and Blockchain.info have features for importing (or &amp;quot;sweeping&amp;quot;) private keys as well.&lt;br /&gt;
&lt;br /&gt;
Remember, spyware and viruses often attempt to monitor your computer activities so that their authors can steal from you. They are interested in passwords to online accounts, and anything of value. Bitcoin wallets and private keys are something of value that have already been targeted by malware. Paper wallets isolate you from much of this risk.&lt;br /&gt;
&lt;br /&gt;
If your computer is infected with spyware or viruses - even if there are no symptoms, or your antivirus isn&#039;t reporting anything - then anything you type, view, or save on your computer, could potentially be stolen by someone remotely controlling your computer. Your private key can then be intercepted while you enter it, so only enter a Bitcoin private key into your computer when your intent is to redeem its value &#039;&#039;immediately&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Hardware wallets ==&lt;br /&gt;
So far there is only [http://www.pi-wallet.com/ Pi Wallet] operational. [[Hardware wallet]]s are a major effort to provide a good combination of enhanced security and usability.&lt;br /&gt;
&lt;br /&gt;
==Importance of security updates==&lt;br /&gt;
&lt;br /&gt;
No software is perfect, and from time to time there may be security vulnerabilities found in your Bitcoin client as well.&lt;br /&gt;
Be sure you keep your client updated with the latest bug fixes, especially when a new vulnerability is discovered.&lt;br /&gt;
We maintain a [[CVEs|list a known vulnerabilities]] on this wiki - you can watch that page to get updates.&lt;br /&gt;
Note that you &#039;&#039;don&#039;t&#039;&#039; need to be running the latest major client version: some clients, including the popular Bitcoin-Qt, have older versions available with bugfix-only updates.&lt;br /&gt;
&lt;br /&gt;
==Securing the Bitcoin-QT or bitcoind wallet==&lt;br /&gt;
&lt;br /&gt;
Bitcoin transactions send Bitcoins to a specific public key. A Bitcoin address is an encoded hash of a public key. In order to use received Bitcoins, you need to have the private key matching the public key you received with. This is sort of like a super long password associated with an account (the account is the public key). Your Bitcoin wallet contains all of the private keys necessary for spending your received transactions. If you delete your wallet without a backup, then you no longer have the authorization information necessary to claim your coins, and the coins associated with those keys are lost forever.&lt;br /&gt;
&lt;br /&gt;
The wallet contains a pool of queued keys. By default there are 100 keys in the [[key pool]].  The size of the pool is configurable using the &amp;quot;-keypool&amp;quot; command line argument.  When you need an address for whatever reason (send, “new address”, generation, etc.), the key is not actually generated freshly, but taken from this pool. A brand new address is generated to fill the pool back to 100. So when a backup is first created, it has all of your old keys plus 100 unused keys. After sending a transaction, it has 99 unused keys. After a total of 100 new-key actions, you will start using keys that are not in your backup. Since the backup does not have the private keys necessary for authorizing spends of these coins, restoring from the old backup will cause you to lose Bitcoins.&lt;br /&gt;
&lt;br /&gt;
Creating a new address generates a new pair of public and private keys, which are added to your wallet. Each keypair is mostly random numbers, so they cannot be known prior to generation. If you backup your wallet and then create more than 100 new addresses, the keypair associated with the newest addresses will not be in the old wallet because the new keypairs are only known after creating them. Any coins received at these addresses will be lost if you restore from the backup.&lt;br /&gt;
&lt;br /&gt;
The situation is made somewhat more confusing because the receiving addresses shown in the UI are not the only keys in your wallet. Each Bitcoin generation is given a new public key, and, more importantly, each sent transaction also sends some number of Bitcoins back to yourself at a new key. When sending Bitcoins to anyone, you generate a new keypair for yourself and simultaneously send Bitcoins to your new public key and the actual recipient&#039;s public key. This is an anonymity feature – it makes tracking Bitcoin transactions much more difficult.&lt;br /&gt;
&lt;br /&gt;
So if you create a backup, do more than 100 things that cause a new key to be used, and then restore from the backup, some Bitcoins will be lost. Bitcoin has not deleted any keys (keys are never deleted) – it has created a new key that is not in your old backup and then sent Bitcoins to it.&lt;br /&gt;
&lt;br /&gt;
== Making a new wallet ==&lt;br /&gt;
&lt;br /&gt;
If a wallet or an encrypted wallet&#039;s password has been compromised, it is wise to create a new wallet and transfer the full balance of bitcoins to addresses contained only in the newly created wallet. Examples of ways a wallet may be compromised are through password re-use, minimal strength passwords, computer hack or virus attack.&lt;br /&gt;
&lt;br /&gt;
There are a number of ways to create a new wallet with Bitcoin-QT or bitcoind but this is a process that has been tested with bitcoind 0.6.3. We use the copy command to minimize the chance of any data loss but you are warned to make backups of any wallet.dat that holds a balance for you.&lt;br /&gt;
&lt;br /&gt;
:1. Shut down the Bitcoin program.&lt;br /&gt;
:2. Find and make a backup of the &amp;quot;compromised&amp;quot; wallet.dat file and rename it, perhaps adding a short description:&lt;br /&gt;
:::wallet.dat -&amp;gt;  wallet-compromised.dat&lt;br /&gt;
:Depending on your OS, the wallet file will be located at:&lt;br /&gt;
:::Windows: %APPDATA%\Bitcoin\&lt;br /&gt;
:::Linux: ~/.bitcoin/&lt;br /&gt;
:::Mac: ~/Library/Application Support/Bitcoin/&lt;br /&gt;
:3. Start the Bitcoin program and it will create a new wallet.dat. You may then encrypt the wallet as desired and make a new backup.&lt;br /&gt;
:4. Once you&#039;ve made a new wallet, you can obtain one or more addresses and copy them into a text editor. After obtaining the new address(es), shut down the Bitcoin program, make a backup of the new wallet.dat file and copy it to a new file named wallet-new.dat.&lt;br /&gt;
:5. Copy the wallet-compromised.dat file back to wallet.dat, start the Bitcoin program and transfer your balance to the new address(es) you put in your text editor. Once the balance is back to 0 for your compromised wallet, you may want to wait a couple minutes or for a confirmation or check block explorer to be sure the transactions have been broadcasted. Then you may shut down the Bitcoin program.&lt;br /&gt;
:6. Rename wallet.dat to wallet-compromised.dat. &lt;br /&gt;
:7. Rename wallet-new.dat to wallet.dat.&lt;br /&gt;
&lt;br /&gt;
You should now have a new wallet with all the bitcoins from the old wallet.&lt;br /&gt;
&lt;br /&gt;
==Making a secure workspace==&lt;br /&gt;
&lt;br /&gt;
If you are using your computer to handle bitcoins, a wallet, Bitcoin-related passwords, or Bitcoin private keys, you must take care that the system is free of malware, viruses, keyloggers, remote access tools, and other tools that may be used to make remote copies of any of the above. In the case that your computer is compromised, the precautions taken below may provide additional protection.&lt;br /&gt;
&lt;br /&gt;
===Debian-based Linux===&lt;br /&gt;
&lt;br /&gt;
The first step is to make a [http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/ new user]. In order for that new user to have an encrypted home directory, you&#039;ll first need the encryption utility. Run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install ecryptfs-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you&#039;re ready to create a new user&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo adduser --encrypt-home new_user_name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to come up with a [[#Choosing_A_Strong_Password|secure]] new password for that user.&lt;br /&gt;
&lt;br /&gt;
When you get to the prompt &#039;Enter the new value, or press ENTER for the default&#039;, just keep hitting ENTER.&lt;br /&gt;
&lt;br /&gt;
Then switch user to the new user.  To get to the new user you can use the switch user icon for your system, which on Ubuntu is in the &#039;System/Quit&#039; screen, or if there is no switch icon on your system you can log out and log back in as the new user.&lt;br /&gt;
&lt;br /&gt;
Since the home folder of this user is encrypted, if you&#039;re not logged in as that user, data that is saved there can&#039;t be browsed, even by a root user. If something goes wrong with your system, and you need to decrypt the new user&#039;s files, you&#039;ll need its decryption key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ecryptfs-unwrap-passphrase&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will ask you for your user&#039;s password and give you the decryption key. &#039;&#039;&#039;WRITE DOWN OR SAVE THE CODE IT RETURNS&#039;&#039;&#039; because you will need it if you ever have to pull your data off while the OS is not working. (You can run it again later if you need to, but run it now so that you can get your data if your Linux install gets botched.)&lt;br /&gt;
&lt;br /&gt;
The encrypted folder data is not encrypted while it&#039;s in memory, and so if it&#039;s ever sent to the swap partition it can be stolen from there unless that too is encrypted - be aware that this will mean you cannot use Hibernate anymore, as the bootloader won&#039;t be able to restore the hibernation data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ecryptfs-setup-swap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then click on a folder in the new user to display the file browser, then keep going up folders until you see the new user home directory, then right click to bring up the Properties dialog, then click on the Permissions tab, then in the Others section, set the folder access to None.&lt;br /&gt;
&lt;br /&gt;
For secure browsing, open Firefox, and then go into the Edit menu and click Preferences.  Starting from the left, click on the General tab, and in the &#039;Startup/When Firefox starts&#039; pop up menu, choose &#039;Show a Blank Page&#039;.  Then click on the Content tab, and deselect &#039;Load images automatically&#039; and deselect &#039;Enable JavaScript&#039;.  Then click on the Privacy tab, and in the &#039;History/Firefox will&#039; pop up menu, choose &#039;Never remember history&#039;.  Then click on the Security tab, and in the Passwords section, deselect &#039;Remember passwords for sites&#039; and deselect &#039;Use a master password&#039;.  Then click on the Advanced tab, then click on the Update tab, and then in the &#039;Automatically check for updates to&#039; section, deselect &#039;Add-ons&#039; and &#039;Search Engines&#039;.&lt;br /&gt;
&lt;br /&gt;
When JavaScript is disabled, the [http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.23/bitcoin-0.3.23-linux.tar.gz/download Linux download page] will not download automatically, so you&#039;ll have to click on the &#039;direct link&#039; part of the &amp;quot;Problems with the download? Please use this &#039;direct link&#039; or try another mirror.&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
===Mac===&lt;br /&gt;
This solution &#039;&#039;&#039;does not scale&#039;&#039;&#039;; the amount of needed space can grow beyond the image size.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
Due to the frequency with which Windows computers are compromised, it is advised to encrypt your wallet or to keep your wallet on an encrypted disk image created by third-party software, such as [http://www.truecrypt.org/ TrueCrypt] (open source) or [http://www.jetico.com/encryption-bestcrypt/ Jetico BestCrypt] (commercial). This also applies to the storage of passwords, private keys and other data that can be used to access any of your Bitcoin balances.&lt;br /&gt;
&lt;br /&gt;
Assuming that you have installed the Windows Bitcoin client and run it at least once, the process is described below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;To mount the Bitcoin data directory on an encrypted drive&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol start=1 type=1&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the third-party disk image encryption program of your choice to create and mount an encrypted disk image of at least 5GB in size. This procedure stores the entire block chain database with the wallet.dat file so the required size of the encrypted disk image required may grow in the future.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the Bitcoin data directory, and copy the directory with all contents to the encrypted drive.&lt;br /&gt;
&amp;lt;p&amp;gt;For help finding this directory, see &amp;lt;b&amp;gt;[[Securing_your_wallet#Locating_Bitcoin_s_data_directory|Locating Bitcoin&#039;s Data Directory]]&amp;lt;/b&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a Windows shortcut that starts Bitcoin with the &amp;lt;code&amp;gt;-datadir&amp;lt;/code&amp;gt; parameter and specifies the encrypted drive and directory.&lt;br /&gt;
&amp;lt;p&amp;gt;For example, if you installed Bitcoin in the default directory, mounted your Bitcoin encrypted drive as &amp;lt;code&amp;gt;E:\&amp;lt;/code&amp;gt;, and stored your Bitcoin data directory on it as &amp;lt;code&amp;gt;Bitcoin&amp;lt;/code&amp;gt;, you would type the following command as the shortcut Target:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;code&amp;gt;C:\Program Files\Bitcoin\bitcoin.exe -datadir=E:\Bitcoin&amp;lt;/code&amp;gt;&amp;lt;/blockquote&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open Bitcoin&#039;s settings and configure it &amp;lt;b&amp;gt;NOT&amp;lt;/b&amp;gt; to start automatically when you start Windows.&lt;br /&gt;
&amp;lt;p&amp;gt;This is to allow you to mount the Bitcoin encrypted disk image before starting Bitcoin.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Shut down Bitcoin, and then restart it from the new shortcut.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After doing this, any time you want to use Bitcoin, you must first mount the Bitcoin encrypted disk image using the same drive designation, and then run Bitcoin from the shortcut that you created, so that it can find its data and your wallet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== General Solutions ===&lt;br /&gt;
&lt;br /&gt;
Your wallet.dat file is not encrypted by the Bitcoin program by default but the most current release of the Bitcoin client provides a method to encrypt with a passphrase the private keys stored in the wallet. Anyone who can access an unencrypted wallet can easily steal all of your coins.  Use one of these encryption programs if there is any chance someone might gain access to your wallet.&lt;br /&gt;
* [http://www.7-zip.org/ 7-zip] - Supports strongly-encrypted archives.&lt;br /&gt;
* [http://www.axantum.com/axcrypt/ AxCrypt by Axantum]&lt;br /&gt;
* [http://lrzip.kolivas.org lrzip] - Compression software for Linux and OSX that supports very high grade password protected encryption&lt;br /&gt;
* [http://www.truecrypt.org/ TrueCrypt] - Volume-based on-the-fly encryption (for advanced users)&lt;br /&gt;
&lt;br /&gt;
There is also a list of [[OpenSourceEncryptionSoftware|open source encryption software.]]&lt;br /&gt;
&lt;br /&gt;
Decrypting and encrypting the wallet.dat every time you start or quit the Bitcoin client can be &#039;&#039;tedious&#039;&#039; (and outright error-prone). If you want to keep your wallet encrypted (except while you&#039;re actually running the Bitcoin client), it&#039;s better to relegate the automation to a [http://lorelei.kaverit.org/bitcoin.sh small shell script] that handles the en/decryption and starting up Bitcoin client for you (Linux and OSX). &lt;br /&gt;
&lt;br /&gt;
There is also a method to print out and encrypt your wallet.dat as a special, scannable code. See details here: [[WalletPaperbackup]]&lt;br /&gt;
&lt;br /&gt;
==== Password Strength ====&lt;br /&gt;
Brute-force password cracking has come a long way. A password including capitals, numbers, and special characters with a length of 8 characters can be trivially solved now (using appropriate hardware). The recommended length is &#039;&#039;&#039;at least&#039;&#039;&#039; 12 characters long.  You can also use a multi-word password and there are techniques to increase the strength of your passwords without sacrificing usability. [http://www.baekdal.com/tips/password-security-usability The Usability of Passwords] &lt;br /&gt;
&lt;br /&gt;
However, simply using dictionary words is also insecure as it opens you up to a dictionary attack. If you use dictionary words, be sure to include random symbols and numbers in the mix as well.&lt;br /&gt;
&lt;br /&gt;
If you use keyfiles in addition to a password, it is unlikely that your encrypted file can ever be cracked using brute-force methods, even when even a 12 character password might be too short.&lt;br /&gt;
&lt;br /&gt;
Assume that any encrypted files you store online (eg. Gmail, Dropbox) will be stored somewhere forever and can never be erased.&lt;br /&gt;
&lt;br /&gt;
===== Choosing A Strong Password =====&lt;br /&gt;
Make sure you pick at least one character in each group:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  Lowercase: abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
  Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;
  Number: 1234567890&lt;br /&gt;
  Symbol: `~!@#$%^&amp;amp;*()-_=+\|[{]};:&#039;&amp;quot;,&amp;lt;.&amp;gt;/? (space)&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;9 char = unsuitable for use&lt;br /&gt;
  09 char = insecure&lt;br /&gt;
  10 char = low security&lt;br /&gt;
  11 char = medium security&lt;br /&gt;
  12 char = good security (good enough for your wallet)&lt;br /&gt;
  13 char = very good, enough for anything.&lt;br /&gt;
&lt;br /&gt;
You might want to read [http://security.stackexchange.com/questions/662/what-is-your-way-to-create-good-passwords-that-can-actually-be-remembered What is your way to create good passwords that can actually be remembered?] and [http://security.stackexchange.com/questions/6095/xkcd-936-short-complex-password-or-long-dictionary-passphrase XKCD #936: Short complex password, or long dictionary passphrase?]&lt;br /&gt;
&lt;br /&gt;
== Backing up your wallet ==&lt;br /&gt;
See [[Backingup_your_wallet|Backing up your wallet]].&lt;br /&gt;
&lt;br /&gt;
==Erasing Plain-text Wallets==&lt;br /&gt;
&lt;br /&gt;
In most operating systems, including Windows, Linux, and Mac OS X, simply deleting a wallet.dat file will &#039;&#039;not&#039;&#039; generally destroy it. It is likely that advanced tools can still be used to recover the wallet.dat file, even after it has been deleted.&lt;br /&gt;
&lt;br /&gt;
The Linux &#039;&#039;&#039;shred&#039;&#039;&#039; command can be used to overwrite the wallet file with random data prior to deleting; this particular copy of the file will then be practically impossible to recover.  Using shred (and similar tools on Windows) however does not guarantee that still other copies don&#039;t exist somewhere hidden on your HD. That will depend on your system configuration and what packages you have installed. Some system restore and backup tools, for instance, create periodic snapshots of your  filesystem, duplicating your wallet.dat.&lt;br /&gt;
&lt;br /&gt;
In Mac OS, the equivalent of &#039;&#039;&#039;shred&#039;&#039;&#039; is &#039;&#039;&#039;srm&#039;&#039;&#039; (introduced in Leopard). Using the Finder to remove files, clicking &amp;quot;Secure Empty Trash&amp;quot; in the Finder menu will shred the contents of the trash can. As with any OS this doesn&#039;t guarantee that there are not other copies elsewhere on your system.&lt;br /&gt;
&lt;br /&gt;
For Windows, the built-in command &#039;&#039;cipher /W&#039;&#039; will shred all previously-deleted files. [http://www.cylog.org/utilities/cybershredder.jsp CyberShredder] can securely deleted individual files.&lt;br /&gt;
&lt;br /&gt;
==Online and Mobile Wallets==&lt;br /&gt;
&lt;br /&gt;
Thus far, this article has been discussing the security of a wallet file for Bitcoin-QT or bitcoind that is under your sole control. Additional wallets applications and services have become available that offer other features and more convenience but not without introducing additional risk. When storing bitcoins with an [[eWallet]] such as Instawallet or Easywallet, you are essentially storing your private keys or wallet with that provider. &lt;br /&gt;
&lt;br /&gt;
Online wallets have a number of pros and cons to consider. For example, you can access your wallet on any computer in the world, but depending on the service, your bitcoins may be lost if the service is compromised. &lt;br /&gt;
&lt;br /&gt;
Mobile wallet applications are available for Android devices that allow you to send bitcoins by QR code or NFC, but this opens up the possibility of loss if mobile device is compromised. It may be possible to encrypt and backup the wallet or private keys on a mobile device but it is not advisable to store a large amount of bitcoins there without doing your own research and testing.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
* [[Data directory]]&lt;br /&gt;
* [[How to import private keys]]&lt;br /&gt;
* [http://startbitcoin.com/how-to-create-a-secure-bitcoin-wallet/ Secure Bitcoin Wallet Tutorial]&lt;br /&gt;
* [[How to set up a secure offline savings wallet]]&lt;br /&gt;
* [http://arimaa.com/bitcoin/ Bitcoin Gateway - A Peer-to-peer Bitcoin Vault and Payment Network]&lt;br /&gt;
* [http://blog.cyplo.net/2012/04/01/bitcoin-wallet-recovery-photorec/ Find lost wallet eg. after disk format, using Photorec]&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
&lt;br /&gt;
[[de:Sichere deine Geldbörse]]&lt;br /&gt;
[[ru:Bitcoin и безопасность]]&lt;br /&gt;
[[es:Cómo asegurar su monedero]]&lt;br /&gt;
[[zh-cn:保护你的钱包]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Hardware_wallet&amp;diff=43368</id>
		<title>Hardware wallet</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Hardware_wallet&amp;diff=43368"/>
		<updated>2013-12-22T18:43:53Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A &#039;&#039;&#039;hardware wallet&#039;&#039;&#039; is a device that stores a part of a user&#039;s [[wallet]] securely in mostly-offline hardware. They have major advantages over other wallet types:&lt;br /&gt;
&lt;br /&gt;
* the key is often stored in a protected area of a microcontroller, and cannot be transferred out of the device in plaintext&lt;br /&gt;
* immune to computer viruses that steal from software wallets&lt;br /&gt;
* can be used securely and interactively, as opposed to a [[paper wallet]] which must be imported to software at some point&lt;br /&gt;
* much of the time, the software is open source, allowing a user to validate the entire operation of the device&lt;br /&gt;
&lt;br /&gt;
This page is an attempt to summarize all the known developments of hardware wallets that can use Bitcoin as part of their operation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Purchasable hardware wallets ==&lt;br /&gt;
&lt;br /&gt;
=== Pi Wallet - cold storage ===&lt;br /&gt;
[[File:Piwallet.jpeg|300px|thumb|left|Pi-Wallet]]&lt;br /&gt;
[http://www.pi-wallet.com/ Pi-Wallet Shop]&lt;br /&gt;
&lt;br /&gt;
[http://www.pi-wallet.com/pages/what-is-pi-wallet Further informations about Pi-Wallet]&lt;br /&gt;
&lt;br /&gt;
The Pi-Wallet is comparable to an offline Notebook. &lt;br /&gt;
&lt;br /&gt;
However it combines all features of the Armory bitcoin client (e.g. offline transaction signing) with the advantages of a tiny computer.&lt;br /&gt;
&lt;br /&gt;
To sign offline-transaction you will need an (unused) USB stick.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Not purchasable hardware wallets ==&lt;br /&gt;
&lt;br /&gt;
=== BitcoinCard Megion Technologies-Card based wallet ===&lt;br /&gt;
[[File:Bitcoincard-medley-large.jpg|400px|thumb|left|Bitcoin Card]]&lt;br /&gt;
[http://www.bitcoincard.org/ Bitcoincard Home Page]&lt;br /&gt;
&lt;br /&gt;
[http://blog.bitinstant.com/blog/2012/6/19/our-discovery-in-vienna-the-bitcoin-card.html Excellent review by evoorhees]&lt;br /&gt;
&lt;br /&gt;
Incorporates a e-paper display, keypad, and radio (custom ISM band protocol.) Unfortunately it is fairly limited in terms of transaction I/O, requiring a radio gateway or another bitcoincard wherever funds need to be transferred.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
=== Trezor - slush/stick hardware wallet ===&lt;br /&gt;
[[File:Trezor-wallet-casing.jpg|300px|thumb|left|Trezor Wallet (case)]]&lt;br /&gt;
&lt;br /&gt;
[https://bitcointalk.org/index.php?topic=122438.0 Hardware wallet project]&lt;br /&gt;
&lt;br /&gt;
A simple transaction-signing device, requires software on the receiving side to send and receive transactions. Talks over USB, OLED display, confirm/cancel buttons.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
=== BitSafe - allten/someone42&#039;s hardware wallet ===&lt;br /&gt;
[[File:Bitsafe-wallet-sizecompare.jpg|200px|thumb|left|Bitsafe wallet]]&lt;br /&gt;
[https://bitcointalk.org/index.php?topic=127587.0 BitSafe Hardware Wallet Development - BOM Ready - 50 kits being prepared]&lt;br /&gt;
&lt;br /&gt;
Signing transactions only, requires USB host software for transactions &amp;amp; USB power. Has a OLED display and Confirm/Cancel buttons. Evolved out of someone42&#039;s prototype below, and has significant contributions from someone42 as well.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
=== someone42&#039;s original prototype ===&lt;br /&gt;
[[File:Someone42-wallet-prototype.jpg|300px|thumb|left|someone42&#039;s original prototype]]&lt;br /&gt;
[https://bitcointalk.org/index.php?topic=78614.0 Hardware Bitcoin wallet - a minimal Bitcoin wallet for embedded devices]&lt;br /&gt;
&lt;br /&gt;
Signing transactions only, requires USB host software for transactions &amp;amp; USB power. All work is rolled into the above BitSafe wallet currently.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
=== BTChip btchip USB based transaction signer and private key holder ===&lt;br /&gt;
[[File:Btchip-wallet.jpg|300px|thumb|left|BTChip]]&lt;br /&gt;
[https://bitcointalk.org/index.php?topic=134999.0 ANN Smartcard wallet project + btchip implementation (no reader required)]&lt;br /&gt;
&lt;br /&gt;
[http://www.btchip.com www.btchip.com]&lt;br /&gt;
&lt;br /&gt;
USB smartcard dedicated to bitcoins, no keypad or display so trust in the host device is required. An improvement has been implemented that uses a secret value known to the user during the transaction for additional security.&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
=== Other/Defunct but with good discussion: ===&lt;br /&gt;
* natman3400&#039;s BitClip Jun 2011 [https://bitcointalk.org/index.php?topic=24852.0 https://bitcointalk.org/index.php?topic=24852.0]&lt;br /&gt;
:Seems to have gone defunct around Dec 2011. Some good ideas though and seemed to have started on execution.&lt;br /&gt;
* jim618 hardware wallet proposal Apr 2012 [https://bitcointalk.org/index.php?topic=77553.0 Dedicated bitcoin devices - dealing with untrusted networks]&lt;br /&gt;
:Great discussion and good ideas from jim618. Also linked the following video:&lt;br /&gt;
* Prof. Clemens Cap&#039;s hardware wallet? (video:)[https://www.youtube.com/watch?v=IavQ-Wc8S1U Clemens Cap about electronic bitcoin wallet at EuroBit]&lt;br /&gt;
:Clemens Cap of Uni Rostock explains the Electronic Bitcoin wallet device he&#039;s working on. It&#039;s based on adafruit microtouch device.&lt;br /&gt;
* ripper234&#039;s discussion based on Yubikeys Aug 2012 [https://bitcointalk.org/index.php?topic=99492 Having a YUBIKEY as one of the parties for m-of-n signatures]&lt;br /&gt;
:The use of Yubikeys. They only support symmetric crypto, so you&#039;d have to trust the host device.&lt;br /&gt;
* kalleguld&#039;s hardware wallet proposal Oct 2012 [https://bitcointalk.org/index.php?topic=115294.0 Proposal: Hardware wallet (Win 3 BTC)]&lt;br /&gt;
* Vaporware: Matthew N Wright&#039;s ellet [https://bitcointalk.org/index.php?topic=85931.0 ANN The world&#039;s first handheld Bitcoin device, the Ellet!] (Vaporware)&lt;br /&gt;
&lt;br /&gt;
== Smart Card based wallets ==&lt;br /&gt;
This type of device requires complete trust in the host device, as there is no method for user input.&lt;br /&gt;
See [[Smart card wallet]]&lt;br /&gt;
&lt;br /&gt;
== Related Resources ==&lt;br /&gt;
* slush&#039;s Hardware wallet wire protocol discussion: [https://bitcointalk.org/index.php?topic=125383.0 Hardware wallet wire protocol]&lt;br /&gt;
* kjj&#039;s Todo List discussion for client protocol requirements: [https://bitcointalk.org/index.php?topic=19080.msg272348#msg272348 in topic Re: Split private keys]&lt;br /&gt;
* paybitcoin&#039;s original post: [https://bitcointalk.org/index.php?topic=134277.0 Hardware Wallet Roundup]&lt;br /&gt;
* [https://bitcointalk.org/index.php?topic=135090.0 This thread] about editing this very wiki entry.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
[[Category:Wallets]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=File:Piwallet.jpeg&amp;diff=43367</id>
		<title>File:Piwallet.jpeg</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=File:Piwallet.jpeg&amp;diff=43367"/>
		<updated>2013-12-22T18:24:20Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: Picture of Pi-Wallet 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Picture of Pi-Wallet 2&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|GFDL|cc-by-3.0|migration=redundant}}&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=File:Pi-Wallet2.jpg&amp;diff=43366</id>
		<title>File:Pi-Wallet2.jpg</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=File:Pi-Wallet2.jpg&amp;diff=43366"/>
		<updated>2013-12-22T18:16:56Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: Pi-Wallet picture 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Pi-Wallet picture 2&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|GFDL|cc-by-3.0|migration=redundant}}&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=File:Pi-Wallet1.jpg&amp;diff=43365</id>
		<title>File:Pi-Wallet1.jpg</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=File:Pi-Wallet1.jpg&amp;diff=43365"/>
		<updated>2013-12-22T17:52:05Z</updated>

		<summary type="html">&lt;p&gt;Eorituz: Picture of Pi-Wallet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Picture of Pi-Wallet&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{self|GFDL|cc-by-3.0|migration=redundant}}&lt;/div&gt;</summary>
		<author><name>Eorituz</name></author>
	</entry>
</feed>