Curio Multiple Protocol

Allow your Curio ecosystem tokens (CSC, CUR, CURV) to bring you passive income, as well as get a loan for any of your needs.

Introduction

Curio Multiple is a protocol on the Ethereum blockchain that establishes money markets, which are pools of assets with algorithmically derived interest rates, based on the supply and demand for the asset. Suppliers (and borrowers) of an asset interact directly with the protocol, earning (and paying) a floating interest rate, without having to negotiate terms such as maturity, interest rate, or collateral with a peer or counterparty.

Each money market is unique to an Ethereum asset (ERC-20 Curio Stablecoin, or an ERC-20 utility token such as CUR token), and contains a transparent and publicly-inspectable ledger, with a record of all transactions and historical interest rates.

Lenders

Unlike an exchange or peer-to-peer platform, where a user’s assets are matched and lent to another user, the Multiple protocol aggregates the supply of each user; when a user supplies an asset, it becomes a fungible resource. This approach offers significantly more liquidity than direct lending; unless every asset in a market is borrowed, users can withdraw their assets at any time, without waiting for a specific loan to mature. Users can use Curio Stablecoin (CSC), CUR and CURV tokens as assets. Assets supplied to a market are represented by an ERC-20 token balance (“mToken” - mCSC, mCUR, mCURV), which entitles the owner to an increasing quantity of the underlying asset. As the money market accrues interest, which is a function of borrowing demand, mTokens become convertible into an increasing amount of the underlying asset. The earned interest is represented by the mToken increasing in price relative to the underlying asset. Following economic theory, interest rates (the price of mToken) should increase as a function of demand; when demand is low, interest rates should be low, and vise versa when demand is high. In this way, earning interest is as simple as holding a ERC-20 mToken.

Borrowers

Since the aim of Multiple is to have zero counterparty risk, borrowers would need to deposit collateral in order to borrow from Multiple. Maintaining excess collateral ensures that there is near to zero risk of a borrower defaulting. Each borrowing position needs to be over collateralized; hence the value you borrow is less than what you deposit. Since the underlying collateral is also volatile, it could drop below a certain threshold which would trigger the smart contract to close the position (also called liquidation). In these circumstances, the borrower gets to keep the borrowed amount but loses the collateral. In order to get back your locked collateral, you would need to repay the credit, including the outstanding interest, which of course is also volatile.

Controller

The Controller is the risk management layer of the Multiple protocol; it determines how much collateral a user is required to maintain, and whether (and by how much) a user can be liquidated. Each time a user interacts with a mToken, the Controller is asked to approve or deny the transaction. The Controller maps user balances to prices (via the Price Oracle) to risk weights to make its determinations.

Oracle

The Controller Protocol requires real-time information about the market price of the collateral assets in Creator Vaults. For this, the system uses Curio Chainlink Oracle. Curio Chainlink Oracle uses special APIs to find and transmit real-time data about the value of the collateral asset to Multiple. For security, price changes are limited (at the protocol level) to 10% per hour, unless a manual approval is provided by a second, offline address.

Governance

Multiple is managed by a decentralized community of CGT token-holders and their delegates, who propose and vote on upgrades to the protocol. Users obtain CGT by buying it on exchanges. Any address with more than 100,000 CGT delegated to it may propose governance actions, which are executable code. When a proposal is created, the community can submit their votes during a 3 day voting period. If a majority, and at least 400,000 votes are cast for the proposal, it is queued in a Timelock contract, and can be implemented after a 2 day waiting period.

Actors

Lenders - users, who lend assets to the vault

Borrowers - users, who borrow assets from the vault

Vault - “liquidity pool”, from which borrowers can borrow assets

Oracle - API, that gives real-time price of asset

Holders - holders of CGT (Curio Governance Token)

Gov - system, that allows holders to change protocol parameters

Controller - smart contract, what allows to borrow or lend assets and allow a user action to proceed

Lending

Lenders - Controller - user lend asset to the Controller/user return mTokens

Controller - Oracle - oracle give real-time price of asset to the Controller

Controller - Collators - request processing

Collators - Validators - transmission of block for finalization

Validators - Collator - Controller - confirmation of the transaction

Controller - Vault - transmission of asset to the vault

Vault - Controller - transmission of mTokens/asset to Controller

Controller - Lenders - transmission of mTokens/asset to user

Borrowing

Borrowers - Controller - user lend collateral to the Controller/ user return borrowed asset and interest

Controller - Oracle - oracle give real-time price of asset to the Controller

Controller - Collators - request processing

Collators - Validators - transmission of block for finalization

Validators - Collator - Controller - confirmation of the transaction

Controller - Vault - transmission of asset to the vault

Vault - Controller - transmission of mTokens/asset to Controller

Controller - Borrowers - transmission of borrowed assets/collateral to user

Governance

Holders - Gov - interaction with the governance, transmission of new protocol parameters

Gov - Controller - setting new system parameters

Curio Chainlink

Controller - Curio Chainlink Token - creating a request

Curio Chainlink Token - Curio Chainlink Oracle - preparing to transfer a request perform settlement

Curio Chainlink Oracle - Volta Remote RPC - Curio Chainlink Node - transferring a request and processing it

Curio Chainlink Node - Volta Remote RPC - Chainlink Oracle - returning request with answer

Curio Chainlink Oracle - Controller - returning request with answer to the client