When we introduced Frequency, one of the core ideas was that Frequency would have a different economic structure. Frequency uses token staking to power a system we call Capacity. While staking tokens to be able to transact without fees has been tested on other chains, Frequency doesn’t rely only on Capacity. It uses a standard fee system for most interactions. We think the dual approach leads to novel applications when combined with other Frequency features.
What is Capacity?
Capacity is an alternative to using tokens to perform certain types of transactions on Frequency. It has a value for each account, but that value resets at the beginning of each Capacity Epoch. Thus the name “Capacity” because one can think of it as an ability to send that continues over time like a refillable container. Instead of paying for each transaction, you have a rate-limited continuous stream of transactions. That is Capacity.
How does one get Capacity?
We’ll go into greater detail in another concept post, but the quick version is a process known as “staking”. Staking tokens locks those tokens such that they cannot be transferred or used for other purposes. In return, those staked tokens generate an amount of Capacity that can be rewarded to a provider. Token holders have a few different options when staking, but locked tokens will have a “thaw” period if the owner wishes to unlock or return the tokens to a liquid state such that the tokens can be transferred. While the tokens are “thawing”, the tokens are not generating any Capacity nor are they transferable.
Much more about getting Capacity, user staking, thawing, and how Capacity and network staking rewards work to encourage good actors in an upcoming concept post.
Capacity has three primary roles it plays in the Frequency ecosystem: incentive alignment, cost management, and volume regulation. While these roles are each important to economic success for Frequency, it wouldn’t be effective without the power of batching and how source-dependent messages can be parallelized. Frequency has an overwhelming power to scale into the future creating different incentives over simple resource constraints.
1. Aligning Incentives
Capacity works to align independent actors toward increasing the value of the network. Network value is based on the possibilities for connections and the data flowing through it. The common economic option is to charge per message, but that prices out many classes of messages that are individually worthless, but are valuable in aggregate.
Capacity instead focuses on outcomes instead of testing each message for value. Those who add messages to the network either pay directly or have Capacity. The tokens staked to receive Capacity cannot be sold immediately due to the thaw period. So any action that causes the market value of the token to fall will be reflected in the market before the holder can sell their tokens. Those who use Capacity as a utility receive the benefit from it. However, those that want to dump the token after abusing the network will receive a natural market penalty. In this way, network and token values are correlated. This interaction encourages those who have Capacity to align in the goal of a successful and well-functioning network.
This alignment encourages cooperation such as sharing information to identify bad actors, like how email spam blocklists are shared to improve the email ecosystem. (We’ll discuss other additional ways that Frequency and DSNP deal with spam, in future posts.) In effect, Capacity is designed to prevent a version of the tragedy of the commons occurring on Frequency.
2. Cost Management
In business accounting, there are two types of expenses: capital expenditures and operating expenses. Capital expenditures are related to assets and long term value. Operating expenses are costs that recur and are needed for the operation of a business. Blockchains primarily interact on the operating expense for transactions. Users or companies must pay for each transaction and efficiency demands that the number of transactions be kept as low as possible. Short-term thinking dominates each transaction.
Capacity forces long-term thinking by acting more like an asset and therefore a capital expenditure. The tokens that generate Capacity are locked, but the generated Capacity is usable again and again. Regular message sending is allowed without additional costs.
3. Volume Regulation
Frequency has limited space that it needs to allocate. While Capacity Epochs (see When does Capacity refill?) allow for expansion of that space, it still needs to protect against denial-of-service attacks. Capacity creates a system of rate limiting over the time period of the Capacity Epoch. A Capacity holder can add to the “mempool” (the queue of transactions waiting for inclusion) as many transactions as they have Capacity to cover at any time in the Capacity Epoch. Transactions that use more than than their current Capacity will be rejected.
This means that we have proportional volume to the tokens that have been staked. The impact of those messages is also proportional to the value locked. Need to send a lot of messages quickly? You will need to have a larger stake. Currently this does mean that Capacity users need to stake to handle their peak usage. However, if you use batching, then the Capacity needed for each additional message is tiny.
How do batches interact with Capacity?
Batches are off-chain messages that are announced via an on-chain batch announcement message. The messages inside the batch can use Frequency delegation, but are not required to do so. These off-chain messages are anchored through an on-chain batch message. Because the contents of these batches still need to be processed by interested network participants, Frequency charges a tiny amount of Capacity per byte of a batch; several orders of magnitude less per byte than on-chain messages. [Footnote: How will we validate the size of an off-chain batch? We require submission of the batch size. While a user could lie, other users will be using that information to validate that they received the correct data. Providing incorrect size data would result in the batch being unvalidatable by recipients.]
Does everyone need Capacity?
No! Delegation allows users to be coinless. Users shouldn’t need to think about underlying infrastructure, but they play two roles. One is the indirect application to user value exchange. (Be that direct through payment or indirect through ads or other services). The second is through staking tokens to the network and rewarding providers they like with additional Capacity. Users then have a feedback mechanism to reward applications they support or remove the reward from applications that lose their support.
What does Capacity do?
Capacity transactions can interact with only two things: account management and sending messages. Other transactions use token fees alone. These two actions are the transactions that applications and providers need to execute on an ongoing basis on Frequency. Volatility has a greater impact on these types of interactions than others.
These two actions are also transactions that have greater value to the network than to the individual. Creating and updating a user’s account is helpful to users and good for the whole network as users may interact with multiple delegates and intermediaries. Users should have up to date keys and permissions. To encourage support for these actions, Capacity lowers the cost of these interactions such that providers are willing to do the work as part of the cost of maintaining a user base.
Message sending is a recurring task. Users desire their messages to be sent in a timely manner, but applications and providers desire to reduce costs. Because Capacity is refillable, services are incentivized to use it to the best of their users’ needs. Capacity encourages continual use and sharing; increasing the quantity of data available and thus the value of the network.
When does Capacity refill?
Capacity refills at the start of each new Capacity Epoch. These “epochs” form a meta-block that slowly grows over time. That slow growth is a predictable depreciation of Capacity, but instead of showing up in price, it increases the lag before each refill. Providers using Capacity may choose to increase Capacity or allow the minor increase in lag in sending messages. [Footnote: Dynamic epoch length is a potential future development, but we are starting simple for now].
Who pays for network costs?
There’s no such thing as a free lunch, so who is paying for the costs of running Frequency? Similar to Ethereum, Polkadot, and other blockchains, Frequency uses minting and burning of tokens to manage the supply of tokens. Fees paid in tokens are burned and the collators (nodes that form the blocks) are rewarded by minting new tokens. While this is inflationary on average, it is required for the network to continue operating and acceptable to token holders. Collator and token holder values are aligned economically and in support of a continued healthy network.
Part 2 will dive into the ways to get Capacity. Staking isn’t just for those sending messages. Network staking provides users a way to actively support products they like. How Capacity is granted is grounded in wanting Frequency to have a diverse and distributed set of stakeholders. Stakeholders aligned in the goal of providing a new shared communication network.