(cross-posted from Subsocial: Polkadot Treasury Report - 2023)
We present the latest Polkadot Treasury Report, concluding the year 2023. This report shows the Polkadot Treasury has spent DOT in 2023 and prior and breaks spending up into categories and subcategories to give a detailed look into how the Polkadot DAO is investing in research, development, operations, outreach, and HR.
This report will give an overview of 2023 spending, and then dig down into analysis by quarters and by categories to give the reader a solid understanding of Polkadot’s past priorities. We express our gratitude to the Web3 Foundation for funding this report as part of the OpenGov.Watch initiative.
Key Insights
- Spending grew from 12m USD in 2022 to 34m USD in 2023.
- Top spending categories in 2023 are: development (48%), outreach (24%), HR (14%), and operations (11%).
- 2023-Q4 saw a sharp spending increase with 15m USD being spent.
- In Q4, 2.45m USD was paid out more than originally proposed due to DOTUSD price volatility in the market uptrend.
- The Polkadot Treasury has now spent 48 million USD over its lifetime.
2023 - The year of OpenGov
In 2023, Polkadot Governance transitioned to full token-holder governance, called Open Governance (OpenGov). Since July 2023, all spending decisions were made collectively by all token holders, without any intermediary bodies. Together with this transformation, the ecosystem discovered an increased need to remain competitive with other ecosystems and increased its spending by 3x compared to 2022. 33.5m USD (6.2m DOT) were spent in 2023.
Categories
For this report, we have chosen the main categories of Development, Outreach, HR, Operations, and Research. Some additional costs are covered as Other.
- Development primarily covers any kind of software development that is funded
- Outreach covers all social activities and media productions, advertising, and business development.
- HR consists of anything that upskills people in the ecosystem, like hackathons, academies, recruiting, and incubation.
- Operations include software and hardware costs incurred to operate the network and auxiliary services like explorers.
- Research covers original research, reports, and analytics
In 2023, software development of wallets, bridges, SDKs, and more made up almost half of the spending. Outreach activities like marketing, advertising, and business development made up a quarter, and the last quarter is composed of HR, operations, and research.
Top 10 spends
Looking at the top individual spends, we see Snowbridge (2.7m USD), the Polkadot Blockchain Academy (1.2m USD), Polkadot at Coindesk Consensus (925k USD), Ledger Apps (918k USD), and KAGOME (898k USD)
Treasury Balance
Overall, Polkadot started the year with 42.7m DOT and ended with 43.8m DOT, keeping a balance between inflows and outflows.
2023 by the quarters
Looking at a quarterly analysis, we see that 3 of 4 quarters in 2023 surpassed any of the previous quarters in the history of the Treasury. The last quarter of 2023 saw a marked increase in spending: Almost 15m USD (2.7m DOT) were spent.
Quarters by Categories
Zooming in, we can see that Development and Outreach are an ongoing priority for the Treasury, while other cost factors are more irregular.
The quarter saw increased spending in each category, but also more overall weight on Outreach, HR, and Operations thanks to a few already anticipated heavy hitters at the end of the year.
Volatility leads to overpaying
Volatile market conditions with a general uptrend in the DOTUSD exchange rate have led to the eventual USD values being significantly above the originally proposed values. Since the Treasury pays out in DOT but many participants denominate in USD, this creates a contrast.
On aggregate, the difference between the proposed time and payout time has led to 2.45m being in total “overpaid”. Compared to a total spend of 14.6m USD in that quarter, on aggregate the Treasury has paid out 17% more in USD than was originally requested. In the most extreme cases, the USD-denominated value at payout day was 45% above the requested amount.
A deep dive into categories
Let’s look into the different categories.
Development
Development cost 16m USD (3m DOT). Most development efforts went into wallets (5.4m USD), bridging (3m USD), Substrate implementations and tooling (2m USD), and SDKs (920k). A range of other development categories have been supported too.
Outreach
8.1m USD (1.4m DOT) have been spent on outreach. The biggest positions were media production and distribution (2.9m USD), conference hosting (2.1m USD) and conference attendance (1.3m USD), and various community-building efforts (820k USD)
HR
HR took 4.8m USD (930k DOT). Of those, most went to the Polkadot Blockchain Academy and hackathons (4.4m USD). Other components included recruiting (177k USD), incubation (140k), and other educational activities (48k USD).
Operations
Keeping the network running has cost 3.6m USD (640k DOT). Indexing (1.2m USD) and explorers (800k USD) took the biggest portion, and even Governance tools (508k USD) came before RPCs and nodes (436k USD)
Research
Various small research projects together were paid 576k USD (100k DOT)
Closing Remarks
This report shows that Polkadot achieved a balance of inflows and outflows in 2023 with 33m USD deployed into the ecosystem, while the general spending trend is going up. 2024-Q1 looks like it almost matches the spending of the full 2023 and we look forward to further explore this in the next report.
Notes
- The raw data for this report can be found in the following places:
- Missing data and future work: This proposal only considers direct spends. The data is incomplete and skewed in some ways:
- Bounties are not yet considered
- Sometimes proposers refund money, which is not necessarily reflected in the data (example: Ref 140)
- Some referenda are loans (e.g. Bifrost liquid staking loans), which are repaid later. This is also not reflected.
- Accounting for the Multi-Asset Treasury: This is not yet an issue in the current report, but the Treasury is becoming a Multi-Asset Treasury. So swaps from DOT into USDT and USDC are not really spends, as they keep the value as active assets in the Treasury
- Propose date vs. execution date vs. payout date
- The previous Report took the propose date as the point of reference. This current report has focused on the payout date to better reflect the USD value at payout time. Traditional accounting practices might alternatively suggest to consider the execution date as point of reference. This needs to be further considered in the future.
- Category Changes
- Introduce Outreach-Advertising
- Introduce HR
- Move Outreach-Training/Hackathons to HR-Training/Hackathons
- Move Outreach-Education to HR-Education
- Introduce HR-Recruiting
- Introduce HR-Incubation
- Outreach→Media & Outreach split into
- Outreach→Media
- Outreach→Local Outreach
- Other Notes
- Proposals often are composed of work packages that would have to be designated to different categories. We designate categories by the primary intention of the proposal. A hackathon that also publishes content and markets the hackathon is still primarily a hackathon.
- The keyword “maintenance” doesn’t strictly indicate a category. If a Python library (Development → SDKs) is maintained, it is still a development effort. It doesn’t become operations. Thus typically the word “maintenance” should be ignored when determining the category.
- SmallTipper proposals by the bot are attributed to Development→Polkadot SDK
- Polkassembly API
- We worked with the Polkassembly API to fetch our date. While generally reliable, we discovered a few hurdles along the way. Fetching data from the Treasury primitive is missing a DOT value and a reference to the original referendum. This can be confirmed by checking Treasury endpoints in the Polkassembly frontend, which do not leave breadcrumbs to the original proposal. This creates situations were the DOT value is not retrievable and available to us for further processing. Logically Polkassembly should be able to support this, as it those traits are available in the Subsquare UI.
- A referendum can also be missing the DOT value if more than one spend_local call is included in the extrinsic (e.g. Ref 288)