How to get a wallet address and set label via RPC?

0

3

I'm familiar with the basic RPC commands, but I'm having trouble retrieving/adding an address to a wallet, using purely RPC calls (i.e. bitcoind only, not bitcoin-qt).

My understanding is that addresses are associated with accounts, but I'm unsure what role "accounts" play, and how to create new ones etc.

In pseudocode, this is what I want to be able to do:

if (count(getAddressesByLabel("donations")) == 0) {
    address = wallet.createBitcoinAddress();
    address.setLabel("donations");
}

donationAddress = getAddressesByLabel("donations"))

Craig Watson

Posted 2015-01-03T01:18:34.487

Reputation: 113

Don't build your accounting system on accounts. Accounts are more of a legacy feature, their future is uncertain, they are vulnerable to hardware failures and as such using them directly for accounting third party funds is a really bad idea.George Kimionis 2015-01-03T15:43:59.013

@GeorgeKimionis - do you have any documentation for those changes and views? Surely labels are backed up with the wallet?Craig Watson 2015-01-03T18:57:14.447

Labels are backed up along with their corresponding addresses. Please take a look at: https://github.com/bitcoin/bitcoin/issues/3816.

George Kimionis 2015-01-03T19:34:28.670

Answers

6

You may have already read this, but make sure you read this if you want to know about how the accounts feature of the core client works: https://en.bitcoin.it/wiki/Accounts_explained. (It's somewhat of a legacy feature.)

Are you looking to be able to do this manually with the RPC methods, or automated?

For manually, do:

bitcoin-cli getaddressesbyaccount "donations"

If the JSON array returned is empty, then no address is associated. To create a new bitcoin address with that label, do:

bitcoin-cli getnewaddress "donations"

To get an address for the "donations" account, do:

bitcoin-cli getaccountaddress "donations"

morsecoder

Posted 2015-01-03T01:18:34.487

Reputation: 12 624