πŸ§‘πŸ½β€πŸ”§ Governance principles

This page describes the TurboSwap governance use cases, such as listing/delisting assets, attaching/detaching exchanges, setting interest rates, marginal quotients, and the target capital allocation

Governance Overview

The TurboSwap protocol has a number of parameters that could be adjusted in run time. This includes to list all assets allowed to be traded, parameters such as borrow interest rates and marginal quotients, target capital allocation, the list of price oracles and exchanges to be used etc.

The TurboSwap Governance is a group of persons eligible to set the run-time configuration of the TurboSwap protocol. The group could include TurboSwap protocol creators, major holders of the TurboSwap tokens, as well as independent respectable persons, well known in the DeFi industry.

The governance issues transactions to the protocol via a multi-signature wallet: a special smart contract that requires a certain number of governance members to approve a transaction before the transaction could be executed.

Particular actions that can be performed by the Governance are listed in the following sections.

List an Asset

When the Governance lists a new asset to be tradable in the protocol, it provides the following information:

  • The address of the token smart contract for the asset

  • The borrow interest rate for the asset

  • The marginal quotient of the asset

  • The price oracle to be used to obtain current market price for the asset

Only the listed assets could be deposited and traded in the protocol.

Delist an Asset

While listing an assets is quite straightforward, delisting is much more tricky, as existing positions in the asset cannot be eliminated immediately, so delisting basically means that positions in the asset cannot be extended anymore, while existing positions could still be covered. Probably, we don't need to support delisting at all.

Attach or Detach an Exchange

Users of the TurboSwap protocol may perform trades on a number of on-chain exchanges attached to the protocol. The Governance may attach or detach exchanges at any time. The governance may also set what asset pairs may be traded on each attached exchange.

It is important to attach only exchanges that have decent liquidity and are resistant to price manipulations, as the protocol trusts exchange prices when doing liquidations and rebalances.

Set Interest Rate

The governance sets and continuously adjusts borrow interest rates for the listed assets. As higher interest rates may harm existing borrowers, there should be some mechanism to protect them. See the "Notice Period" section for a suggestion of such a mechanism.

Set Marginal Quotient

The governance also sets and continuously adjusts marginal quotients for the listed assets. A marginal quotient basically says how volatile the corresponding asset is.

Set Target Capital Allocation

Capital is allocated to a basket of assets in a certain proportion. The governance sets the target, or desires weights of every asset in the capital. For new assets the initial target weight is zero, and then the governance may change this. Usually, the governance increases the weight of an assets and reduces the weights of another so the sum of all weights is always 100%.

Set Price Oracles

For every listed asset the protocol needs to know the current market price. The protocol uses on-chain price oracles for to obtain the prices. The governance may configure what price oracle to use for what asset, and may change this configuration when needed.

Set Protocol Fees

Governance is also responsible for setting the protocol fees for various operations.

Notice Period

Some governance actions could be harmful for certain users of the protocol. For example, high interest rates could be harmful for the borrowers, and high withdrawal fees could be harmful for deposit holders who wants to close their positions. There should be a mechanism to protect users from harmful or even malicious actions of the governance.

One simple solution is a notice period feature. The idea is that the governance cannot perform an action instantly. It rather has to announce every action in advance, and actually perform the action only when a certain time period has passed since the announcement. Thus the users, who don't agree with the announced change will be able to flee before the change will take effect. Also, a bad reaction to the announcement may motivate the governance to cancel the change. This is a cheap yet efficient mechanism to make the governance more responsible and more user oriented.

Last updated