<p>Every bitcoin client knows about every account. You don't need the keys that control the funds in an address to monitor it.</p>

<p>1) Give your online server a list of your cold storage addresses.</p>

<p>2) Periodically check the balance of those addresses, perhaps using the command <code>bitcoind getbalance [account]</code></p>

<p><a href="https://en.bitcoin.it/wiki/Api" rel="nofollow">API reference</a></p>

<p><strong>Edit:</strong> Unfortunately, I was using the command I posted incorrectly. I think this functionality might not be in bitcoind. However, there is an open-source tool called <a href="https://github.com/jtobey/bitcoin-abe" rel="nofollow">Abe</a> that's worth looking into.</p>

CC BY-SA 3.0
2012-11-26T07:52:10.830Z
Please don't confuse Addresses with Accounts (https://en.bitcoin.it/wiki/Accounts_explained). Information about addresses are included in Bitcoin Blocks, information about accounts are not. They are specific to a client instance.
ThePiachu
CC BY-SA 3.0
2012-11-26T09:44:54.190Z
@ThePiachu, you are correct and I have edited my answer.
Nick ODell
CC BY-SA 3.0
2012-11-26T03:50:14.007Z
2012-11-26T09:44:18.153Z
2012-11-26T09:44:18.153Z
Nick ODell
<p>Since version 0.10.0 bitcoind has support for watch-only addresses.</p>

<p>Here is the text from the release notes:</p>

<blockquote>
  <h2>Watch-only wallet support</h2>
  
  <p>The wallet can now track transactions to and from wallets for which
  you know all addresses (or scripts), even without the private keys.</p>
  
  <p>This can be used to track payments without needing the private keys
  online on a possibly vulnerable system. In addition, it can help for
  (manual) construction of multisig transactions where you are only one
  of the signers.</p>
  
  <p>One new RPC, <code>importaddress</code>, is added which functions similarly to
  <code>importprivkey</code>, but instead takes an address or script (in
  hexadecimal) as argument.  After using it, outputs credited to this
  address or script are considered to be received, and transactions
  consuming these outputs will be considered to be sent.</p>
  
  <p>The following RPCs have optional support for watch-only: <code>getbalance</code>,
  <code>listreceivedbyaddress</code>, <code>listreceivedbyaccount</code>, <code>listtransactions</code>,
  <code>listaccounts</code>, <code>listsinceblock</code>, <code>gettransaction</code>. See the RPC
  documentation for those methods for more information.</p>
  
  <p>Compared to using <code>getrawtransaction</code>, this mechanism does not require
  <code>-txindex</code>, scales better, integrates better with the wallet, and is
  compatible with future block chain pruning functionality. It does mean
  that all relevant addresses need to added to the wallet before the
  payment, though.</p>
</blockquote>

<p>Try <code>bitcoin-cli help importaddress</code> (and the help texts for the other relevant commands listed above) for the details.</p>

CC BY-SA 3.0
2015-02-27T14:56:24.647Z
2015-02-27T14:56:24.647Z
Dr.Haribo
<p>Say, for security reasons, that a bitcoin business has an online wallet (aka hot wallet) with enough coins for day-to-day operations. The rest of the funds are in an offline wallet (aka cold wallet or cold storage).</p>

<p>How can the online servers detect when coins are sent to the offline wallet?</p>

<p>Can this be (easily?) done with bitcoind or is another bitcoin client needed?</p>

<p>Technical details may be interesting, but I think more important is how a merchant can achieve this sort of functionality.</p>

CC BY-SA 3.0
2012-11-23T14:57:07.833Z
+1 I would be interested in seeing more details of the linked question with regard to the specifics of this question.
makerofthings7
CC BY-SA 3.0
2012-10-21T21:11:27.757Z
possible duplicate of [Monitor all transactions on bitcoin network - API](http://bitcoin.stackexchange.com/questions/4265/monitor-all-transactions-on-bitcoin-network-api)
Stephen Gornick
CC BY-SA 3.0
2015-02-27T15:37:00.517Z
Armory appears to have a watch-only functionality: See [How to sign a transaction using only an offline computer?](http://bitcoin.stackexchange.com/a/8104/5406)
Murch
<transactions><security><coldstorage>
How can an online system detect coins sent to its offline (cold) wallet?
Dr.Haribo
# How can an online system detect coins sent to its offline (cold) wallet?

(Asked by: username_0 on 2012-10-21)

Say, for security reasons, that a bitcoin business has an online wallet (aka hot wallet) with enough coins for day-to-day operations. The rest of the funds are in an offline wallet (aka cold wallet or cold storage).

How can the online servers detect when coins are sent to the offline wallet?

Can this be (easily?) done with bitcoind or is another bitcoin client needed?

Technical details may be interesting, but I think more important is how a merchant can achieve this sort of functionality.

**Tags:** transactions, security, coldstorage

> **Comments:**
> **username_2**: possible duplicate of [Monitor all transactions on bitcoin network - API](http://bitcoin.stackexchange.com/questions/4265/monitor-all-transactions-on-bitcoin-network-api)  
> **username_1**: +1 I would be interested in seeing more details of the linked question with regard to the specifics of this question.  
> **username_3**: Armory appears to have a watch-only functionality: See [How to sign a transaction using only an offline computer?](http://bitcoin.stackexchange.com/a/8104/5406)  

---

## 2 answers

### Answer by username_0 on 2015-02-27. Score: 3 | Accepted answer

Since version 0.10.0 bitcoind has support for watch-only addresses.

Here is the text from the release notes:

> ## Watch-only wallet support
>
> The wallet can now track transactions to and from wallets for which
> you know all addresses (or scripts), even without the private keys.
>
> This can be used to track payments without needing the private keys
> online on a possibly vulnerable system. In addition, it can help for
> (manual) construction of multisig transactions where you are only one
> of the signers.
>
> One new RPC, `importaddress`, is added which functions similarly to
> `importprivkey`, but instead takes an address or script (in
> hexadecimal) as argument. After using it, outputs credited to this
> address or script are considered to be received, and transactions
> consuming these outputs will be considered to be sent.
>
> The following RPCs have optional support for watch-only: `getbalance`,
> `listreceivedbyaddress`, `listreceivedbyaccount`, `listtransactions`,
> `listaccounts`, `listsinceblock`, `gettransaction`. See the RPC
> documentation for those methods for more information.
>
> Compared to using `getrawtransaction`, this mechanism does not require
> `-txindex`, scales better, integrates better with the wallet, and is
> compatible with future block chain pruning functionality. It does mean
> that all relevant addresses need to added to the wallet before the
> payment, though.

Try `bitcoin-cli help importaddress` (and the help texts for the other relevant commands listed above) for the details.


---

### Answer by username_4 on 2012-11-26. Score: 2

Every bitcoin client knows about every account. You don't need the keys that control the funds in an address to monitor it.

1) Give your online server a list of your cold storage addresses.

2) Periodically check the balance of those addresses, perhaps using the command `bitcoind getbalance [account]`

[API reference](https://en.bitcoin.it/wiki/Api)

**Edit:** Unfortunately, I was using the command I posted incorrectly. I think this functionality might not be in bitcoind. However, there is an open-source tool called [Abe](https://github.com/jtobey/bitcoin-abe) that's worth looking into.

> **Comments:**
> **username_5**: Please don't confuse Addresses with Accounts (https://en.bitcoin.it/wiki/Accounts_explained). Information about addresses are included in Bitcoin Blocks, information about accounts are not. They are specific to a client instance.  
> **username_4**: @username_5, you are correct and I have edited my answer.  

---

