---
description: >-
  Dolomite is a next-generation decentralized money market protocol and DEX that
  offers broad token support and capital efficiency with its virtual liquidity
  system.
---

# Dolomite

Dolomite combines the strengths of a DEX and a lending protocol into the most capital efficient and modular protocol DeFi has seen yet! Dolomite is capable of offering over-collateralized loans, margin trading, spot trading and other financial instruments.&#x20;

Dolomite makes hedging your portfolio, leveraging it, or unlocking dormant equity a breeze through its broad token support, capital efficiency, and non-rent seeking model for passing through DeFi rewards to users. Over time, Dolomite aims to become a hub for DeFi activity to allow other protocols, yield aggregators, DAOs, market makers, hedge funds, and others to manage their portfolios and run on-chain strategies.

## What makes Dolomite's architecture special?

<figure><img src="https://1945963910-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX64bpiBusNgcRH6dN4AS%2Fuploads%2F0krq4yW0L8g1AhAxz51W%2Fdolomite-architecture.png?alt=media&#x26;token=37ac2fc6-3327-4e16-b32b-fabb7a07a6ab" alt=""><figcaption><p>A diagram showcasing Dolomite's architecture</p></figcaption></figure>

Dolomite has an extremely modular architecture that's composed of two layers - the core (immutable) layer & the module (mutable) layer.

Dolomite was designed to embody the ethos of DeFi, utilizing an immutable base layer that can only change certain configuration parameters (as explained in the [Admin Privileges](admin-privileges) section) as well as retaining much-needed modularity to adapt to new environments, trends, and paradigms as DeFi continues to evolve. This modularity allows for a clear upgrade path that preserves the core behavior of Dolomite while being able to introduce new features that don't conflict with previously-deployed modules.

The above diagram showcases some of the features Dolomite can create, integrate, or embed into its core margin protocol to offer unique ways for you to manage your portfolio. All of the different modules are created by sending `Operations` through to the immutable layer with any sequence of `Actions`. While some of the actions shown are fairly standard, the most interesting of them shown is `Transfer (with internal liquidity)` and the two `Trade` actions. Transferring allows you to move funds between subaccounts or between different wallets altogether. Trading enables you to use your liquidity to trade with external systems (potentially using flash loans, which are _free_ on Dolomite) or between other sources of virtual liquidity (in the case of `Trade with internal liquidity`).

This model opens the doors for a lot of interesting features in the future  and new ways to tap into Dolomite's lending protocol. Some examples include:

* Pair trading
* Impermanent Loss (volatility) trading
* Trading within Dolomite using various DEX models (while still earning lending yield at the same time!)
* Trading with external sources of liquidity through an aggregator or native DEX adapter
* Borrowing against diverse assets while continuing to earn boosted rewards, like `GLP`, `plvGLP` and Camelot's nitro pools
* Listing assets that have restrictions on usage to handle economic and technical risk, like `jUSDC`, Atlas SI tokens, and Lyra's option vaults

## What is capital efficiency?

Dolomite's architecture enables capital efficiency in a few ways because of Dolomite's virtual liquidity system. Importantly, Capital Efficiency in this context means the ability to recycle or reuse liquidity in more than one way to receive multiple sources of yield at the same time.

### Reusing Liquidity

Dolomite enables capital efficiency through its Trading of internal liquidity by easily allowing users to earn swap fees at the same time as lending yield (shown below).

<figure><img src="https://1945963910-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX64bpiBusNgcRH6dN4AS%2Fuploads%2F1kRUIASDhGCfq3WcnS8B%2Fimage.png?alt=media&#x26;token=47fb0dba-4a87-427d-b596-872536e3d8f6" alt=""><figcaption><p>A diagram showing the ability to earn lending yield and swap fees at the same time on Dolomite</p></figcaption></figure>

