Security and Risks
Since Singularity is heavily dependent on live, accurate oracles, pools can only be created by the admin (as opposed to via a permissionless model) since we need to ensure the quality of reported prices to protect liquidity providers. At launch, we will only support pools for BTC, ETH, USDC, and DAI, as these markets are extremely liquid and have various CEX feeds.
The Singularity team has deployed multiple instances of servers that fetch and aggregate token prices off-chain from CEXs (Binance, Okex, FTX, etc) and push them on-chain to the oracle. We have also implemented sanity checks against Chainlink oracles to ensure reported prices are accurate.
While LPs are not exposed to impermanent loss, they are exposed to pool imbalance risk when withdrawing their liquidity. If a pool is heavily undercollateralized (assets < liabilities), then the withdrawal fee incurred may be significant. Whilst positive slippage opportunities encourage traders to bring the pool back to collateralization, scenarios may arise where the pool stays undercollateralized for long durations.
All Singularity contracts are non-upgradable, meaning once deployed, the contract code will be unchangeable. This is a double-edged sword as if a bug is discovered, there is little to no recourse. However, the benefit is there is no risk of the team upgrading the code to be malicious or for other, similarly dangerous scenarios to occur.