<p>You are almost correct ;-) </p>

<p>You can create a public/private key using OpenSSL (in fact, some wallets use OpenSSL libaries to generate the keys). However, the bitcoin address is not your public key but a function of such public key. The exact function is defined here
<a href="https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses">https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses</a></p>

<p>So, once you generate your pair of keys and compute the bitcoin address from your public key, you can receive bitcoins in such bitcoin address.</p>

CC BY-SA 3.0
2013-12-17T12:36:28.867Z
Thanks for the answer. Are there **reputable** tools available that are lightweight (say less than 100kb download) and can create a wallet? I've heard that the official bitcoin client tries to download 12 GB of data.
sashoalm
CC BY-SA 3.0
2013-12-17T14:28:31.993Z
You can try the python source https://github.com/richardkiss/pycoin where some basic functions are implemented. For instance, the function public_pair_to_bitcoin_address is clearly defined. I'm not aware of its reputation, but python is really easy to follow and you can check the part of the code you want to use.
jordi
CC BY-SA 3.0
2013-12-17T18:25:17.533Z
@sashoalm: [vanitygen](https://github.com/samr7/vanitygen) can also be used conveniently for this purpose.  Note that while you can receive Bitcoins this way, in order to spend them again, you will have to install a wallet client.
Nate Eldredge
CC BY-SA 3.0
2013-12-17T22:14:39.833Z
This is the clearest example I've seen of this - https://gist.github.com/colindean/5239812
matja
CC BY-SA 3.0
2013-12-17T12:19:47.127Z
2013-12-17T12:19:47.127Z
jordi
<p>From what I understand about Bitcoin, a wallet is really just a pair of public/private keys.</p>

<p>So, if someone needs to send me Bitcoins, all I need to do is just generate a pair or public/private keys using OpenSSL or some other tool, and send the public key to that person, without actually downloading a Bitcoin client (which will download a 12 GB block chain), or saving a <code>wallet.dat</code>.</p>

<p>Am I correct?</p>

CC BY-SA 3.0
2013-12-17T11:58:58.447Z
Take a look at https://www.bitaddress.org/. Actually generating usable bitcoin addresses is somewhat [complicated](https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses)
aland
CC BY-SA 3.0
2013-12-17T12:35:44.143Z
Is bitaddress.org a reputable site?
sashoalm
CC BY-SA 3.0
2013-12-17T12:45:33.800Z
Judging from [source code](https://github.com/pointbiz/bitaddress.org], it generates address with JavaScript on your PC, so the server can not get your private key anyway.
aland
<wallet>
Can I generate an offline Bitcoin wallet using only OpenSSL?
sashoalm
# Can I generate an offline Bitcoin wallet using only OpenSSL?

(Asked by: username_0 on 2013-12-17)

From what I understand about Bitcoin, a wallet is really just a pair of public/private keys.

So, if someone needs to send me Bitcoins, all I need to do is just generate a pair or public/private keys using OpenSSL or some other tool, and send the public key to that person, without actually downloading a Bitcoin client (which will download a 12 GB block chain), or saving a `wallet.dat`.

Am I correct?

**Tags:** wallet

> **Comments:**
> **username_1**: Take a look at https://www.bitaddress.org/. Actually generating usable bitcoin addresses is somewhat [complicated](https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses)  
> **username_0**: Is bitaddress.org a reputable site?  
> **username_1**: Judging from [source code](https://github.com/pointbiz/bitaddress.org], it generates address with JavaScript on your PC, so the server can not get your private key anyway.  

---

## 1 answers

### Answer by username_2 on 2013-12-17. Score: 10 | Accepted answer

You are almost correct ;-)

You can create a public/private key using OpenSSL (in fact, some wallets use OpenSSL libaries to generate the keys). However, the bitcoin address is not your public key but a function of such public key. The exact function is defined here
<https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses>

So, once you generate your pair of keys and compute the bitcoin address from your public key, you can receive bitcoins in such bitcoin address.

> **Comments:**
> **username_0**: Thanks for the answer. Are there **reputable** tools available that are lightweight (say less than 100kb download) and can create a wallet? I've heard that the official bitcoin client tries to download 12 GB of data.  
> **username_2**: You can try the python source https://github.com/richardkiss/pycoin where some basic functions are implemented. For instance, the function public_pair_to_bitcoin_address is clearly defined. I'm not aware of its reputation, but python is really easy to follow and you can check the part of the code you want to use.  
> **username_3**: @username_0: [vanitygen](https://github.com/samr7/vanitygen) can also be used conveniently for this purpose.  Note that while you can receive Bitcoins this way, in order to spend them again, you will have to install a wallet client.  
> **username_4**: This is the clearest example I've seen of this - https://gist.github.com/colindean/5239812  

---

