Assets and Balances
This section describes how user assets, or rather portfolios of assets, are organised within Equilibrium.
"Asset" is a generic term describing some cryptocurrency. Assets can be thought of as tokens inside the Polkadot ecosystem, at least to the extent that they also have some supply, as well as logic governing changes to this supply. Users can obtain assets on their account balance in one of the following ways:
- Deposit: bring assets like BTC, ETH, and ERC-20 tokens into other blockchains by way of purpose-built bridges.
- Claim: claim EQ tokens distributed during the token swap.
- Receive: someone transfers assets to user's account.
- Trade: exchange or swap one asset for another
Equilibrium's assets are fundamentally different from Polkadot’s assets and currency in that we do not define mint / burn / transfer operations for them. An asset module is purely a storage of assets parameters. We have different asset types within the system:
- Native: EQ for Equilibrium, GENS for Genshiro - these are our native asset for respective parachains in Polkadot and Kusama.
- Physical: Any asset that is bridgeable into our parachain. Kusama and Polkadot based assets are available via XCM, other blockchain based assets (BTC, ETH, BNB, e.t.c.) are available via cross-chain bridges.
- Synthetic: We have a native stable coin called EQD (Equilibrium dollar) which is synthetic in a sense that its supply may increase or decrease based on the demand for the stablecoin (mints and burns).
- LP tokens: Liquidity Pool Tokens from Curve and Yield AMMs.
This sections covers some of the aspects of the Equilibrium design in relation to Borrowers, Insurers and Lenders, as well as briefly covers all of the places inside the protocol where users might have asset balances.
Equilibrium uses the substrate balances module to store and modify user account balances. There are several key features that distinguish Equilibrium balances module from the standard balances pallet, which we describe further in this section.
First of all, we have a master account in Equilibrium, which acts like a wallet and a starting entry point to our blockchain products (very similar to Polygon wallet), then each master account may have separate sub-accounts with following types:
Each user sub-account may hold different asset portfolios. Borrower and Bailsman sub-accounts may also have liabilities (debt), which are represented with negative balances in that corresponding asset — negative balances represent borrowed assets. Consider the following totally viable example of an account balance configuration in Equilibrium:
The table above shows an account with BTC in assets having USD and ETH borrowed against it. Judging by the balance values, the collateralization is slightly less than 200% here.
Accounts with liabilities are subject to margin requirements, meaning that the total value of their assets should always stay above the total value of their liabilities, otherwise they get liquidated. In theory, Equilibrium's risk and pricing model allows for margin requirement of 0% (collateral value = debt value), but due to block time and price oracle limitations in practice, we risk having untimely market data in the event of abrupt market decline. That's why we limit the critical margin to 5%, allowing 5% wiggle room for possible delays.
No account can hold positive and negative balances in the same asset simultaneously. To see a positive balance in a particular asset, the user must get rid of the negative balance first, and vice versa.
Unlike Borrower or Bailsman sub-accounts lending in Equilibrium is done in a pooled manner: Liquidity providers stake assets they want to lend into asset-specific pools and earn floating interest rates when borrowers and traders borrow assets.
Equilibrium protocol does not guarantee liquidity, instead it relies on the interest rate model to incentivise it. In periods of extreme demand for an asset, the liquidity of the protocol (the tokens available to withdraw or borrow) will decline; when this occur, interest rates rise, incentivising supply, and disincentivizing borrowing. Users may deposit liquidity into lending pools directly from their master accounts.
While users generate debt tokens or debt assets directly to their blockchain addresses in traditional DeFi, borrowing in Equilibrium is always a transfer of value to another account. This approach lets us simplify an exchange logic. Consider a leveraged asset buy example: