The Distribution of Bitcoin users

I wanted to get an idea of the distribution of bitcoin clients throughout the world. While bitcoin is a distributed network clients current connect to a central IRC channel to find initial peers. I connected an IRC client to the channel and monitored connections for a couple of days. I then ran the results through a geoip lookup tool.

The 10 countries with the most bitcoin clients are:

Position Count Country
1 2769 US, United States
2 868 DE, Germany
3 518 RU, Russian Federation
4 478 GB, United Kingdom
5 368 CA, Canada
6 332 PL, Poland
7 227 CN, China
8 227 AU, Australia
9 179 SE, Sweden
10 171 UA, Ukraine

I was slightly surprised to see that the US was so far ahead to everyone else. Also to find that Japan was so far down the list, considering the technology is said to have originated there, and that the largest bitcoin exchange is hosted there.

Notes

The irc log file contains lines which look like this:

10:25 -!- u4qBM3jsFJbVbpo [[email protected]] has quit [Ping timeout: 600 seconds]
10:25 -!- u5R1WUESwqDJAH4 [[email protected]] has quit [Ping timeout: 600 seconds]
10:25 -!- uCj5PhnxQtuXvRE [[email protected]] has quit [Ping timeout: 600 seconds]
10:25 -!- u5vMMajjqPPNxqT [[email protected]] has joined #bitcoin
10:25 -!- uDEdr5uhnbT2e4f [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- uAiz7fBo8XnZZ1i [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- u5jSfdNqpwjJ9eV [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- u7LamexRgFDoHdu [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- u69NdViycJWVKYm [[email protected]] has joined #bitcoin
10:26 -!- u4W2ih7yRg7TH72 [[email protected]] has joined #bitcoin
10:26 -!- uB2dfUQ2HC94KkT [[email protected]] has joined #bitcoin
10:26 -!- u6NXdjDMZoatVNi [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- uBrRc777VmroaKp [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- u7yETCjt7iCtDL1 [[email protected]] has joined #bitcoin
10:26 -!- u6M6WhB6r7ucQTM [[email protected]] has quit [Ping timeout: 600 seconds]
10:26 -!- u6DPECS8Ti8uSkD [[email protected]] has joined #bitcoin
10:26 -!- u5Dp18HMdzYBwjs [[email protected]] has quit [Ping timeout: 600 seconds]

I used the following procedure to extract the lines containing the joins and perform the geoip lookups and counts. I only used unique addresses. The GeoIP database was from MaxMind and the database was updated on the 9th of September.

grep join irc.log > bitcoin.joins
... I then lazily replaced all the ]s with @s in the file bitcoin.joins
awk 'BEGIN{FS="@";}{print $2}' bitcoin.join > bitcoin.addrs
awk '{print "geoiplookup " $0}' bitcoin.addrs | sort | uniq | sh > bitcoin.countries.1
cat bitcoin.countries.1 | awk 'BEGIN{FS=":"}{print $2}' | sort | uniq -c | sort -k 1 -n -r > bitcoin.cntcount

The full breakdown of countries is as follows:

   2769  US, United States
    868  DE, Germany
    518  RU, Russian Federation
    478  GB, United Kingdom
    368  CA, Canada
    332  PL, Poland
    227  CN, China
    227  AU, Australia
    179  SE, Sweden
    171  UA, Ukraine
    160  NL, Netherlands
    143  FR, France
    109  IT, Italy
     95  DK, Denmark
     95  AR, Argentina
     90  FI, Finland
     85  BR, Brazil
     82  RO, Romania
     72  ES, Spain
     72  AT, Austria
     71  CH, Switzerland
     64  ZA, South Africa
     59  MX, Mexico
     56  --, N/A
     48  IE, Ireland
     48  CZ, Czech Republic
     45  IL, Israel
     44  BE, Belgium
     43  NZ, New Zealand
     42  CO, Colombia
     41  NO, Norway
     35  IN, India
     27  SG, Singapore
     27  RS, Serbia
     27  BG, Bulgaria
     26  BY, Belarus
     24  TW, Taiwan
     20  TH, Thailand
     20  CL, Chile
     18  SI, Slovenia
     17  KZ, Kazakhstan
     17  JP, Japan
     17  HU, Hungary
     16  PT, Portugal
     16  GR, Greece
     15  PH, Philippines
     14  SK, Slovakia
     14  LT, Lithuania
     13  LV, Latvia
     12  MD, Moldova, Republic of
     12  HK, Hong Kong
     11  SA, Saudi Arabia
     11  MY, Malaysia
     10  MA, Morocco
     10  BA, Bosnia and Herzegovina
      9  HR, Croatia
      8  VN, Vietnam
      8  DO, Dominican Republic
      7  PE, Peru
      7  KR, Korea, Republic of
      7  A1, Anonymous Proxy
      6  VE, Venezuela
      6  IS, Iceland
      6  ID, Indonesia
      6  EC, Ecuador
      6  AE, United Arab Emirates
      5  PG, Papua New Guinea
      5  IR, Iran, Islamic Republic of
      4  TT, Trinidad and Tobago
      4  LK, Sri Lanka
      4  HN, Honduras
      4  EG, Egypt
      4  EE, Estonia
      4  BS, Bahamas
      3  UY, Uruguay
      3  TR, Turkey
      3  PA, Panama
      3  MK, Macedonia
      3  LU, Luxembourg
      3  JM, Jamaica
      3  JE, Jersey
      3  CR, Costa Rica
      3  BO, Bolivia
      2  ZM, Zambia
      2  TN, Tunisia
      2  MT, Malta
      2  LB, Lebanon
      2  ET, Ethiopia
      2  DZ, Algeria
      1  TZ, Tanzania, United Republic of
      1  SY, Syrian Arab Republic
      1  QA, Qatar
      1  PY, Paraguay
      1  PR, Puerto Rico
      1  PK, Pakistan
      1  OM, Oman
      1  MN, Mongolia
      1  KE, Kenya
      1  JO, Jordan
      1  GY, Guyana
      1  GU, Guam
      1  GT, Guatemala
      1  GI, Gibraltar
      1  CI, Cote D'Ivoire
      1  BN, Brunei Darussalam
      1  BB, Barbados
      1  AZ, Azerbaijan
      1  AL, Albania
      1  AG, Antigua and Barbuda