Shell Points

All about earning Shell Points during guarded launch



Shell Points are a way of tracking contributions to the Shell Protocol guarded launch. Shell Points were originally announced in August 2022. In November 2022, the community voted in favor of using Shell Points as a factor in the upcoming $SHELL distribution.
Shell Points are calculated off-chain, but they are independently calculable and verifiable for any wallet using publicly available chain data. Multipliers and other values used to calculate Shell Points are dynamic, changing as the protocol matures, during new Seasons, or during special events.
In short, Shell Points can be earned by wrapping tokens into Shell and holding Shell-native assets. There will also be some additional ways to enhance Shell Point scoring potential every once in a while, including special community events.

Calculating Earned Points

Dollar Days

The base unit in the Shell Points system is a dollar day. At the simplest level, dollar days track the USD value of all the assets in your Shell wallet over a period of time. A user holding a Shell-wrapped or Shell-native token of $1 USD value (such as shDAI or shUSDC) earns one Shell Point per day from that wrapped token. For example, a wallet that holds 10 shDAI for 10 days would earn 100 Shell Points.
In practice, every token in Shell will have a multiplier attached to it. These multipliers will allow you to earn more than one Shell Point per dollar day (SP/DD) for holding certain token types. For example, if the LP token of DAI+USDC has a 2x Shell Point multiplier, holding 10 DAI+USDC for 10 days will grant the user 200 Shell Points.
You will never lose points. They are calculated every block and accumulate over time. These calculations occur off-chain using publicly available data. They are open-source, and available for anyone to independently track and verify.

Compounding Points

Shell Points are also earned through a persistent compounding mechanic. This effect increases over time, and is not based on any particular token held. Instead, it is applied to the entire USD value of all your aggregate Shell-based tokens. Compounding points are not tracked on a per-token basis.
Say Alice’s wallet carries an overall Shell balance worth $10,000 USD for 100 days. Without compounding dollar days (and without considering multipliers), her earned Shell Points appear as follows:
Now let’s calculate the compounding effect. To do this, we take the total USD value of Alice’s wallet and the number of days elapsed. With this information, we can complete the formula below to find our additional compounding points across 100 days for a wallet worth $10,000 at a compound rate of 0.189%.
Our goal with compounding dollar days is to provide an additional reward for users who leave sums in Shell for extended periods of time.
What happens if the USD value of Alice’s Shell wallet falls and rises over time? Let’s take a look at a few examples to understand. In this first example, Alice has a USD value of $100k in Shell-wrapped assets. She unwraps 100% of them, reducing the USD value of her Shell balance to $0. Then she re-wraps the same amount again.
As you can see above, the compounding time of Alice’s wallet was reset when she withdrew all her tokens from Shell. When she re-wrapped her assets back into Shell, the compounding process began again from scratch.
Now let’s take a look at a different scenario. In the below example, Alice once again has $100k in USD of Shell-wrapped assets. Here, Alice unwraps half, reducing her Shell balance to $50k. Then she re-wraps additional tokens back in, raising her balance back to $100k.
In this example, half of the wallet’s compounding Shell Points stop compounding when the user’s balance drops to $50k. The other half is maintained, since the balance has remained ‘unbroken’ since the start of the graph. When the balance returns to $100k, a new compounding process begins for the new additional value of 50k.

Summed Points

As a reminder, Shell Points are earned based on the dollar value of your held tokens, not the raw count. A token worth $2 USD, for example, would earn a base amount of two Shell Points per day. In the case below, we’ll say that DAI+USDC LP tokens are worth $1 USD each. Now let’s put it together with a practical example.
Assume Alice holds 10 LP tokens for the DAI+USDC pool. Let’s use our example multipliers and time bonus value from before.
DAI+USDC LP token multiplier: x2
Compound value: 0.189%
With these, we can calculate how many Shell Points Alice will earn over a period of days. Let’s look at 100 days. For this period, we’re going to do two separate calculations — one for token multipliers, and one for compounding dollar days.
At the end, these two figures are summed. This leaves us with a final value for the Shell Points Alice has earned over the hundred day period.

Volatile Tokens

Since calculating Shell Points involves the USD value of tokens, volatile assets such as ETH present a few unique considerations. The first involves accurate price discovery for tokens and the way these prices should be stored. Token prices fluctuate day-to-day, hour-to-hour, and minute-to-minute. Updating the Shell Points calculation this frequently is not feasible or necessary. Instead, our system will find a rolling weighted average of each token’s price (sourced from CoinGecko) and update it periodically.
The second consideration involves the way that volatile assets may affect users’ compounding. A wallet containing 1 shETH, for example, will rise and fall in USD value based on the price of ETH. As such, it will lose part of its ‘legacy compounding’ every time the price of ETH falls. Rolling weighted averages will also help alleviate this concern, insulating users against lost compounding due to short, sharp dips in token value.


During the beginning of the Shell guarded launch, wrapped tokens and pools will be in a state of ‘closed beta’. In effect, this means there will be limits on the maximum amount of tokens of each type that a user can use to earn Shell Points. You will be able to wrap and hold tokens in excess of your quota, but the excess will not count toward your daily Shell Point gain. The intention of this system is to limit the rate of TVL growth in experimental pools, both for the sake of individual user security and security of the platform overall.
In the example above, you can see the ‘Balance / Quota’ column listed on the user’s Shell Points screen. ‘Balance’ obviously refers to the amount of each token type held. ‘Quota’ meanwhile is the maximum number of tokens of that type that can be used to earn Shell Points. In the example above, the wallet pictured has its Shell token types ‘maxed’, i.e. meeting or exceeding their given quota. As such, they appear in green.
These quotas are separately calculated and tracked for each token type listed in the wallet. When a user exceeds a certain token’s quota, they will not earn Shell Points on any excess tokens they hold. These excess tokens will also not count toward a user’s wallet value for the purposes of calculating compounding Shell Points.
For example, if a user holds 1,000 shDAI and has a shDAI quota of 500, they will earn Shell Points as if they are only holding 500 shDAI. However, if the user has additional quota available in another token type (such as shUSDT), the user can swap their extra shDAI for shUSDT to maximize their daily points.
As stated prior, quotas are not hard caps on the amount of tokens a user can hold or swap. From day one, Shell will be free to use however you like. That said, Shell Points will not be earned on tokens held in excess of the user’s individual quotas. From a points calculation perspective, it will be as if they don’t exist at all.
Like Shell Points, quotas are not a part of the actual Solidity code of Shell Protocol. Since Shell Points are calculated off-chain, we do not need to modify the smart contract to make Shell Point and quota adjustments over time. As Shell proves itself on Arbitrum mainnet, we will begin to lift quota limits for specific tokens, transitioning them from ‘closed’ to ‘open’ beta and allowing anyone access. Check out this guide to learn how to get quota.