user9901: Is there any way to generate bitcoin addresses  other than the Blockchain API? (given the fact that it is not public)

user6321: There are a number of sample programs here: https://bitcointalk.org/index.php?topic=1026.0
Also see the wiki for the step-by-step algorithm for generating a valid address.

user3724: I wrote a long and detailed tutorial on it http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript
In short, scroll all the way down to the summary to see this short version:
var randArr = new Uint8Array(32) //create a typed array of 32 bytes (256 bits)
window.crypto.getRandomValues(randArr) //populate array with cryptographically secure random numbers

//some Bitcoin and Crypto methods don't like Uint8Array for input. They expect regular JS arrays.
var privateKeyBytes = []
for (var i = 0; i < randArr.length; ++i)
  privateKeyBytes[i] = randArr[i]

var eckey = new Bitcoin.ECKey(privateKeyBytes)
eckey.compressed = true
var address = eckey.getBitcoinAddress().toString()
console.log(address)// 1FkKMsKNJqWSDvTvETqcCeHcUQQ64kSC6s

var privateKeyBytesCompressed = privateKeyBytes.slice(0) //clone array
privateKeyBytesCompressed.push(0x01)
var privateKeyWIFCompressed = new Bitcoin.Address(privateKeyBytesCompressed)
privateKeyWIFCompressed.version = 0x80
privateKeyWIFCompressed = privateKeyWIFCompressed.toString()

Open up the JavaScript console on the page (in your browser) and follow along. You can create your very own address right there in the browser. I wouldn't recommend using this newly created address to actually conduct commerce. Just use it as an academic exercise.

9901: <p>Is there any way to generate bitcoin addresses  other than the Blockchain API? (given the fact that it is not public)</p>
 6321: <p>There are a number of sample programs here: <a href="https://bitcointalk.org/index.php?topic=1026.0" rel="nofollow">https://bitcointalk.org/index.php?topic=1026.0</a></p>

<p>Also see the wiki for the <a href="https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses" rel="nofollow">step-by-step algorithm for generating a valid address.</a></p>
 3724: <p>I wrote a long and detailed tutorial on it <a href="http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript" rel="nofollow">http://procbits.com/2013/08/27/generating-a-bitcoin-address-with-javascript</a></p>

<p>In short, scroll all the way down to the summary to see this short version:</p>

<pre><code>var randArr = new Uint8Array(32) //create a typed array of 32 bytes (256 bits)
window.crypto.getRandomValues(randArr) //populate array with cryptographically secure random numbers

//some Bitcoin and Crypto methods don't like Uint8Array for input. They expect regular JS arrays.
var privateKeyBytes = []
for (var i = 0; i &lt; randArr.length; ++i)
  privateKeyBytes[i] = randArr[i]

var eckey = new Bitcoin.ECKey(privateKeyBytes)
eckey.compressed = true
var address = eckey.getBitcoinAddress().toString()
console.log(address)// 1FkKMsKNJqWSDvTvETqcCeHcUQQ64kSC6s

var privateKeyBytesCompressed = privateKeyBytes.slice(0) //clone array
privateKeyBytesCompressed.push(0x01)
var privateKeyWIFCompressed = new Bitcoin.Address(privateKeyBytesCompressed)
privateKeyWIFCompressed.version = 0x80
privateKeyWIFCompressed = privateKeyWIFCompressed.toString()
</code></pre>

<p>Open up the JavaScript console on the page (in your browser) and follow along. You can create your very own address right there in the browser. I wouldn't recommend using this newly created address to actually conduct commerce. Just use it as an academic exercise.</p>
