Links
🟪

Symbiosis Octopool

Symbiosis Octopool is a AMM liquidity pool used to execute cross-chain operations.

Introducing Octopool

Each cross-chain operation is a sequence of intermediate swaps. The goal of the intermediate swaps is to exchange Token A on Blockchain A for Token B on Blockchain B at the best rate.
Let's consider an example of a cross-chain operation: exchanging MATIC from Polygon for AVAX on Avalanche. Polygon is the source blockchain, and Avalanche is the destination blockchain for this cross-chain operation (Scheme 1).
Scheme 1. Cross-chain swap: MATIC from Polygon for AVAX on Avalanche.

Symbiosis Octopool

Symbiosis Octopool is an AMM liquidity pool containing several types of tokens of the same nominal value. The pool design allows:
  • Any token to any token swap within the pool (there are no token-pair constraints),
  • Single-sided liquidity provision/withdrawal,
  • New tokens (tokens for a newly joined blockchain) to be added to the existing pool.
The capital efficiency of Symbiosis Octopool allows cross-chain operations for multiple blockchains to be executed in an efficient manner.
The security audit of Symbiosis Octopool can be found in our collection of Security Audits of Symbiosis.
Symbiosis Octopool is located on BOBA BNB: the Symbiosis service chain (S-chain). Symbiosis core smart contracts that implement mint/burn functionality are located on this blockchain.
Symbiosis Octopool contains several types of sTokens and one type of stablecoin for BOBA BNB: USDC. Each type of sToken represents a stablecoin on a corresponding blockchain:
  • sUSDC for Polygon represents USDC on Polygon,
  • sUSDT for Avalanche represents USDT on Avalanche,
  • sUSDC for Ethereum represents USDC on Ethereum,
  • sUSDC for zkSync Era represents USDC on zkSync Era,
  • etc.
Since sTokens are minted 1:1 with stablecoins, all sTokens in Symbiosis Octopool have the same face value.
Scheme 2. Types of tokens in Symbiosis Octopool.
When Symbiosis starts supporting a new blockchain, a new type of sToken for that blockchain is added to Symbiosis Octopool.

Third-party Liquidity Pools

Symbiosis requires certain types of stablecoins to perform cross-chain operations:
  1. 1.
    If a user sends a token different from the stablecoin used for cross-chain operations, Symbiosis will exchange it for the required stablecoin on the source blockchain (Scheme 1, Step 2).
  2. 2.
    If a user wishes to receive a token different from the stablecoin used for cross-chain operations, Symbiosis will exchange the stablecoin for the token on the destination blockchain (Scheme 1, Step 9).
Symbiosis uses DEX aggregators such as 1inch and OpenOcean to get the best price for the intermediate on-chain swaps on the source and destination blockchains.

Symbiosis Octopool Math

Basic Concepts

Symbiosis Octopool is an AMM liquidity pool used to exchange any token for any token represented in the pool. In other words, the pool is not divided into smaller sub-pools (one possible division would be into pairs such as {Token X - Token Y}), but is a single omni-pool that contains all of the exchange's resources. Each token represented in the pool is associated with two concepts: asset and liability.
The asset of token
kk
is the amount of token
kk
available for withdrawal and/or exchange at the given moment.
The liability in token
kk
is a number indicating how much of that token has been deposited into the pool by liquidity providers at the moment.
Symbiosis Octopool always strives for an equilibrium state. An equilibrium state refers to the state of the pool when the asset of each token is equal to its liability, i.e., when the actual funds for each token are equal to the pool's commitment to liquidity providers for that token.
Symbiosis Octopool monitors token states by calculating the coverage ratio for each token:
rk=AkLk,r_k=\frac{A_k}{L_k},
where
AkA_k
is the asset of token
kk
available for withdrawal and/or for exchange, and
LkL_k
is the liability in token
kk
.
So the pool reaches the equilibrium state when
rk=1r_k=1
for any
kT,k\subseteq T,
where
TT
is the set of all tokens in the pool.

Invariant Curve

At the heart of any Automated Market Maker (AMM) is an equation called an invariant curve that links the coverage ratios of all tokens represented in the pool. The idea is that no matter what exchanges/withdrawals/liquidity supplies occur in the pool, the coverage ratios must always satisfy this equation.
The Symbiosis Octopool invariant curve is as follows:
kTLk(rkArk)=const\sum_{k\subseteq T}{L_k(r_k - \frac{A}{r_k})}=const
The sum is taken over all tokens in the pool:
  • TT
    is the set of all tokens in the pool,
  • LkL_k
    is the liability in token
    kk
    ,
  • rkr_k
    is the coverage ratio of token
    kk
    ,
  • AA
    is the amplification coefficient. The amplification coefficient is chosen between zero and one. This is a default parameter that controls the scaling of the overall price range.

Symbiosis Octopool Token Details

sToken is ERC1155 standard.
Decimal values are in the 18th digit.