user190: The total number of coins mined/available should be readable from the blockchain. 
But is also possible to calculate the number of coins which were/will be available at any given time? 

user69241: Yes. Thats possible. I wrote a python program that returns the supply at a given block (works with future supply, too):
#!/usr/bin/env python
# -*- coding: utf8 -*-

def btcSupplyAtBlock(b):
  reward = 50
  supply = 0
  y = 210000 # reward changes all y blocks
  while b>y:
    supply = supply + y * reward
    reward = reward / 2.0
    b = b - y
  supply = supply + b * reward
  return supply

block = 514227 # you want the supply after which block?
print(btcSupplyAtBlock(block))


supply at block 0: 0
supply at block 100,000: 5,000,000
supply at block 514,227: 16,927,837.5
supply at block 1,000,000: 20,187,500


190: <p>The total number of coins mined/available should be readable from the blockchain. 
But is also possible to calculate the number of coins which were/will be available at any given time? </p>
 69241: <p>Yes. Thats possible. I wrote <a href="https://github.com/ndsvw/Bitcoin-Supply-Calculator/blob/master/btcsupply.py" rel="nofollow noreferrer">a python program</a> that returns the supply at a given block (works with future supply, too):</p>

<pre><code>#!/usr/bin/env python
# -*- coding: utf8 -*-

def btcSupplyAtBlock(b):
  reward = 50
  supply = 0
  y = 210000 # reward changes all y blocks
  while b&gt;y:
    supply = supply + y * reward
    reward = reward / 2.0
    b = b - y
  supply = supply + b * reward
  return supply

block = 514227 # you want the supply after which block?
print(btcSupplyAtBlock(block))
</code></pre>

<ul>
<li>supply at block 0: 0</li>
<li>supply at block 100,000: 5,000,000</li>
<li>supply at block 514,227: 16,927,837.5</li>
<li>supply at block 1,000,000: 20,187,500</li>
</ul>
