6

I am doing a research and I would need to know the following info:

  1. Total number of Wallet Addresses
  2. Total number of "Active" Wallet Addresses
  3. Total number of Deployed Smart Contracts (is it a subset of the above?)

So far I have:

A total of more than > 1999999 accounts found (100,384,776.592 Ether)

and If I click on the link it re-addresses me to Ethereum Unique addresses growth rate charts chart Etherscan - Unique Adresses which shows

37,503,645 unique addresses

does it means that there are 37.5 M addresses? are these inclusive of Smart Contracts?

  • Point # 2: I have found this site bitinfocharts.com and I was wondering how the "active wallet is "defined"... I am guessing it counts the ethereum addresses that have a daily transaction... no? ideas?

  • Point # 3: The only source I have is Etherscan... I am confuse if the Unique addresses includes Smart Contracts and how to estimate/calculate the total number of Smart Contracts (I can only find the "verified" ones Etherscan - Verified Contracts

I have actually found this post ethereum.stackexchange.com/questions/8648/… but the suggested links for Accounts and Smart Contracts provide e with the same result... ideas?

Any help/resource would be much appreciated.

1
  • were you able to find the answer. I am also looking to find it out.
    – JVK
    Sep 21, 2018 at 0:11

1 Answer 1

3

If you wanted to do this thoroughly, and without relying on Etherscan's ambiguity, you will have to use a full node or Infura to learn information about the accounts and contracts that exist on Ethereum.

Definitions

First, we have to ask the question: What even are ETH 'accounts'? I can generate a random public/private key pair on my computer and calculate the associated ETH address -- so in a sense, the "total number of wallet addresses" is the entire space of possible 40-hex-character strings (16^40). I think a more reasonable definition is "ETH addresses that have shown up in a transaction." So we have:

  1. Total number of Wallet Addresses: "ETH addresses that have shown up in a transaction."
  2. Total number of "Active" Wallet Addresses: this is arbitrary, but let's say "ETH addresses that have sent Ether recently"
  3. Total number of Deployed Smart Contracts: These are created via transactions that have no "to" field, if you have an address you can tell if it's a contract using the method outlined here. If you simply want a count, you can look for the number of transactions of this form. Thus, it is not a strict subset of our definition of "wallet addresses" above, but it can be calculated fairly simply.

Proposed Strategy

If you have access to a full node (either your own, or Infura), you can do as you wish relatively easily (though it may take awhile) with a script. I will lay out the steps here:

  1. Start by initializing a set of addresses, and a counter for contracts
  2. Starting at 0 (genesis) and going up to the chainhead block, make the following RPC call. This will return data for that block, including the transactions that it had. curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["<block height in hex>", true],"id":1}'
  3. For each transaction in the output above (output.result.transactions), take note of both the "to" and "from" addresses in the output. If you have not seen it before, add it to the address set. If it has no "to" field, increment the contract counter. Once you're above some "threshold" block height that you declare as "active", mark the address as "active"
  4. The size of the address set will give your first answer, the size of the active address set will give your second answer, and the contract counter will give your third answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.