Shells as Collateral

Thus far, the primary use case for the Shell Protocol has been as a market maker for stablecoins. However, shells (i.e. liquidity pool tokens) have the potential to constitute a new asset class.

Why Shells?

Shells have three advantages over standalone stablecoins (or bitcoins):

  1. Liquidity
  2. Diversification
  3. Yield

Shells inherit the very liquidity utilized for swaps. Stablecoins in the pool can directly convert to shells, and vice versa shells can directly convert to stablecoins. In that sense, shells are natively liquid assets.

They are also a diversified portfolio of assets. For example, the current stablecoin pool has 30% DAI, 30% USDC, 30% USDT and 10% sUSD. The likelihood of one stablecoin losing its peg is higher than the risk of all stablecoins losing their peg.

Shells earn yield from their market making operations, 3.5 basis points of the pool’s trade volume. Given that shell tokens are diversified, inherently liquid and earn yield, they have the potential to be the best store of value of any crypto asset.

Using shells as collateral

These attributes, liquidity, diversification, yield, could make shells a desirable form of collateral for other protocols, such as Aave or Maker. Using shells as collateral would enable new ways to compose liquidity protocols with debt protocols. For example, one could use ETH to borrow DAI on Maker, deposit DAI into Shell, deposit shells into Aave, borrow USDC and deposit into Shell.

Short-comings of other protocols

Other liquidity protocols such as Uniswap, Balancer and Curve are not well-suited to this use case because they do not have any protections agains a broken stablecoin peg. For example, if USDT were to permanently lose its peg, the Curve 3-pool would also lose all of its value because it would be drained of all the DAI and USDC, and every Curve meta pool using the 3-pool would be drained of their corresponding liquidity.

In contrast, Shell has a minimum and maximum allocation for each stablecoin, which mitigates the downside risk. Without these protections, liquidity pool (LP) tokens become riskier with more diversification.

Therefore, shells are uniquely positioned for this use case.

From collateral to building block

Having shells accepted as collateral also furthers our long-term mission of creating the internet monetary system by helping other protocols become stablecoin agnostic.

As new stablecoins enter the market, there will be an increasing need for DeFi protocols to accept multiple stablecoins and not restrict their users. Stablecoin agnosticism is tantamount to operating as a stablecoin AMM: users will deposit stablecoin A and then go to withdraw stablecoin B.

For example, Maker is working on a “Peg Stability Module” (PSM), in which USDC can be swapped for newly minted DAI (and vice-versa). If Maker wants to include more than just USDC into the PSM, it will effectively operate as a stablecoin AMM. E.g., a trader could swap USDC->DAI and then swap DAI->USDT.

If lending pools decide to accept shells as collateral, they need not deal with individual stablecoins. In other words, other DeFi protocols can delegate the AMM logic to liquidity pools and interface with shells instead. In that way, shells can become more than just collateral but become an integral building block for other protocols.

In the case of Maker’s PSM, they could have DAI trade against a shell that was managed by the Maker DAO. The DAO would control the pools parameters and thus manage the PSM’s trading operations. For example, the DAO could set lower weights for riskier stablecoins.

The first step to incorporating shells into other protocols is to have them accepted as collateral.


It would be awesome if Shells were accepted in other protocols as collateral but here are a few problems i see:

  • There will be many different shells with different tokens and different risks, protocols either have to determine which are acceptable to them or just focus on the main shell pools.
  • Assuming that LP’s are hoping to receive retroactive rewards (or regular rewards once a governance token is released, normal lending protocols wont work well with this as the Shells cant be staked and also used for collateral (with aave or compound someone has the capability to borrow our collateral and withdraw it from the shell protocol and there is no way to know what rewards are due to it). Maybe this could be solved if somehow the token is not able to be borrowed on aave or compound, or using fixed term lending like notional.

An idea i quite like is the possibility for shell protocol to release their own stablecoin (and or synthetic btc), it would work something like this:

  • User deposits stablecoins into shell protocol and receives SHL tokens
  • User deposits stablecoins into a contract and can borrow Shell Dollars against it (say up to 50% of the value deposited) while still potentially earning $SEA
  • New SHL pool can be created either as a meta pool with Shell dollars or just as a new pool, providing liquidity for this
  • The shell dollar would have first claim on the assets of the SHL Lp tokens, which would only be able to be withdrawn upon repayment of Shell dollars

In my opinion this creates the perfect stablecoin, in the current 4 coin pool (USDT, USDC, DAI, sUSD) any one of the assets could fail and the Shell dollars would still hold their value (due to the loss protection mechanism), if any of the coins involved suffered a disaster shell governance could pause the contract and force repayment in one or more of the on-peg coins.

I often have friends ask me which stablecoin is “safest” to hold, and for me the answer is nuanced, they each have different characteristics and it is hard to outright say which is safest. With this system i believe shell dollars would be the safest stablecoin, and also allow LP’s to leverage their capital.

1 Like

I’ve been a user of this protocol to swap for about a month so take my question for what it’s worth: why focus on this?

Will there be one type of $shell or many? Eg: $Shell-stablecoinpool1, $Shell-Btc etc?

When can we expect shell to start circulating.

Yeah, we were talking about this the other day. There will surely be many, so how do we name them?

The obvious way is with the tickers of the tokens within the shell. But that can be cumbersome.

I was thinking maybe we could callsign each shell in addition to the tickers. So we would have like $SHELL-AZURE-DAI-USDC which would be shorthanded like $SHELL-AZURE or something like that.

I’m not sure what would be the best way to do it.

1 Like

It has to start with $SHELL-SOMETHING , else trust me you will start forgetting your own token wardrobes. :wink:

Shells as collateral seems like a logical step to me. As a protocol, you dont need to decide which Shells are accepted, would be up whoever wants to accept them. For now, both major pools have plenty of liquidity to start looking for acceptance. If I could put my shells on Aave for example and borrow against them, I’d be much more inclined to allocate a large amount of my capital to the Shell pools.

Naming is difficult, assuming theres chances for hundreds of different pools over time. $SHELL-AZURE-DAI-USDC is cumbersome, $SHELL-AZURE kinda is too. $SHL-BTC, $SHL-STABLE…idk how else to do it, needs to be identifiable as well

Naming is pretty tricky but worth thinking about. I think we need some way of differentiating shells that is both human readable and not too cumbersome. By human readable, I mean that even if you know nothing about the shell other than its name, you know what is in the shell and what the shell is used for. By not too cumbersome, I mean the name can’t be too many symbols long.

The downside of using something like $SHELL-STABLE is that I could see there being multiple stablecoin shells in use. For example, Aave and Maker could want to each manage a separate shell and not want to rely on the other. Which one would be $SHELL-STABLE?

Sadly, I don’t really have a better idea at this point, but it is definitely worth discussing.

It appears that there are no clean naming frameworks we could use. It’s either a long name or a unique identifier like “AZURE” but then you don’t know what’s inside.

A way around it could be to identify Shells visually.

Please forgive my limited Photoshop skills but here is my attempt at creating a recognisable logo for the live stables shells (USDT, USDC, sUSD, DAI).

It’s simply combining the 4 logos of the stablecoins in the center and then adding a universal gradient circle around it that all shells would share. So you could pretty much tell that’s it’s a shell of 4 stables just by looking at it (if you’re familiar with the logos of the tokens). Logos are often small on exchanges and platforms but I like that approach so tell me what you think!

1 Like

This is actually quite similar to what Alchemix is doing, only

1: its their whole protocol
2: their stablecoin is strictly worse than dai, where shellusd would be better than any other stablecoins