Measuring Developer and User Activity on Solana: December 2022

How do we keep track of how many people are building on Solana? The Developer Relations Team shares their methodology.

Measuring Developer and User Activity on Solana: December 2022

Understanding the ecosystem and developer growth on Solana is important to help identify how well the chain is performing. But measuring this growth can be sometimes difficult. Solana is unique in how users create and process transactions, and tracking activity is very different from many other blockchains out there. Instead of comparing apples to oranges, there’s a number of correct ways to measure users and developers on Solana.

Users

Blockchains are open, transparent systems that publicize data about their users, but how do we effectively track users on-chain? The naive way of tracking users would be to assume one address equals one user, however this is susceptible to sybil attacks. To effectively track users on a blockchain, it is important to adopt a more robust approach.

Most blockchains use the signer of a transaction to identify a single user, which means that someone had to cryptographically sign to have the transaction processed correctly. In the case of Solana using unique signers we’re likely to include bots and other programmatic activity. This is because with the account structure, multiple accounts that are owned by one human can sign for a transaction. The main drawback of measuring users based on unique signers is that we’re more likely to capture programmatic activity instead of actual users.

On Solana, the feePayer is the address that pays for the fees of a transaction. The first address listed in each transaction is the feePayer. This metric is our proxy for the number of non-custodial wallets active in the Solana ecosystem. We say “proxy” since fee payers can refer to a centralized fee payer that pays fees on behalf of users, such as a centralized wallet provider. The feePayer is the current best metric to measure users because it is a measure of dedicated users while not encompassing a lot of the programmatic activity on the network.

Source: Flipside

Using unique feePayers as users on Solana, we can see that users peaked earlier this year at 2.7 million. Since then the monthly users have trailed back down to where we were right before the peak.

Developers

One of the best metrics to understand how a chain is growing is the total number of developers building on the chain. To track developers on Solana, you need to have an understanding the current libraries developers use. At the Solana Foundation, we use the Github API to track the projects using the following libraries in the Solana ecosystem:

Library

Query

Description

@solana/web3.js

solana/web3.js filename:package.json

Solana JS/TS SDK

@solana/web3.js

solana/web3.js filename:package-lock.json

Solana JS/TS SDK

@solana/web3.js

solana/web3.js filename:yarn.lock

Solana JS/TS SDK

serum/anchor

serum/anchor filename:package.json

Anchor JS/TS SDK

solana-program

solana-program filename:Cargo.toml

Solana Rust Program SDK

anchor-lang

anchor-lang filename:Cargo.toml

Anchor Framework Program SDK

Solana

"import Solana" language:swift

Solana Swift SDK

solanaj

"solanaj language:java"

Solana Java SDK

Solnet

Solnet.Rpc filename:*.csproj

Solana C# SDK

solana-go

gagliardetto/solana filename:mod.go

Solana Go SDK

solana

"from solana rpc import" language:python

Solana Python SDK


Using the Github queries provided, you will be able to scrape Solana-related repositories based on the libraries used.

Once you have the repositories, you can pull data on who committed code on each day. Pulling commits and subsequent committers, you can start to build up a data set that can tell you trends, retention, and more.

Before we dig into that data we need to define what it means to be a “developer on Solana”.

Solana-related repositories can be multi-chain or even not be entirely focused on Solana. A great example is an open-source multichain wallet. The focus of a multi-chain wallet repository is likely not just Solana, so it might not be accurate to assume that a developer contributing to that repository is a Solana developer. When we count Solana developers, we count developers working on repositories that happen to support Solana separately from developers working on repositories that are solely focused on Solana development.

In November, Solana has had:

  • 2053 total active developers on projects with a Solana integration, including multi-chain projects
  • 1654 of those active developers are working on a project that is only focused on Solana.

This total number of developers shows a holistic view of how the developer community has grown around Solana.

It’s important to  note that a decent number of these developers may just be trying Solana for the first time, versus being a full-time developer building on Solana. Let’s define the difference as:

  • Full-time developer: Commit on 5 or more days in the past month
  • One-time developer: Commit on 1 day in the past month

In the past month we have seen:

  • 1139 one-time developers
  • 120 full-time developers

We can see that there is a decent drop off between one-time developers and full-time developers on Solana. This can help determine the retention rate between someone just trying out Solana for the first time and later becoming a Solana developer.

While we can measure a lot about the Solana developer ecosystem, it is good to note that we can only measure data that is currently public. We lose a lot of information on the developer ecosystem for Solana because private repositories or organizations on Github cannot be viewed. Open sourcing code can help developers looking to integrate on your project and give a more accurate view of the number of developers working on Solana today.

Using knowledge on the libraries and tooling a developer ecosystem uses can help you gather data and evaluate the strengths and weaknesses of the chain.

The Solana Foundation is committed to transparency, and updates to this data and methodology will be shared regularly by the Developer Relations team. We welcome feedback or comments on how the data was collected and how things can be improved.