As Dolomite evolves to offer more ways to trade with internal liquidity or liquidity deepens, the more utility Dolomite can offer to users as a money market protocol. Consider the example of the USDC depeg event that happened in March of 2023. Users that held USDT collateral in money markets like AAVE were unable to withdraw their liquidity because all  USDT was being utilized to lever up and purchase de-pegged USDC. With Dolomite's internal liquidity capability, users could have swapped their _virtual USDT_ for some asset to be able to withdraw from the system. Or more interestingly, users could have borrowed virtual USDT and traded it with internal liquidity and never withdrawn it from the system at all; thus leaving more USDT available in Dolomite to process withdrawals and keeping borrow interest rates cheaper.

Why would this keep interest rates cheaper? Consider the example where Dolomite allows a user to borrow USDT from `sub account 1` to `sub account 0`. In this example, Dolomite's borrow balance for USDT would go up but so does it its supply balance _by the same amount_. Let's walk through this step by step below.

{% code overflow="wrap" fullWidth="false" %}
```
User A balances:
+1 ETH in sub account 0

User B balances:
+0.1 ETH in sub account 0
+1,000 USDT in sub account 0

Dolomite overall balances:
+1.1 ETH supplied
+1,000 USDT supplied
0 USDT borrowed
Utilization rate of USDT: 0%

Actions:
1. User A transfers 1 ETH as collateral to sub account 1 from sub account 0

2. User A transfers 100 USDT from sub account 1 to sub account 0. Since User A had a balance of 0 in sub account 1, their balance moves into a borrowed state. Sub account 0 receives the funds.

User A balances:
0 ETH in sub account 0
+100 USDT in sub account 0
+1 ETH in sub account 1
-100 USDT in sub account 1

Dolomite overall balances:
+1.1 ETH supplied
+1,100 USDT supplied
-100 USDT borrowed
Utilization rate of USDT: 9.09%

Post Actions:
If User A decides to withdraw the +100 USDT from sub account 0, that would push the utilization toward 10% (supplied amount would be +1,000 USDT and borrowed amount would still be -100 USDT). 

However, if Dolomite had competitive internal liquidity for trading the USDT, it would keep the ERC20 tokens internalized to the system and would keep utilization lower! Why is that? If User A trades the +100 USDT with User B's 0.1 ETH, the net balance of ETH and USDT remain the same from the overall perspective of Dolomite. (+1.1 ETH, +1,100 USDT, -100 USDT).
```
{% endcode %}

### Retaining Control over your Assets

Dolomite empowers users to retain control over their assets with its innovative [Isolation Mode](../risk-management#isolation-mode) and virtualized liquidity. Using `plvGLP` as an example, you can stake your entire deposited `plvGLP` balance from within Dolomite while continuing to borrow against your entire virtual balance across as many isolated positions as you'd like.

<figure><img src="https://1945963910-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX64bpiBusNgcRH6dN4AS%2Fuploads%2FQGlEd5B1RMMhR22yCSCK%2Fimage.png?alt=media&#x26;token=b72147be-ee93-42c6-8744-3e9d25d08bd7" alt=""><figcaption><p>The plvGLP balance row on the Balances page</p></figcaption></figure>

<figure><img src="https://1945963910-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX64bpiBusNgcRH6dN4AS%2Fuploads%2FC66g6rYeCzOxV6ihU1YN%2Fimage.png?alt=media&#x26;token=cd493474-5a5d-409d-8798-bdcf40723fa7" alt=""><figcaption><p>The Claim Rewards panel for plvGLP</p></figcaption></figure>

From Dolomite's interface, you can claim your PLS rewards the same way your normally would on Plutus' web application while having the ability to borrow against your `plvGLP`!

## What is broad token support?

Dolomite is the first lending protocol to be able to list thousands of assets within a central pooling architecture. Morevoer, Dolomite was built to support a diverse set of assets, not just typical ERC20 tokens.&#x20;

Going back to the prior example of `plvGLP`, Dolomite allows you to stake or un-stake your deposited `plvGLP` and borrow against your staked `plvGLP` despite the fact that staked plvGLP is not tokenized! This represents a breakthrough in which users can finally work with non-standard tokens from a lending protocol and continue to participate in the respective token's ecosystem (in this case `plvGLP`).
