19

I have so far enjoyed the experience of learning about Bitcoins, mining, etc. I've setup a bitcoin daemon in hopes of developing a few apps and services in the near future. However, there is one thing that has been bothering me for a few days now and I can't seem to find an answer for.

There is a 'move' command in the client/API calls list that will "Move from one account in your wallet to another". I read somewhere that this DOES NOT flow through the block chain. If that is the case, then HOW can you actually use those coins in the new account/address when there is no public record of the transfer.

Thanks for your help

o0'.
  • 5,240
  • 6
  • 38
  • 66
Shomari
  • 665
  • 1
  • 6
  • 20

1 Answers1

14

Accounts are an internal bookkeeping mechanism of the Bitcoin client. They are not the same thing as addresses. When you move from one account to another, the coins remain in the same address, and if you need to spend them they will be spent from the same address. The only thing moving does is subtract a number from one account and adding to another - both of which are just things the client displays and nobody else on the network has any knowledge of. An account balance can also be negative.

Accounts are good if you run a shared eWallet and want to track users' balances (and "move" can be used to make an intra-bank transfer), or if you want to keep track of different purposes of savings (so you can direct all incoming coins to an account called "unallocated" and then move 100 BTC to the account "college fund"; if you make sure to designate all outgoing transfers as coming from "unallocated", you will not accidentally dip into the college funds, no matter in which addresses your bitcoins physically sit).

Meni Rosenfeld
  • 19,650
  • 35
  • 70
  • I just don't get _WHY_ you would want to do this. Wouldn't this then put the account balance out-of-sync with the _TOTAL_ balance of the addresses _IN_ the account (e.g. during JSON-RPC queries)? I'd like to experiment with this feature. Can you tell me the proper way to actually create a new account? Is there any way to then _DELETE_ said account? – Shomari Dec 08 '12 at 08:34
  • @nyusternie: Again, an account is not a collection of addresses. It is a way to designate coins for specific purposes and is independent of the addresses which contain the coins. You can however associate addresses to an account so that funds entering these addresses are automatically credited to the account. I have already given some use cases. Think about how a shared eWallet (e.g. Mtgox) works and it will be clearer. – Meni Rosenfeld Dec 08 '12 at 16:08
  • @nyusternie: A list of commands is available at https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list. AFAIK you don't need to explicitly create an account, it will be created automatically when you give a command that references it. I don't know of a way to delete accounts. – Meni Rosenfeld Dec 08 '12 at 16:09
  • Accounts are "independent of the addresses which contain the coins". Okay, now this makes sense. Thanks for the extra explanation. I really appreciate it. – Shomari Dec 09 '12 at 00:36