Hari Shaji Hari Shaji

Some interesting Ethereum stats

14/07/2025

I’ve been using Dune a lot lately to parse and understand blockchain data. Then I started thinking: just how hard is it to build something similar? The data has to be absurdly huge right?

So I started running some basic queries to figure out just how large the dataset most relevant to me is: the events dataset. Those queries snowballed and now I have some interesting data.

What are events?

Events are essentially logs a smart contract can generate when a transaction happens. Its an easy way to figure out if something particular happened in a smart contract.

contract TestContract {
    event TestEvent(uint256 indexed testNumber, bool thisHappened);

    function test(uint256 someNumber) {
        // ..... random stuff happening

        emit TestEvent(someNumber, true);
    }
}

Look at the example contract TestContract above. Lets assume an instance of this contract was deployed to some address. Whenever a transaction calls the test() function of this instance it will emit a TestEvent event with certain data in it. A user seeing this event now knows that this method was invoked with someNumber data. So events are just logs. You can read any contracts code and figure out what events you need to answer your questions about it.

Some bookkeeping

  • All time(~10 years): block 1(Jul-30-2015 03:26:28 PM +UTC) - block 22910232(Jul-13-2025 12:23:11 PM +UTC)
  • Last 3 years: block 15134200(Jul-13-2022 12:14:10 PM +UTC) - block 22910232(Jul-13-2025 12:23:11 PM +UTC)
  • Last 1 year: block 20297540(Jul-13-2024 12:18:47 PM +UTC) - block 22910232(Jul-13-2025 12:23:11 PM +UTC)

How large is the events dataset?

Time periodNumber of events% of all time
All time5,090,893,628100%
Last 3 years3,003,448,98659%
Last 1 year1,179,935,20923.18%

Observations

  1. ~5B events so far. I expected more. Ethereum has existed for 10 years at this point.
  2. The last 3 years has generated 59% of all events. The last 1 year alone has generated 23% of all events. Looks like the rate of events being generated is increasing.
  3. Lets use data from the last 1 year to extrapolate. 1.2B events/year. This means 38 events/sec. Thats not a lot. This is assuming every block generates similar quantities of events.
  4. Blocks are generated every ~12 seconds. Lets assume there is a burst of events to be ingested then. 11 seconds of waiting followed by 38*12=456 events to be ingested on the 12th second. Thats very doable.

Which contracts are generating these events?

All time

Contract addressWhat is that contractNumber of events% of events from all time
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2Wrapped Ether (WETH)644,369,10112.66%
0xdac17f958d2ee523a2206206994597c13d831ec7Tether USD (USDT)343,702,8256.75%
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48USDC (USDC)166,957,1153.28%
0x06450dee7fd2fb8e39061434babcfc05599a6fb8XEN Crypto (XEN)99,471,4301.95%
0x6b175474e89094c44da98b954eedeac495271d0fDai Stablecoin (DAI)27,202,7080.53%

Last 3 years

Contract addressWhat is that contractNumber of events% of events from last 3 years
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2Wrapped Ether (WETH)457,038,99315.22%
0xdac17f958d2ee523a2206206994597c13d831ec7Tether USD (USDT)188,852,9796.29%
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48USDC (USDC)118,551,0793.95%
0x06450dee7fd2fb8e39061434babcfc05599a6fb8XEN Crypto (XEN)99,471,4303.31%
0x000000000022d473030f116ddee9f6b43ac78ba3Uniswap15,423,7690.51%

Last 1 year

Contract addressWhat is that contractNumber of events% of events from last 1 year
0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2Wrapped Ether (WETH)174,277,40214.77%
0xdac17f958d2ee523a2206206994597c13d831ec7Tether USD (USDT)83,732,0117.10%
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48USDC (USDC)62,861,9065.33%
0x06450dee7fd2fb8e39061434babcfc05599a6fb8XEN Crypto (XEN)30,848,3012.61%
0x3328f7f4a1d1c57c35df56bbf0c9dcafca309c49Banana Gun8,049,3140.68%

Dominance of top contracts

Top grouping% of events from all time% of events from last 3 years% of events from last 1 year
Top 2530.52%35.03%37.46%
Top 1026.93%31.19%33.00%
Top 525.18%29.28%30.49%

Observations

  1. The top 5 contracts have emitted 30.49% of all events in the last year. And this dominance seems to be increasing.
  2. Going from top 5 to top 25 just increased the % from 30.49% to 37.46%.
  3. The top 4 contracts have been surprisingly consistent. I wasn’t even aware of XEN.

How many active contracts are there?

Time periodNumber of contracts which generated atleast 1 eventNumber of contracts which generated atleast 1000 events
All time9,138,211204,825
Last 3 years3,406,955151,008
Last 1 year1,311,85759,085

Observations

  1. There is huge churn in contract usage if you consider any contract with atleast 1 event emitted as active. Of 9M contracts with some activity, only 3.4M has been active in the last 3 years. Only 1.3M has been active in the last 1 year. Thats churn of 63% from all time to last 3 years. And churn of 62% from the last 3 years to last 1 year.
  2. Only looking at contracts which generated > 1000 events in a time period turned out to be a good idea. The vast majority of contracts are either deployed for testing purposes or never took off. In the last 1 year only 4.5% of contracts with atleast 1 event in it scaled to 1000 events.
  3. I’m not sure if this alone is a good proxy for contract activity. There can be many contracts which run as part of a bigger system which don’t emit events. Might need to dig deeper into other datasets like traces for a better idea.

What kind of events are being generated?

All time

Event signatureWhat is that eventNumber of events% of events from all time
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efTransfer(address,address,uint256)2,531,927,87249.73%
0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925Approval(address,address,uint256)364,209,7247.15%
0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1Sync(uint112,uint112)270,682,7525.32%
0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822Swap(address,uint256,uint256,uint256,uint256,address)265,723,6635.22%
0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109cDeposit(address,uint256)144,625,2932.84%

Last 3 years

Event signatureWhat is that eventNumber of events% of events from all time
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efTransfer(address,address,uint256)1,435,034,64447.78%
0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925Approval(address,address,uint256)226,150,4107.53%
0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1Sync(uint112,uint112)175,159,0605.83%
0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822Swap(address,uint256,uint256,uint256,uint256,address)174,379,1865.81%
0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109cDeposit(address,uint256)98,240,2673.27%

Last 1 year

Event signatureWhat is that eventNumber of events% of events from all time
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efTransfer(address,address,uint256)572,678,76348.53%
0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925Approval(address,address,uint256)78,876,3086.68%
0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1Sync(uint112,uint112)62,425,9755.29%
0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822Swap(address,uint256,uint256,uint256,uint256,address)61,644,3065.22%
0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62TransferSingle(address,address,address,uint256,uint256)50,657,9444.29%

Dominance of top event signatures

Top grouping% of events from all time% of events from last 3 years% of events from last 1 year
Top 2581.28%84.64%84.18%
Top 1077.65%80.30%80.17%
Top 570.27%70.22%70.03%

Observations

  1. The top 5 kinds of events make up 70% of all events. This goes up to 84% for the top 25 kinds of events.
  2. The top 4 events are the same through all time periods. ERC20 token events for the top 2 and uniswap events for the next two. Looks like most activity is just token transfers and swaps.

How many active event types are there?

Time periodNumber of event types which were generated atleast 1 timeNumber of event types which were generated atleast 1000 times
All time365,14316,707
Last 3 years102,4199,296
Last 1 year51,0764,644

Observations

  1. Lots of churn again. Only 9% of event types emitted in the last year has been emitted atleast 1000 times.
  2. Many events are only emitted once or very few times. eg. a contract upgrade event. I dont have enough data to make any conclusion here.

Final observations

  1. The events dataset isnt super large. Neither the ingestion rate nor the total size of the data is huge.
  2. The vast majority of data is emitted by a small % of contracts. Just tracking the top 25 contracts gets you 37% of all data. Unless you are building a product where every single address needs to be tracked you can prune away data from a lot of addresses.
  3. The vast majority of data is of a very specific kind of event. Just tracking the top 25 event signatures gets you 84% of all data. Again you can prune away a lot of data and get away with it.
  4. I’m kinda disappointed with how ethereum seems to be used. It just seems to be a lot of stablecoin transfers and swaps. And a ton of other erc20 tokens.
  5. Surprised with wrapped ETH being the top contract. Need to dig deeper into how it is being used.
  6. I have more questions than answers now. What % of addresses are sending and receiving these tokens? How many are active? Do other chains show similar patterns of usage?