Symbiosis Octopool is a AMM liquidity pool used to execute cross-chain operations.
Symbiosis goal is to find the best route for each swap: to get the maximum possible amount of tokens and pay less on-chain and cross-chain fees. And the Symbiosis Octopools play a key role in every cross-chain operation.
A 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.
Let's consider an example of a cross-chain operation: exchanging MATIC from Polygon for UNI on Ethereum. Polygon is the source blockchain, and Ethereum is the destination blockchain for this cross-chain operation. The swap can be routed through the stablecoin or WETH bridging: please compare Scheme 1 and Scheme 2 below.
Scheme 1. Cross-chain swap of MATIC from Polygon for UNI on Ethereum.
Scheme 2. Cross-chain swap of MATIC from Polygon for UNI on Ethereum.
Symbiosis owns two Octopools, both are located on Boba BNB: the Symbiosis host or service chain (S-chain):
- One of the pools sUSDC, sUSDC.e, sBUSD for corresponding blockchains (Ethereum, the BNB chain, etc.) and USDC for Boba BNB,
- The other contains sWETH tokens for corresponding blockchains (Ethereum, Arbitrum, etc.)
When Symbiosis starts supporting a new blockchain, a new type of sToken for that blockchain is added to Symbiosis Octopool.
The Symbiosis Octopool with sStables 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 (Scheme 3):
- sUSDC for Polygon represents USDC on Polygon,
- sUSDC for Avalanche represents USDC on Avalanche,
- sUSDC for Ethereum represents USDC on Ethereum,
- sUSDC for zkSync Era represents USDC on zkSync Era,
All these sTokens are minted 1:1 with stablecoins, so all sTokens (sStables) in this Symbiosis Octopool have the same face value.
The Symbiosis Octopool with sWETHs contains several types of sTokens. Each type of sToken represents a WETH token on a corresponding blockchain (Scheme 3):
- sWETH for Polygon represents WETH on Polygon,
- sWETH for Ethereum represents WETH on Ethereum,
- sWETH for zkSync Era represents WETH on zkSync Era,
All these sTokens are minted 1:1 with WETH, so all sTokens (sWETHs) in this Symbiosis Octopool have the same face value.
Scheme 3. Types of sTokens in the Symbiosis Octopools.
Symbiosis requires certain types of stablecoins to perform cross-chain operations:
- 1.If a user sends a token different from the token used for cross-chain operations, Symbiosis will exchange it for the required token (a stablecoin or WETH) on the source blockchain (Scheme 1 & 2, Step 2).
- 2.If a user wishes to receive a token different from the token used for cross-chain operations, Symbiosis will exchange it for the required token on the destination blockchain (Scheme 1 & 2, Step 9).
sToken is ERC20 standard. The pool LP token is ERC1155 standard.
Decimal values are in the 18th digit.