<p>As you found out already; private and public keys are not necessarily paired 1-to-1. In fact, using the original Bitcoin client you can just run the <a href="https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list" rel="nofollow"><code>getnewaddress</code></a> to generate a new address belonging to your wallet, which is controlled by only one private key.</p>

CC BY-SA 3.0
2014-12-24T20:53:51.843Z
That's not true. bitcoind keeps one private key for each address. `getnewaddress` generates a new keypair (or gets one from the keypool) and derives a single address from it.
Nick ODell
CC BY-SA 3.0
2014-12-24T21:15:19.613Z
as i knew The hd-wallet using a master key-pair and then using the public key to generate address and each address have a child key-pair too that can be used like a separate wallet! but with master public key we can see all transaction for child public key and address! https://d3qlb4e6ron71v.cloudfront.net/blog/wp-content/uploads/2014/02/derivation-500x308.png
Osiris
CC BY-SA 3.0
2014-12-24T19:37:02.223Z
2014-12-24T19:37:02.223Z
gosuto
<p>I am new to Bitcoin; our company wants to use bitcoin for payments.</p>

<p>We need to create a address for each transaction. so we need to create many public address.</p>

<p>First, I need to generate many public and private key-pairs. This is going to be very hard to do in a secure way!</p>

<p>I read another <a href="https://bitcoin.stackexchange.com/questions/18102/does-a-wallet-containing-multiple-addresses-have-a-single-private-key">question</a> that said with hierarchical deterministic wallets we can do something like creating one key-pair and generate many public address from it (means one private key can have many public key).</p>

<p>So if it really do!: Do we need to keep all of public keys or just can use private key for transaction bitcoins or checking balanced? or the other public keys are child key and i should keep the first mother public key?</p>

<ul>
<li>Can someone else see how much bitcoin we have earned?  

<ul>
<li>just with child-address?  </li>
<li>if she/he get the master public key, can they check our balance?  </li>
</ul></li>
</ul>

<p>We want to use <a href="https://en.bitcoin.it/wiki/Lazy_API" rel="nofollow noreferrer">Lazy_API</a> and show user an address to use it for transaction and after that check it with blockchain.info json api or blockexplorer, if transaction done after number of confirmation we proceed invoice and they can access to what they want.</p>

<p>Something else: some mobile wallet(like Breadwallet.com for iOS) said that they change public address after current get received bitcoins! Does they create new key-pairs or just do something like above?</p>

CC BY-SA 3.0
2014-12-24T09:29:51.483Z
To many questions. This is a one question system. Get an android phone and install mycelium (test if you don't want to use real coins) and mytrezor lite. With these apps you can play around with HD wallets to get a feel. Then buy a few trezors for your company to keep the private key safe. The private key should never leave the trezor.
Jannes
CC BY-SA 3.0
2014-12-24T21:01:39.203Z
i know there is one to one way question system. but i try to asked my questions once because the related to each other.
Osiris
CC BY-SA 3.0
2014-12-24T21:09:45.300Z
and im not using android and i am on ios devices. but recently i saw that mycelium  have ios version. but as i see in app details on bitcoin.org, "This wallet relies on a centralized service by default. This means a third party must be trusted to not hide or simulate payments." and it also requore ios 8 that i am 7. but does the app crate multi address for one key-pair?
Osiris
<wallet><private-key><public-key><bip32-hd-wallets>
Create addresses in bulk; and check balance
Osiris
# Create addresses in bulk; and check balance

(Asked by: username_0 on 2014-12-24)

I am new to Bitcoin; our company wants to use bitcoin for payments.

We need to create a address for each transaction. so we need to create many public address.

First, I need to generate many public and private key-pairs. This is going to be very hard to do in a secure way!

I read another [question](https://bitcoin.stackexchange.com/questions/18102/does-a-wallet-containing-multiple-addresses-have-a-single-private-key) that said with hierarchical deterministic wallets we can do something like creating one key-pair and generate many public address from it (means one private key can have many public key).

So if it really do!: Do we need to keep all of public keys or just can use private key for transaction bitcoins or checking balanced? or the other public keys are child key and i should keep the first mother public key?

* Can someone else see how much bitcoin we have earned?
  + just with child-address?
  + if she/he get the master public key, can they check our balance?

We want to use [Lazy\_API](https://en.bitcoin.it/wiki/Lazy_API) and show user an address to use it for transaction and after that check it with blockchain.info json api or blockexplorer, if transaction done after number of confirmation we proceed invoice and they can access to what they want.

Something else: some mobile wallet(like Breadwallet.com for iOS) said that they change public address after current get received bitcoins! Does they create new key-pairs or just do something like above?

**Tags:** wallet, private-key, public-key, bip32-hd-wallets

> **Comments:**
> **username_1**: To many questions. This is a one question system. Get an android phone and install mycelium (test if you don't want to use real coins) and mytrezor lite. With these apps you can play around with HD wallets to get a feel. Then buy a few trezors for your company to keep the private key safe. The private key should never leave the trezor.  
> **username_0**: i know there is one to one way question system. but i try to asked my questions once because the related to each other.  
> **username_0**: and im not using android and i am on ios devices. but recently i saw that mycelium  have ios version. but as i see in app details on bitcoin.org, "This wallet relies on a centralized service by default. This means a third party must be trusted to not hide or simulate payments." and it also requore ios 8 that i am 7. but does the app crate multi address for one key-pair?  

---

## 1 answers

### Answer by username_2 on 2014-12-24. Score: -2

As you found out already; private and public keys are not necessarily paired 1-to-1. In fact, using the original Bitcoin client you can just run the [`getnewaddress`](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list) to generate a new address belonging to your wallet, which is controlled by only one private key.

> **Comments:**
> **username_3**: That's not true. bitcoind keeps one private key for each address. `getnewaddress` generates a new keypair (or gets one from the keypool) and derives a single address from it.  
> **username_0**: as i knew The hd-wallet using a master key-pair and then using the public key to generate address and each address have a child key-pair too that can be used like a separate wallet! but with master public key we can see all transaction for child public key and address! https://d3qlb4e6ron71v.cloudfront.net/blog/wp-content/uploads/2014/02/derivation-500x308.png  

---

