*Please note Light Paper was written in November 2020. Some parts are outdated now. Rest of our Documentation is up to date and is continually modified and updated.
The objective of MonoX Protocol is to create a new design for capital inefficiencies caused by liquidity pairs, by using a single token pool model. MonoX achieves this goal by grouping deposited tokens into a virtual pair with the vUNIT stablecoin, instead of using liquidity pairs. MonoX introduces the premier bootstrap decentralized exchange, Monoswap. Project owners can list their tokens without the burden of capital requirements and focus on using funds for building the project instead of providing liquidity. This new protocol design results in lower trading fees, less capital to deposit for Liquidity Providers, less siloed capital and projects can launch their token with zero capital. It also creates opportunities for additional Decentralized Finance (DeFi) products/services such as lending and derivatives markets, while simultaneously providing a robust stablecoin that is backed by multiple assets in MonoX.
In 2020 Decentralized Finance (DeFi) has taken center stage as one of the most important vectors for value creation within the growing blockchain industry. We saw Total Value Locked (TVL) increase from $700m to over $20bn over the past 14 months, and DeFi emerged as the driving force behind building the new open financial system and ownership economy.
Within the DeFi, Decentralized Exchanges (DEXs) have become an essential pillar of the DeFi ecosystem and account for $1.5bn of daily volume as of December 2020. According to Dune Analytics, there are currently over 995,000 total unique trading addresses using DEXs within the Ethereum ecosystem.
However, despite the success of 2020, the market is still in its infancy, and many of these DeFi products can be vastly improved. In 2020 DeFi showed the industry what the baseline for value creation looks like now. Nevertheless, DeFi 2.0 will see new projects optimizing and pushing the boundaries of this value creation baseline to new heights.
Apart from the obvious UX/UI improvements, changes can be made at the protocol level, which would greatly benefit end-users and optimize DeFi products. Above all, lower costs, greater capital efficiency and further incentivization for network participants are ways in which DeFi products can be improved. Yet, there is an additional need to try and make trading more safe for DeFi users; rug pulls and scam token listings are an unfortunate stain, tainting the beauty of decentralization.
In this way, there are still opportunities to rethink and optimize how users exchange and transact value using liquidity pools. Through optimizing and solving the inefficiencies, and safeguarding participants, we can continue the progression of DeFi into a more mature market, as well as making it more accessible to the wider market of unbanked and retail customers beyond wealthy programmers.
MonoX Protocol aims to fix many of the inefficiencies created by using a liquidity pool pair design by proposing single token liquidity pools using a virtual stablecoin pair. This new design creates a more capital-efficient and cost effective product for end-users and a stablecoin backed by multiple assets. Our AMM two-tiered liquidity pool design also provides safeguarding against malicious token listings and rug pulls.
In 2020 we saw the rise of AMMs, a kind of DEX that uses smart contract logic and algorithms to allow exchange between digital assets. AMMs have challenged the dominance of centralized exchanges, and the market leader Uniswap even processed more daily transaction volume than Coinbase during summer. As of December 2020, Uniswap is exchanging more than $450m of value per day and more than 54% of total DEX volume. In less than a year, Uniswap grew from $12m TVL to over $3Bn at its peak in November. The top AMMs account for more than $4bn of liquidity locked in the DeFi ecosystem. Users have flocked to these decentralized exchanges because they can provide a permissionless liquidity pool to exchange digital assets with pricing dictated by algorithms instead of a centralized exchange with listing processes and order books.
Liquidity pools are smart contracts to which Liquidity Providers (LPs) deposit funds. Once the funds have been deposited to the pool, the AMM's algorithm creates the market for the digital assets to be traded, instead of using an order book.
For example, the constant product formula used for Uniswap is:
x * y = k
Where x is the amount of Token A in the pool, y is the amount of Token B in the pool, and k is a constant. This means that the users making swaps must not change the product of Token A and Token B (the pairs reserve balance), and it is represented as the invariant k.
Each smart contract or pair manages a liquidity pool composed of the reserves of the deposited ERC-20 tokens. The pool weight is allocated by the deposited reserve amounts of the reserve ERC-20 tokens. Pool weights vary depending on the protocol, for example, Uniswap uses a 50/50 split for pool weight of two tokens e.g. ETH/USDC. However, protocols like Balancer allow customizable pool weights and up to 8 tokens per pool.
Liquidity Providers can deposit an equal value of each underlying token and in exchange, receive LP tokens. The LP tokens represent shares of the total deposited reserves for both tokens in the pool. As a Liquidity Provider, you are rewarded with the trading fees accrued from swaps/transactions made through the pool. The fee rewards are relative to how much your LP tokens represent as a total of the deposited reserve. The protocol determines fees; for example, each trade in Uniswap charges a 0.3% fee. Liquidity Providers can realize their fee rewards at any time when they burn their LP tokens to withdraw their pool reserves share.
The model using liquidity pairs has been a huge success and one of the innovations that has allowed for such incredible growth to take place in DeFi. But the model is by no means perfect and there are range of problems negatively affecting participants, be it liquidity providers or traders.
Even though the rise of DeFi and AMM volume has grown exponentially in the past year, the industry standard using the liquidity pool pairs design is not capital efficient. The current design is not optimal in the way that capital is allocated and used by the protocol. Such great inefficiencies are well known within the industry. Even Hayden Adams, the founder of Uniswap, recognizes the limitations of current DeFi protocols:
Below are the primary reasons why liquidity pool pairs are suboptimal:
- Capital intensive: Liquidity Providers have to deposit multiple tokens to the liquidity pool.
- Capital expensive: often trades will swap between multiple pools, and each swap has an associated fee.
- Design results in siloed capital: there is no need for multiple pairs which lock capital in the pool pairs.
Each of these problems negatively affects every participant of such DeFi protocols. It impacts projects wanting to launch new tokens but do not have enough capital to create the market on Uniswap (i.e. not enough ETH), the Liquidity Providers and finally the traders.
In 2020, along with the rise of DeFi, we also saw the increased need for stable digital assets. Stablecoins are an integral pillar of the ecosystem. Not only do they offer users a safe haven from price volatility, but using stablecoins as collateral for borrowing/lending and yield farming increases utility drastically. Total stablecoin supply increased from $5Bn at the start of 2020 to over $43Bn as of April 2021.
The difficulty, however, is that the correct formula for keeping stablecoins pegged 1:1 to USD, while still retaining solvency, has not yet been perfected. Indeed, the three kinds of stablecoin, reserve backed, crypto collateralized and algorithmic pose their own risks and drawbacks.
Stablecoins are typically issued by a central provider and backed 1:1 with fiat using a tokenization and redemption process. Stablecoin supply is increased when users send collateral to this central provider who then mints new tokens. The provider holds the underlying collateral under custody and burns token supply as stablecoin are redeemed.
The peg is maintained by the arbitrage cycles. However, counterparty risk is an issue because the centralized provider’s assets can be frozen at any time (e.g. Gemini).
Transparency is a risk because without regular attestation reports and audits it is unclear if the reserve is actually backed at 1:1 (e.g. Tether).
A crypto collateralized stablecoin is typified by the utilization of cryptocurrency as its underlying collateral. The protocol relies on pricing the collateralized asset as its way of keeping the stablecoin pegged to one dollar.
However, in March 2020 the most successful crypto collateralized coin, DAI, moved from its peg when ETH price crashed. Many users who had locked funds in collateralized debt positions were liquidated, losing their funds.
MakerDAO has since implemented improvements to the system; however, the frailties of their prior mechanics only became evident when ETH crashed and, at the expense of users losing their funds.
Algorithmic coins use mathematical equations and game theory to trigger supply deflation and inflation in order to reach its target peg. In this way, they use an elastic supply scheme and are not backed by any collateral.
However, speculators can participate using secondary and tertiary assets designed to keep the system stable. Principles are based on seigniorage, meaning profiting from the creation of currency, i.e. the cost to produce the currency and the value of the currency itself.
While many speculators have profited from coins such as AMPL, ESD and DSD no algorithmic stablecoin has successfully managed to keep its peg.
MonoX is creating an ecosystem that will be the home to the next generation of builders, liquidity providers and traders. With the Monoswap protocol, we have taken a different route in designing our liquidity pools. Instead of using regular liquidity pool pairs, we utilize Single Token Liquidity pools.
Our protocol optimizes the capital inefficiencies created by liquidity pool pairs, giving users a more cost-effective end product. At the same, by deploying a two tired liquidity pool system, we can protect users from scams and rug pulls, while supporting and promoting genuine innovators in DeFi.
Single Token Liquidity pools function by grouping the deposited token into a virtual pair with our virtual unit stablecoin (vUNIT), instead of having the liquidity provider deposit multiple pool pairs, they only have to deposit one. In essence, liquidity providers only need to deposit “Token A” to the pool reserve and each token is paired with the vUNIT stablecoin. There is no pool weighting, only an amount of Token A reserve in the pool based upon how much liquidity has been provided to the pool.
AMMs like Uniswap use the constant product algorithm xy=k. Where x is Token A, y is Token B and k is the invariant.
Monoswap uses a similar ratio as Uniswap which forms a price curve. However, ours is based on a starting price and a would be price. When users first add liquidity to the pool they set a starting price, the assets are backed by vUNIT only when someone initially buys at the starting price. This is because the vUNIT balance needs to be positive for trustless listing pools.
If a user sells from the starting price the asset depreciates in value, if someone buys from the starting price the asset appreciates in value. As such, we use starting price and would be price instead of the ratio between Token A and Token B in the xy=k constant product formula. Our pricing algorithm is based on Uniswap’s model found here.
- Users only need to supply one token (Token A) to be an LP
- Projects can launch their token with zero capital (no ETH needed to create the pair)
- More capital efficient: 1. As a Liquidity Provider there is no need to deposit multiple tokens. This increases decentralization because being an LP is much less capital intensive
- Lower trading fees: 1. All the pools/pairs are in the same ERC1155 contract. It is much cheaper to interact with the same contract internally, than involving multiple other contracts. 2. Lengthy transaction paths are avoided because thanks to our vUNIT stablecoin, Token A will not go through a ‘path’ of pairs to swap into Token B. 3. Every trade is one swap and a flat 0.3% fee.
- Less capital siloed in multiple pool pairs: 1. As there is no need for multiple pool pairs, more capital is unlocked and free to use.
- Allows for borrowing and lending from same pool: 1. The borrowing and lending process is more optimized as users do not have to withdraw/reserve two tokens to keep the ratio (price) the same.
GAS used for initial testing of smart contracts January 4th 2021 was on average cheaper than Uniswap V2. (Please note contracts were not optimized when testing, and rewards had not been added).
MonoX liquidity pools consist of Token A and a Virtual Pair. The Virtual Pair is the liquidity pool for a regular ERC20 token and the virtual stable token (vUNIT).
vUNIT does not actually exist in the pool, which is why it can be thought of as virtual. Instead, vUNIT is expressed as a balance in the pool. For each liquidity pool, the balance is initially zero. However, when Token A is sold, the result is that the Token A balance decreases, and the vUNIT balance increases. The opposite is also true, and when Token A is bought, the inverse is reflected in the vUNIT balance.
As such, the virtual vUNIT balance can be represented as both positive and negative, depending on buying and selling pressure. When Token A is bought more than it is sold the vUNIT balance is positive; however, when Token A is sold more than it is bought, the vUNIT balance will become negative.
When listing a new token, the liquidity pool requires the vUNIT balance always to be non-negative. This is a security feature to create trustless listings of new tokens, while at the same time mitigating against the bad actors listing a token at a certain price and then selling more of the same token. This feature requires someone to purchase Token A first and then the pool will start having a positive vUNIT balance. Once the pool has a positive vUNIT balance, then it is possible to sell more of Token A. However, it is impossible to sell more tokens than have been bought.
vUNIT is our new kind of stablecoin introduced by MonoX, it is the glue that holds the protocol together. Our protocol solves the capital inefficiencies of liquidity pool pairs by grouping deposited tokens into a virtual pair with the vUNIT stablecoin. This allows us to offer single token pools whereby the user only needs to deposit one token to the pool instead of two. vUNIT is backed by all the assets in MonoX pools that have a positive vUNIT balance.
When a user first deposits liquidity to create a new pool, they set a starting price for the asset. This means that every asset in MonoX pools expresses their value in vUNIT. Therefore trading works by forming a similar pricing curve to Uniswap except while they use the ratio between two tokens, we have a starting price and a would be price.
If a user sells from the starting price the asset depreciates in value, if someone buys from the starting price the asset appreciates in value. As such, we use starting price and would be price instead of the ratio between Token A and Token B in the xy=k constant product formula. Our pricing algorithm is based on Uniswap’s model found here. However in this calculation vUNIT supply is equal to infinity which programs it to have no slippage and always peg to USD 1:1.
Example trade and vUNIT balance in the Pool
Users can swap any ERC token directly to vUNIT.
When users withdraw liquidity, they will receive vUNIT if the stablecoin virtual balance is positive in an official pool.
The pair is virtual. vUNIT is a real stablecoin. vUNIT is technically backed by all the assets in the pool. However, it’s more accurate to say that it is backed by the sell function because when a user sells into vUNIT it mints the physical stablecoin. In essence, vUNIT is backed by the liquidity itself, not the assets. vUNIT is only backed when there is a positive vUNIT balance in the pool. Trustless listing pools cannot go below 0 for vUNIT balance.
All the assets in the pools express their value in terms of vUNIT. The supply of vUNIT is fixed at infinity which pegs 1:1 with USD.
If several different assets were artificially held at a price different to the market price, it would cause the vUNIT to lose its peg. However, vUNIT would retain its peg as arbitrageurs would step in to trade the differences if the assets are not priced similarly to what’s on the market.
Yes, you can mint vUNIT by trading directly into it.
The swapping process works exactly the same as a paired liquidity pool.
In each pool, Token A is paired with vUNIT. Exchanging Token A with Token B works by swapping Token A to vUNIT and then from vUNIT to Token B.
This means that every trade is always the same 0.3% fee, and there are never more than two swaps taking place like in paired liquidity pool AMMs.
The changes in the vUNIT balance (+ or -) from the starting price initially set when adding liquidity form the pricing curve we are all familiar with.
Example trade and vUNIT balance
How swappping between two non-vUNIT tokens works
Adding Liquidity on Monoswap works exactly the same as in paired liquidity pools:
When an LP adds liquidity to the pool for token A, the price stays the same. The amount of Token A increases in the pool, and therefore the liquidity pool reserve increases. In exchange for providing liquidity, the LP receives their share of the liquidity reserve and the ERC1155 LP token. Liquidity providers receive a share of the fees proportional to their share of the liquidity reserve.
Providing Liquidity on Monoswap
Removing Liquidity works exactly the same as a paired pool:
When one removes liquidity from the pool for Token A, the price of the token stays the same. The pool burns the liquidity provider’s ERC 1155 LP token. In exchange, the pool transfers to the user their share of Token A’s virtual pair’s net value. When the vUNIT balance is positive, the user will get their share of vUNIT plus their share of Token A. When the vUNIT balance is negative, the user will receive their share of Token A, minus their share of vUNIT debt valued in Token A.
Removing Liquidity on Monoswap
We will launch two kinds of liquidity pools. There will be trustless listing pools, whereby any user is able to launch a token and create a liquidity pool. Additionally, we will have ‘Official Pools’ which have passed a community DAO vote to become an official MonoX pool.
Such a system is beneficial to our ecosystem for 3 primary reasons:
- 1.Increased Decentralization - Single token design means that as a developer or project, you do not need a huge amount of capital (equivalent amount of ETH) to launch your token. Projects can save capital for what matters most, development, testing and auditing.
- 2.User Security — We are aware that users are weary of sketchy projects in the DeFi space. To combat that, Trustless Listing Pools on Monoswap will have vUNIT balances that cannot go below zero. However, it is still up to the community to always check the contract address and use their discretion when investing in a new project.
- 3.Quality Control and Regulation — One of our primary concerns is security and with Trustless Pools as well as Official Pools, we can easily separate the scam projects while supporting and promoting genuine projects. We all know DeFi is saturated with scammers and “pump and dump” projects. As we scale up to offer fair launch services we make it easier for the true and dedicated developers and projects to be recognized.
Trustless listing means that anyone (project or developer) can write a smart contract, create a pool for their token, and add liquidity so it can be launched and traded. However, a built-in feature to safeguard against malicious token listings is that for trustless listings, the vUNIT balance is not allowed to go past 0.
By not allowing the vUNIT balance to go below 0, we can prevent malicious actors listing a token and selling it back to themselves. If the vUNIT balance goes to 0 then people cannot sell the token anymore. However, it is still possible to buy the token. As a result, a user cannot list a token, set the price and add liquidity, then sell all the tokens back themselves into vUNIT.
A proposal will be made for the pool and the community will vote on the pool to be accepted as an Official Pool.
However, upon launching, we will create Official Pools for some of the projects that are recognized as genuine. The community will be able to provide liquidity on these pools immediately when we launch. Additionally, we will reach out to partner projects with the aim of setting up an official pool for their token and seeding the pool with liquidity should they wish to.
How trustless listing pools become Official Pools
(Please note tokenomics are not final and subject to change before launch. Updates will be relayed.)
Tokenomics are not final and are subject to change prior to initial launch
$MONO is the governance token for MonoX. $MONO holders will be able to participate in DAO votes and own the treasury. A portion of protocol fees will go to the treasury.
Our tokenomics ensure:
- Utility through Governance
- Network participation
- Incentivization mechanisms for liquidity providers.
- Retroactive token distribution via airdrop to reward early beta users.
- Long term value accrual: i. Network effect provides impetus for token value appreciation as MonoX protocol grows.
- 1.Max Supply: 100,000,000 MONO token (ERC20)
- 2.Growth: 42,000 initially, issue per 6,000 blocks, decay at 0.999
- 1.LPs providing liquidity in selected/promo pools will get non-transferrable $MONO shares
- 2.Stake promo assets to get $MONO tokens: a. Protocol fees are allocated for purchasing and burning $MONO tokens. The initial reward will be 42,000 MONO issued per 6,000 blocks decay at 0.999
- 3.Removing liquidity burns non-transferrable $MONO shares accordingly.
- 4.Revenue is also allocated to our DAO Treasury owned by $MONO token holders
- Future MONO is an ERC20 token that is tradable just like any other ERC20 token.
- At TGE Future MONO is distributed to Seed and Strategic holders.
- Future MONO releases the underlying MONO tokens based on the maturation schedule.
- It allows us to release MONO slower while at the same time giving investors liquidity and control over when they wish to sell their tokens.
- 1.% of $MONO tokens will be sold in Seed and Private round
- 2.We will list MONO on our own AMM for the community. Listing Date TBD.
$MONO holders will be able to vote on protocol tx fees, treasury revenue, and prospective new features. Our service provider is snapshot.org
Community voting will be based on a standard governance framework:
- 1.Each $MONO token will allow 1 vote for each proposal.
- 2.There is no minimum amount of $MONO required to participate in a vote.
- 3.The proposal will need to have equal to, or more than 51% of the votes cast in order to pass
- 4.Quorum for proposal voting will be set at 30% of circulating $MONO delegated to voting or else the proposal will not pass.
- 5.Each voting period will be 48 hours
- 6.Proposals that pass will be executed 48 hours after the vote