<blockquote>
  <p>will be stored only after any transactions occur ?</p>
</blockquote>

<p>Wallet addresses are not technically seen in the blockchain until they are used in a transaction, but that does not mean that they have not been generated/belong to someone. A Bitcoin "address" is derived using the public key (and the public key is derived from the private key, using <a href="https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm" rel="nofollow noreferrer">ECDSA</a>) and are really used for simplicity and readability through <a href="https://en.bitcoin.it/wiki/Base58Check_encoding" rel="nofollow noreferrer">Base58 encoding</a> (imagine needing a user's full 32 byte public key!).</p>

<p>A private key can be used to derive a public key and likewise the public key can be used to derive an address. Due to the nature of hash functions/ECDSA, these values are "computationally infeasible" to reverse. Meaning you cannot take the address and obtain the public key nor can you calculate the private key given the public key.</p>

<p>As <a href="https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses" rel="nofollow noreferrer">the wiki states</a>:</p>

<blockquote>
  <p>A Bitcoin address is a 160-bit hash of the public portion of a public/private ECDSA keypair. Using public-key cryptography, you can "sign" data with your private key and anyone who knows your public key can verify that the signature is valid.</p>
</blockquote>

<p>Anyone with the private key necessary to meet the spending condition (<a href="https://en.bitcoin.it/wiki/Transaction#Input" rel="nofollow noreferrer">scriptSig</a>) of a transaction will have the means to spend it's output(s).</p>

CC BY-SA 4.0
2018-10-30T06:21:53.727Z
this means public key is not same as the wallet address ?
Pankaj Kumar
CC BY-SA 4.0
2018-10-30T06:23:54.890Z
@PankajKumar Correct. The public key is used to obtain the address given to you when generating a new address. Refer to [this](https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses#How_to_create_Bitcoin_Address) from step #2 to see what is done to the public key to get the Base58 address you're familiar with.
Mason Ticehurst
CC BY-SA 4.0
2018-10-30T06:26:01.207Z
It is also worth mentioning that although the public key is not **exactly** the same as the bitcoin address, the public key will **always** produce the same address.
Mason Ticehurst
CC BY-SA 4.0
2018-10-30T06:51:06.910Z
So we can say that first process start with the public and private key creation .And we can use code to generate these keys locally. after these keys created then the wallet address can be generated (so far there is no communication between blockchain).When any other user try to send BTC to newly generated wallet address only then the transactions along with the newly created  wallet stored on the blockchain ? In other words we can say that address generation dont need blockchain access or communication.
Pankaj Kumar
CC BY-SA 4.0
2018-10-30T07:31:23.247Z
@PankajKumar Exactly right. They can be created online or offline, and it is generally recommended to generate private keys offline to prevent them from being stolen, etc.
Mason Ticehurst
CC BY-SA 4.0
2018-11-01T04:32:53.860Z
After addresses generated offline how they can be available on bitcoin network ? let me explain with example :  Suppose 'A' named user has created  valid address locally using the code (python) . Now Suppose 'B' named user want to send 1 BTC to 'A'  .Is it possible that 'B' user is able to send coin to 'A' directly ? Or is 'A' needs to do something so that the new address that he had created will be availble on the Bitcoin blockchain ?
Pankaj Kumar
CC BY-SA 4.0
2018-11-01T21:59:51.730Z
@PankajKumar Either A or B can send a transaction in any order. The protocol doesn't care if the address have already been claimed, the transaction will still be approved by the nodes.
Mason Ticehurst
CC BY-SA 4.0
2018-11-02T04:23:33.153Z
@Kapil is this means that if the address are generated offline its not required those addresses to be publish on blockchain ?
Pankaj Kumar
CC BY-SA 4.0
2018-10-30T06:16:22.837Z
2018-10-30T12:32:14.370Z
2018-10-30T12:32:14.370Z
Mason Ticehurst
<p>When a user generates an address using Bitcoin Core, is that address by default stored on the blockchain or will it only be stored after it is used in a transactions</p>

<blockchain><address><address-generation>
Where are new addresses stored?
Pankaj Kumar
# Where are new addresses stored?

(Asked by: username_0 on 2018-10-30)

When a user generates an address using Bitcoin Core, is that address by default stored on the blockchain or will it only be stored after it is used in a transactions

**Tags:** blockchain, address, address-generation


---

## 1 answers

### Answer by username_1 on 2018-10-30. Score: 1

> will be stored only after any transactions occur ?

Wallet addresses are not technically seen in the blockchain until they are used in a transaction, but that does not mean that they have not been generated/belong to someone. A Bitcoin "address" is derived using the public key (and the public key is derived from the private key, using [ECDSA](https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm)) and are really used for simplicity and readability through [Base58 encoding](https://en.bitcoin.it/wiki/Base58Check_encoding) (imagine needing a user's full 32 byte public key!).

A private key can be used to derive a public key and likewise the public key can be used to derive an address. Due to the nature of hash functions/ECDSA, these values are "computationally infeasible" to reverse. Meaning you cannot take the address and obtain the public key nor can you calculate the private key given the public key.

As [the wiki states](https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses):

> A Bitcoin address is a 160-bit hash of the public portion of a public/private ECDSA keypair. Using public-key cryptography, you can "sign" data with your private key and anyone who knows your public key can verify that the signature is valid.

Anyone with the private key necessary to meet the spending condition ([scriptSig](https://en.bitcoin.it/wiki/Transaction#Input)) of a transaction will have the means to spend it's output(s).

> **Comments:**
> **username_0**: this means public key is not same as the wallet address ?  
> **username_1**: @username_0 Correct. The public key is used to obtain the address given to you when generating a new address. Refer to [this](https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses#How_to_create_Bitcoin_Address) from step #2 to see what is done to the public key to get the Base58 address you're familiar with.  
> **username_1**: It is also worth mentioning that although the public key is not **exactly** the same as the bitcoin address, the public key will **always** produce the same address.  
> **username_0**: So we can say that first process start with the public and private key creation .And we can use code to generate these keys locally. after these keys created then the wallet address can be generated (so far there is no communication between blockchain).When any other user try to send BTC to newly generated wallet address only then the transactions along with the newly created  wallet stored on the blockchain ? In other words we can say that address generation dont need blockchain access or communication.  
> **username_1**: @username_0 Exactly right. They can be created online or offline, and it is generally recommended to generate private keys offline to prevent them from being stolen, etc.  
> **username_0**: After addresses generated offline how they can be available on bitcoin network ? let me explain with example :  Suppose 'A' named user has created  valid address locally using the code (python) . Now Suppose 'B' named user want to send 1 BTC to 'A'  .Is it possible that 'B' user is able to send coin to 'A' directly ? Or is 'A' needs to do something so that the new address that he had created will be availble on the Bitcoin blockchain ?  
> **username_1**: @username_0 Either A or B can send a transaction in any order. The protocol doesn't care if the address have already been claimed, the transaction will still be approved by the nodes.  
> **username_0**: @Kapil is this means that if the address are generated offline its not required those addresses to be publish on blockchain ?  

---

