Testnet Build Complete
Today, Shell Protocol has deployed our final major update for the Shell v2 testnet. This update introduces ETH wraps, an ETH-stablecoin pool, and Shell Points. With these features added, we have shifted our focus to preparing Shell v2 for its official guarded launch on Arbitrum mainnet.
A future blog post will detail every confirmed feature of Shell v2, as well as an approximate roadmap for the introduction of these features on mainnet. For now, let’s review testnet access, and each of the new features included in the update.
To access the latest update to the testnet, the link is the same as it was before. As of today, however, you will notice that your Shell v2 testnet balances have been reset (since this is a new test deployment of the Shell v2 smart contract).
To review, here are the steps you need to take to use the Shell v2 testnet:
- Set up Metamask on a desktop browser if you haven’t already.
- Connect to Mainnet Rinkeby. With Metamask, in the network selection dropdown, click ‘show/hide test networks’ and then switch to Rinkeby Test Network.
- Get Rinkeby ETH. Use a Rinkeby faucet while connected to Rinkeby with your Metamask wallet. Here’s one.
- Visit the Arbitrum bridge. Your Metamask wallet must be connected to Rinkeby Test Network. Using the bridge, deposit your Rinkeby ETH (it will be sent to the Arbitrum Rinkeby network).
- Add Arbitrum Rinkeby to your Metamask network list. In your Metamask network selection dropdown, click ‘Add Network.’ Fill in the details from the Offchain Labs Public Testnet Guide.
- Connect to Arbitrum Rinkeby. You can now use the Shell v2 testnet. To receive test stablecoins, use the ‘faucet’ tab and claim your allocation.
You can start using all of the new testnet features today. Read on to learn more about how they work and the theory behind the system. A more practical, comprehensive, user-oriented guide to the Shell v2 interface will be posted before the guarded launch.
shETH and Fractal Pools
ETH wraps and unwraps turn Ether (ETH) into Shell-wrapped Ether (shETH) and vice versa. This allows ETH to be used natively within the Shell v2 ecosystem. You can wrap testnet ETH by selecting it in the upper field of the trade screen, then selecting shETH in the lower field. You can also swap (and multi-swap) using ETH, shETH, and any other coin or LP (liquidity provider) token supported by Shell v2.
As it stands, you cannot specify an exact amount of ETH when it is selected in the lower output field. This is due to deliberate limitations imposed by the developers of Ethereum on the EVM regarding how Ether can be swapped. Instead, specify the upper input field amount when swapping for ETH.
Alongside shETH, we are introducing fractal pools, meaning pools that use LP tokens from other pools as components. A fractal pool network means that creating multi-asset pools is a straightforward process. It also means that pools with hundreds or thousands of underlying assets will be possible to construct using the same simple lines of code. This allows a single LP token to grant weighted exposure to multiple base assets while retaining the same core functionalities as a fungible ERC-20 token.
The first pool we have added to the fractal network is ETH+(DAI+USDC). Like all other Proteus pools, this one consists of two reserve tokens and a bonding curve. In this case, the first reserve token is ETH. The second reserve token is the LP token of our existing DAI+USDC pool. In effect, this gives users who hold the ETH+(DAI+USDC) token exposure to all three tokens at the following weighting:
ETH 50%, DAI 25%, USDC 25%
This is also the first volatile token pool in the history of Shell Protocol. With this, we have officially branched beyond ‘stable-to-stable’ pools and into more dynamic pairings. The sky is the limit!
The second pool we have added is USDT+(DAI+USDC). This works similarly to the pool previously described, save for the fact that it uses USDT in place of ETH. It also replaces the USDC+USDT pool from the previous version of the testnet. This pool provides more routes for trades to flow through Shell v2’s Ocean and grants liquidity providers the following weighted exposure:
USDT 50%, DAI 25%, USDC 25%
This system for fractal pools can be scaled ad nauseum. As you can imagine, the current naming scheme will rapidly become unwieldy if pools of greater complexity are created. We are currently in the process of refining our nomenclature system for fractal pools, and we welcome any comment from the community on how best to style them.
The main attraction of this testnet update is Shell Points, a way of tracking your contribution to the Shell v2 guarded launch.
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 v2 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. (Note: multipliers on the testnet may not be the same as the multipliers when we deploy to Arbitrum mainnet.)
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.
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 v2 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 v2 for extended periods of time.
What happens if the USD value of Alice’s Shell v2 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 v2 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 v2. When she re-wrapped her assets back into v2, 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 v2 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.
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.
As stated, the guarded launch will include a list of the multiplier and compound values for Shell Points on Shell v2 mainnet. For now, we can include an example list for the testnet below. These testnet values will most likely change in the coming days as we test out different elements of the Shell Points API and interface.
Time Bonus: 5%
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.
Points and Seasons
You can start ‘earning’ testnet Shell Points on our Shell v2 testnet today. As with all aspects of the testnet, there will be no reward issued for any points accrued within the Shell v2 testnet. They are purely for demonstrative purposes as we move toward the guarded launch.
Once we deploy on Arbitrum mainnet, however — it’s the real deal from day one.
We have designed Shell Points to be independently calculable and verifiable for any wallet using publicly available chain data. From the start, you will be able to see the current and historical Shell Points of your own wallet using the Shell Points tab of the Shell v2 interface — which has replaced the previous ‘wallet’ screen in the most recent update. As the system matures, we intend to explore options that allow users to compare Shell Points socially, potentially publishing protocol-wide leaderboards or similar reports.
The multipliers and compound values used to calculate Shell Points will change as needed. The longer a smart contract exists on-chain without incident, the more well-tested it is from a security perspective. As such, we may re-weight newer components of Shell v2 to have higher point multipliers, while lowering the point multipliers of older and less experimental elements.
Multipliers may also change for balance or special events. For the sake of simplicity and rhythm, we will try to group changes to the Shell Points system together, releasing them as a bundle at the start of each new Season. Seasons can be thought of as chapters in the history of Shell v2, and will be marked by a specific focus or technological development. We will share more information on Shell v2 Seasons and how they relate to community events in the weeks ahead.
In extenuating circumstances, the Shell team may need to deploy rapid tweaks to the Shell Points system outside of a Season change. In the most fringe cases (such as a mathematical error or exploit) we will be able to manually correct the Shell Point balance of an affected wallet. That said, we intend for the point accrual system to be automatic and objective, and we don’t anticipate ever having to manually intervene.
In short, Shell Points can be earned by wrapping tokens into Shell v2 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. One such event is in the works, and we’re excited to share more news on that quite soon.
When the Shell v2 guarded launch first begins, 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 v2 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 v2 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.
For the testnet, token quotas will be set arbitrarily in order to provide a technical proof-of-concept for the feature. We will release more details soon on how quotas for each user will be calculated (and earned) for the actual guarded launch.
Like Shell Points, quotas are not a part of the actual Solidity code of Shell v2. 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 v2 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.
Wrapping it Up
Shell Points track user participation in Shell v2. Initially, they can be earned by wrapping tokens and holding Shell LP tokens. Certain special community events may give users a chance to augment their earning potential. Everything you hold in your Shell wallet will earn you Shell Points (up to your quota), and there’s a bonus compounding effect for keeping a Shell balance of a consistent minimum USD value over time.
Initially, each token type within Shell v2 will have a quota limiting how much of it you can use to earn Shell Points. These quotas will be raised over time using a to-be-announced mechanism. Eventually, as tokens and pools enter open beta, their quotas will be lifted and anyone will be able to earn points on them without restriction.
With the addition of fractal pools and non-stable pools, Shell v2 has the power to handle pretty much any fungible token on Ethereum. We will continue to explore possibilities for additional pools and wrapped tokens in the months ahead. Remember, anyone can deploy a pool on Shell v2 using the Proteus AMM engine! If you’re interested in building on Shell v2, reach out and join the Alpha Fleet. We can share guidance, review your plans, and talk about what it might take to get your third-party pool listed on the Shell v2 trade screen.
Prior to the actual launch, we will be posting an extensive and comprehensive update on Shell v2. It will provide an overview of every confirmed feature, as well as a roadmap for the order in which these features will be added to the front end. It will also detail exactly how initial quotas will be issued, and the process for earning additional quota once the guarded launch has begun.
On the subject of seasons, our Launch Season is about to officially begin. Stand by for more news on how we’re ringing it in, including a few special brand new (and toucan-related) events.
Use the testnet here: http://alpha-testnet.shellprotocol.io/
Join the Shell community!
Stay up to date on the latest Shell news: