Heiko Finance White Paper
Version 0.1: Heiko Finance is the sister network to Parallel and HKO is the native token. Note that details written here are subject to change as we iterate and work through the development.

β… . Abstract

Similar to the relationship between Polkadot and its β€œcanary network” Kusama, Heiko Finance is the sister network to Parallel, and the parachain that we will launch on the Kusama network. This paper introduces three decentralized, Kusama-powered protocols built to accelerate liquidity and adoption on the Kusama network. The first is a decentralized money market protocol that offers lending and borrowing. The second is a staking derivative protocol that tokenizes native KSM tokens. The third is an under collateralized lending market built to help teams form capital for parachain auctions. This paper outlines our protocol designs and product strategies.

β…‘. Introduction

The Kusama ecosystem, since its inception, has a market cap of more than $40 billion at the time of writing [1]. Currently, KSM holders stake into the relay chain to earn an estimated 14% annual return on their staked KSM. However, the staked KSM remains illiquid and it takes around 7 days to unstake them. This requires KSM holders to face a high opportunity cost when utilizing KSM in other decentralized applications, as they have to forego their staking income. Additionally, users need to earn more than 14% in these protocols, otherwise it may be more beneficial to take the risk-free rate from staking. Unfortunately, there are no live applications in the Kusama ecosystem that allow users who have staked KSM to get liquidity.
Our platform introduces a new financial primitive for staked KSM, which allows users to accrue interest from staking while still having a liquid asset not subject to lockups or lengthy unlock periods. This staked KSM financial primitive will be referred to as xKSM. Lenders will be able to earn interest income on their xKSM, and borrowers will be able to get loans against their KSM denominated in stable coins without selling their KSM.

β…’. Lending Protocol

1. Overview

1.1 Supplying Tokens

The Parallel Heiko lending protocol uses a pool-based strategy that aggregates each user's supplied assets.
This lending protocol will have a KSM, xKSM, and USDT pool where users can deposit their assets and earn interest. This market is liquid, and so long as the total supplied amount is not being borrowed, it offers lenders liquidity, and the ability to turn their supplied asset into cash, and realize their earned interest.
Balances in this money market accrue interest based on the supply interest rate unique to that asset. The supply interest rate is calculated based on the current interest being paid, divided based on pool ownership amongst the current users supplying assets to that market. Users can view their balances (including accrued interest) in real-time.
Token holders who are long KSM can use a Heiko's money market as a source of additional revenue by lending. Additionally, a user who owns xKSM could also lend that asset out in the money market, thus earning staking returns and interest at the same time.

1.2 Borrowing Tokens

Heiko Finance enables users to borrow from the protocol with over-collateralized loans. Each borrow market has a floating interest rate, determined by the utilization of that market's assets.
In order to borrow an asset, users must deposit or approve an asset or assets as collateral that is/are more than the target outstanding borrowed amount, thereby setting the borrow. The borrow limit is dependent on the Loan to Value ratio of that specific market. In order to increase the borrow limit, users can either repay a borrowed asset or deposit more collateral.
As prices fluctuate, if the value of a user's supplied assets divided by the value of their outstanding borrowed amount declines below the collateral ratio, the user's collateral becomes available to purchase at the current market price minus a liquidation discount. This incentivizes an ecosystem of arbitrageurs to step in to reduce the borrower's exposure quickly and eliminate the protocol's risk to downwards price action, and a Loan To Value ratio below 100. Details of the liquidation mechanism are described in section 4.3.

2. Interest Rate Model

2.1 Internal Exchange Rate

When a supplier deposits an asset to the money market, the internal supply position of the supplier will be added with a certain amount based on the initial exchange rate. The supplier earns interest through the appreciation of the internal exchange rate.
internalExchangeRate=totalCash+totalBorrowsβˆ’totalReservetotalSupplyinternalExchangeRate=\frac{totalCash+totalBorrowsβˆ’totalReserve}{totalSupply}
Because the total borrowed amount is saddled with interest, the internal exchange rate continually increases. This means that ultimately, the supplier can withdraw more of this asset with the new exchange rate than they could when they deposited.

2.2 Interest Rate Model Principle

Heiko Finance utilizes an interest rate model to balance an equilibrium between supplying and borrowing markets. The interest accrued from borrowers will be distributed evenly to all suppliers. Without considering the reserve, the relationship between the supply and borrow side can be described as the following:
SupplyRateβ‹…TotalSupply=BorrowRateβ‹…TotalBorrowSupplyRate \cdot TotalSupply = BorrowRate \cdot TotalBorrow
The following are the definitions for different variables in the money market:
  • Cash = Total Unborrowed Assets
  • Borrows = Total Borrowed Assets
  • BaseRate = Starting interest rates
  • Slope = Slope that defines the interest rate increases
The utilization ratio U for each money market unifies supply and demand into a single variable:
UtilizationRatio=BorrowsCash+BorrowsUtilizationRatio=\frac{Borrows}{Cash+Borrows}

2.3 Borrow Interest Rate

When demand is low, interest rates should be low, and vise versa when demand is high. The
BorrowInterestRateBorrowInterestRate
is defined as the following:
{BaseRate+Uβ‹…slopeaU≀targetBaseRate+Utargetβ‹…slopea+(Uβˆ’Utarget)β‹…slopebU>target\begin{array}{cc} \{ & \begin{array}{cc} BaseRate+U \cdot slope_a & U\leq target \\ BaseRate+U_{target} \cdot slope_a + (U - U_{target}) \cdot slope_b & U> target \\ \end{array} \end{array}
​

2.4 Borrow Interest Rate Parameters

Borrowing and Lending Interest Rate of USDT market on Heiko
Borrowing and Lending Interest Rate of DOT market on Heiko

​

2.5 Supply Interest Rate

For the sustainability and resilience of the protocol, suppliers' total interest earned must be less than the total interest product by borrowers. The supply interest rate is a function of the borrowing interest rate and includes a spread, S(such as 0.10), which represents the economic profit of the protocol:
SupplyInterestRate=BorrowingInterestRateβ‹…UtilizationRatioβ‹…(1βˆ’S)SupplyInterestRate=BorrowingInterestRate \cdot UtilizationRatio\cdot (1-S)
This protocol fee can be used to support further development of the platform, as insurance in case of a crypto economic attack, or provide emergency liquidity to the system.

2.6 Interest Rate Index

Each interest rate's history, for each money market, is captured by an Interest Rate Index, which is calculated each time an interest rate changes, resulting from a new block connected. A user's balance, including accrued interest, is simply the ratio of the current index divided by the index when the user's balance was last checkpointed.
The borrow balance for each account in the market is stored as an account borrow snapshot which is a Rust struct like this:
1
pub struct BorrowSnapshot {
2
pub principal: Balance,
3
pub interest_index: u128,
4
}
Copied!
This struct describes the balance at the time interest was last applied to the account.
Each time a block is connected, both the supply and borrow Interest Rate Index for the asset are updated to compound the interest since the prior index, using the interest for the period, denominated by r*t, calculated using a per-block interest rate.
Indexa,n=Indexa,(nβˆ’1)β‹…(1+rβ‹…t)Index_{a,n} = Index_{a,(n-1)} \cdot (1 + r \cdot t)
2.7 Borrow Mechanism
A user who wishes to borrow and who has sufficient balances stored in Heiko may call
1
pub fn borrow(
2
origin: OriginFor<T>,
3
currency_id: CurrencyId,
4
borrow_amount: Balance,
5
) -> DispatchResultWithPostInfo
Copied!
which is on the loans pallet. This function call checks the user's account value and the given sufficient collateral. It will update the user's borrow balance, transfer the tokens to the user's account address, and update the money market's floating interest rates.
Each account has a BorrowSnapshot structure to store a snapshot of the last settlement information of interest.
1
pub struct BorrowSnapshot {
2
pub principal: Balance,
3
pub interest_index: u128,
4
}
Copied!
The borrows accrued interest is calculated as follows:
accruedInterest=snapshot.principalβ‹…borrowIndexsnapshot.interestIndexaccruedInterest = \frac{snapshot.principal \cdot borrowIndex}{snapshot.interestIndex}
A borrower has the right to repay an outstanding loan at any time by calling
1
pub fn repay_borrow(
2
origin: OriginFor<T>,
3
currency_id: CurrencyId,
4
repay_amount: Balance,
5
) -> DispatchResultWithPostInfo
Copied!
which repays the borrower's principal and accrued interest.

3. Experimental Models

3.1 Curve Interest Rate Model

For most lending protocols, interest rates are adjusted by a piecewise function to bind the utilization ratio within a reasonable range. However, the negative feedback of this system is relatively weak and inflexible. The curve function on Heiko will solve the problem of inflexibility.
In order to achieve this goal, the interest rate change speed needs to gradually increase as the utilization rate increases. For the best fit, it is necessary to combine the power functions and exponential functions and adjust the parameters.
BorrowInterestRate=βˆ‘cn1i1β‹…e[cn1i2β‹…(UtilizationRatioβˆ’cn1i3)]⏟Random+BorrowInterestRate=\underbrace{\sum_{}^{}c_{n1i1}\cdot e^{[c_{n1i2}\cdot (UtilizationRatio-c_{n1i3})]}}_{Random}+
βˆ‘bn2i1β‹…(UtilizationRatioβˆ’bn2i2)bn2i3⏟Random+c\underbrace{\sum_{}^{}b_{n2i1}\cdot (UtilizationRatio-b_{n2i2})^{b_{n2i3}}}_{Random}+c
Take USDT as an example: the image below shows the difference of borrow interest rate changes between Parallel, Aave, and Compound. While Parallel, Aave, and Compound all have similar interest rates when the utilization ratio is below 80%, the curve function of PARA realizes higher interest rate changes when the utilization ratio approaches 1 compared with the other two markets. While we are optimistic that this mechanism will perform well, it will not be deployed before there are enough statistics on Parallel Heiko.
Curve Function of USDT market

3.2 Interest Rate Adjustment Mechanism

Interest rates of the same assets in different markets are sometimes extremely different. When the utilization ratio hits a higher percentage, the adjustment mechanism will be triggered, and the Off-chain worker will capture interest rates of different assets from other decentralized markets. Weights will be given to each market based on their effectiveness, to obtain the average market interest rate level. It is worth noting that the adjustment factor will only be triggered when the utilization rate reaches the threshold, in order to make the utilization rate back to an appropriate level. The Adjustment Factor and Borrow Interest Rate will be calculated by:
AdjustmentFactor=BorrowInterestRatePARAβˆ’βˆ‘ciβ‹…BorrowInterestRateiβˆ‘ciβ‹…BorrowInterestRateiAdjustmentFactor=\frac{BorrowInterestRatePARA-\sum_{}^{}c_{i}\cdot BorrowInterestRate_{i}}{ \sum_{}^{}c_{i}\cdot BorrowInterestRate_{i}}
BorrowInterestRateAdjusted=BorrowInterestRateβ‹…(1+AdjustmentFactor)BorrowInterestRateAdjusted=BorrowInterestRate\cdot (1+AdjustmentFactor)

4. Liquidation

Liquidation is essential for a Money Market Protocol. At the present stage, liquidation will be triggered by an off-chain liquidator [7]. When prices fluctuate a lot, the health factor of the accounts on Heiko will likely go down in order to diminish systemic risk. In addition, an oracle needs to be able to feed the prices as quickly as possible while unhealthy accounts need to be liquidated [8]. However, due to the throughput and gas fee on Ethereum, liquidation calls maybe delayed, which increases systemic risk.
Parallel Heiko introduces a liquidation solution built with a Substrate Off-chain Worker. It has three key components: Auto-liquidation Algorithm, On-Chain Liquidation Pool, and Flash Liquidation.

4.1 Auto Liquidation Algorithm

The Off-chain Worker will fetch all borrowers, debt, collateral, liquidation ratio from the state of Parallel Heiko blockchain, also the prices from oracle, then the protocol calculates the health factor of each borrower's account if there is a liquidation opportunity, then it will automatically send a liquidation transaction to on-chain.

4.2 On-Chain Liquidation Pool

The on-chain liquidation pool is the only portal to execute a liquidation. Although a reserve fund is provided in the pool, liquidators can still trigger liquidation with their own fund without any capital in the reserve fund.
Any user and bot can send liquidation transactions, the liquidation pool will invoke a function in lend and borrow pool to promote liquidation.
In the event of liquidation, there will be a penalty for the borrower and a bonus for the liquidator. The liquidator's bonus comes from two parts: borrowers' collateral discount and borrowers' penalty.

4.3 Flash Liquidation

Heiko Finance introduces a new way of liquidation that allows the user to send a liquidation transaction without any capital. A function interface was provided to allow users to liquidate without any assets, aiming to provide a DeFi Lego component with Flash loan, DEX.
​

5. Oracle and Price feed

In order to secure the lending protocol, Heiko is required to have accurate and real-time market prices for different assets. An oracle has been introduced as a mechanism that brings off-chain data on-chain, in a credible and decentralized fashion. For now, most mature decentralized oracle solutions are designed for Ethereum. Some protocols like Chainlink are devoted to building a strong economic network for gathering price off-chain and feed price by submitting a specific transaction [11]. In Kusama, there is already some early work to provide the decentralized oracle solutions by the Substrate community, but such solutions are far from production-ready. Parallel Heiko designs a semi-decentralized way to tackle the current situation.

5.1 Off-chain Price Fetching

The team is implementing a simple but efficient client to fetch the prices from the mainstream exchanges. For each asset, the fetched prices are reduced into one with a median strategy. During each block, the authorized members can submit the price on-chain. To make it as secure as possible, the authorized members are elected by the governance of Parallel Heiko.

5.2 On-chain Aggregation Strategy

When the prices are submitted on-chain, several strategies such as a median algorithm and an average algorithm are provided to gather them.
Median algorithm:
MedianPrice=SortedPrices[counts/2]MedianPrice = SortedPrices[_{counts/2}]
Average algorithm:
AveragePrice=(βˆ‘i=0nxi)/nAveragePrice = (βˆ‘_{i=0}^nx_i) / n

IV. Staking Protocol

1. Overview

Kusama's relay chain uses a derived PoS (Proof of Stake) consensus to secure its network. Most parachains will also have a simplified PoS mechanism to incentivize their collators to produce valid blocks. The users' token like KSM serves as the staked assets which will be locked during nominating the validators and the collators. Also, a delay (aka, unbonding period) is often enforced by protocols when users want to cease participating, and unlock their assets. The staked assets can be slashed if the validators do harm to the network. Such restrictions impose economic costs on the holders of staked assets and require the holders have sufficient knowledge to choose validators. Parallel Heiko proposes two solutions to circumvent the limitations: delegated staking, and a lending pool with a bounded rate.

2. Validator Choosing Strategy

There are a few dimensions when choosing validators in Heiko's protocol. They are in order of priority, from high to low:
  • the reputation of the node operator
    • validator should trigger payout regularly
    • single operator with more validators has a higher probability to be slashed if downtime happened
  • the commission rate and nomination volume of the validator
  • the downtime and luckiness which wraps era points on Kusama network and slash records in the past
  • the amount should not be controlled by one account, nor one active nomination
  • less than 200 DOT will be dropped (it is acceptable on Kusama since there are enough validators on the Kusama network)
These metrics can be summarized in the following equation, subject to change with future iterations:
Score=Rβ‹…((1βˆ’CR)/N)β‹…(cβ‹…AEP/AEPA)β‹…SRScore = R \cdot ((1 - CR) / N) \cdot (c \cdot AEP / AEPA) \cdot SR
  • R: Reputation, 0 or 1.
  • CR: Commission Rate.
  • N: Nomination amount of one validator.
  • AEP: Average Era Points of one validator in the past week.
  • AEPA: Average Era Points of All validators in the past week.
  • c: A constant shows how much influence of the Era Points of a validator. The default value is 1.
  • SR: Slash Record, default 1, set to 0 if ever slashed in the past month.

3. Nomination Workflow

  • Create stash accounts in the relay chain (if XCM is ready, then the parachain account should also work here).
  • Create controller account in relay chain (if XCM is ready, then the parachain account should also work here).
  • Transfer the fund from Heiko's system account to stash accounts.
  • Bond Max-1 KSM with Stash account.
  • Nominate validators chosen by the Heiko protocol based on the above strategy.
  • Bond extra KSM with Stash account if new fund comes in.
  • Unbond a certain amount of KSM if a request for unstaking occurs, wait until unbonding period ends.
  • Withdraw unbounded and transfer to the Heiko's system account which holds the unstaked assets.
Extrinsics:
  • set_controller: called using stash account
  • bond: stash account
  • bond_extra: stash account
  • unbond: controller account, max unbond queues: 32
  • rebond: controller account
  • withdraw_unbonded: controller account
  • nominate: controller account
  • set_payee: controller account
  • payout_stakers: check validators do submit this call before the deadline.
The above workflows can be executed with multi-signature accounts or XCMP (Cross Chain Message Passing), both share the same interfaces. A short-term solution is to use multi-signature accounts before XCMP of Kusama matures, but in the long-term, XCMP will always be favored. Such multi-signature accounts will the following:
Multi-Signature Account
With Kusama, users can easily set up a multi-signature account. Heiko creates such accounts and the set of signatories comes from the council members of Parallel Heiko. The signatories watch the on-chain events and the balances of the multisig address and submit or approve specific extrinsic.
Cross Chain Staking with XCMP
With staking related XCM available, all above extrinsics can be submitted from the parachain account. On-chain logic can send accurate messages based on the on-chain analysis. This issue blocks us.

4. Delegated Staking

The holders deposit their staked assets into Heiko's system account in exchange for a voucher (aka, xKSM) which represents the ownership of the staked assets and shares the revenue of staking activities on the relay chain. Parallel Heiko's liquid staking protocol then nominates validators with a funded system account. xKSM can also be used as a collateral assets in the lending market. The price of xKSM is the same as KSM before there are high-quality open markets.
Exchange rate between xKSM and KSM:
Calculation:
exchangeRate=Staked+RewardstotalXKSMexchangeRate =\frac{ Staked + Rewards}{ totalXKSM}
  • totalStakingAmout is the sum of initial staked assets with compound interest.
  • totalXKSM is the sum of xKSM up to now.
Instant Unstaking Pool
To mitigate the unbonding period, Parallel Heiko protocol proposes a funding pool that is subtracted from the totalStakingAmout. The fund in this pool can be redeemed by users with xKSM instantly. The quota each holder has available to use is proportional to the xKSM holdings per day, and holders can only redeem once from the instant pool per day. If holders want a higher quota, they can open an offer expressed as (xKSM, endingBlock, fees) in the market. Other holders with available quota can accept the instant redemption, and transfer KSM to the offer provider. The maker gets xKSM in the offer, and earns the fees. Partial offer fulfillment is also supported.
To maintain such a liquidity pool, the holdings of each stash account need to bond_extra/unbond/rebond regularly to meet the healthy threshold.
  • instantPoolFund / totalStakingAmout < threshold, withdraw_unbonded from stash accounts. And if it needs more then signal unbonding.
  • instantPoolFund / totalStakingAmount > threshold, transfer extra and signal bond_extra.
  • instantPoolFund / totalStakingAmount = threshold, signal rebond.
Here totalStakingAmount is the sum of instantPoolFund and the under-staking funds controlled by all stash accounts. Threshold can be configurable by governance. Stash accounts regularly unbonding and rebond each day to maintain cash flow, if unbonding signal increase cash percentage, otherwise decrease cash percentage.

5. Interest Lending Pool with Bounded Rate

Heiko's system account can borrow KSM from the pool without collateral, and it won't be liquidated. To maintain the liquidity, the system's accounts can't borrow anymore if the utilization ratio is higher than a specific threshold, say 80%. It also starts unbonding staked tokens and repays the outstandings to maintain healthy liquidity in the pool. To mitigate the attack vector on the limited ROI of staking, the interested rate of such a pool is bounded to not exceed the evaluated ROI of staking, which is around 7.5% on Kusama.

6. Slash Insurance

A slash can still happen if a validator misbehaves, or there is an outage of many validators. Holders can purchase insurance for their holdings that last for a defined period. Partial fees of Parallel Heiko's staking protocol will be deposited into the insurance fund and accumulated. If a slash happens, the insurance beneficiary can get compensation from the fund. The cap of the compensation is defined by governance.

V. Governance

1. Overview

Heiko Finance protocol is designed to be a fully decentralized financial platform that can serve millions of users and most of them may not be well off. On Heiko, there are 4 kinds of stakeholders,
  • the development team and open contributors
  • investors with Heiko's native token
  • a wealth of platform users
  • network maintainers
The governance process should incentivize each party to participate in the network activity and evolve the protocol to meet the broad users' requirements.
​

2. User Reputation

In the vision of Parallel, the Web3.0 translates to how much power the general users can exercise. Parallel designs a calculation method to make the reputation of each user as fairly as possible.
TradingScore=cβ‹…(1βˆ’1/x)TradingScore = c \cdot (1 - 1/x)
  • TradingScore: the base score of each user who trades on the platform
  • c: a constant, shows the highest score a user can reach by trading
  • x: numbers of trades
A user can follow another users, the followed user gets an extra score,
FollowedScore=pβ‹…TradingScoreFollowedScore = p \cdot TradingScore
  • p: a percentage
  • TradingScore: the following user's TradingScore
  • FollowedScore: can be accumulated and should not exceed 2 times of its own TradingScore.
  • A user can follow no more than 16 other users, and can't follow himself. Following other users should also include making a security deposit.
The total score will fade along with time if no trade happens.
TotalScore=TradingScore+FollowedScorenowβˆ’lastTradeTimeTotalScore =\frac{ TradingScore + FollowedScore}{ now - lastTradeTime}

3. Democracy

The core logic of Parallel protocol is wrapped as a blockchain runtime. Thanks to Substrate, the runtime can be easily upgraded without a network fork or a choke. To make the upgrade meet the expectation of all the above stakeholders, every runtime upgrade will be voted on by the network participants with native tokens and with reputation.
TotalVotingPower=p/tβ‹…Sum(TokensVotedβ‹…LockedPeriod)+TotalVotingPower = p / t \cdot Sum(TokensVoted \cdot LockedPeriod) +
(1βˆ’p/t)β‹…Sum(cβ‹…Reputation) (1 - p / t) \cdot Sum(c \cdot Reputation)
  • TotalVotingPower: the voted score of a specific democracy proposal.
  • TokensVoted: the tokens a single user voted with for the proposal.
  • LockedPeriod: the period the user wants to lock, if the proposal exercised.
  • p: percentage of the tokens' power, faded along with time no matter what.
  • c: conversion rate between the token and reputation.
If a proposal gets more ayes than vetos after the voting period ends, it will be scheduled with an on-chain deployment.

4. Council

The council performs daily affairs like:
  • configuring the adjustable parameters of Parallel protocol
    • interest rate model per market
    • addition or removal of a market
    • addition or removal of backed validators
    • the reserve fees of the platform
  • making emergency calls
  • canceling slash scenarios
  • approving the Treasury proposals
  • making tips to contributions, etc
The council member is elected by the token holders, and users with a reputation.

5. Treasury

Parallel charges a small fee for each deal. These fees go into the Treasury directly. The fee aims to fund the ecosystem, and to create healthy growth. Teams make spending proposals, and council members approve or disapprove of them. Council members can also tip the known contributions with a small number of native tokens.

VI. Auction Loan Protocol

1. Overview

The Polkadot and Kusama networks use parachain auctions to fairly determine which parachain projects are allowed a dedicated connection to the respective networks’ relay chain. The relay chain functions as the central blockchain that connects the various blockchains within the ecosystem. Projects that secure a parachain slot grants it block inclusion rights at every relay chain block. Parachain slots are a scarce resource, as both the DOT and KSM networks are currently estimated to support about 100 parachains each. Projects can bid for a slot and fund the bidding in two ways:
  1. 1.
    Bidding on themselves through their own treasury.
  2. 2.
    Attracting public contributions to their auction.
In option 2, crowdloans serve as an effective method for acquiring the DOT/KSM required to secure a parachain slot. Looking at the first batch of parachain auction winners (Auctions #1-5), a large amount of KSM was contributed to the previous auctions in June 2021. Approximately 10% of all issued KSM was locked up for the crowdloans and the first two Kusama crowdloans winners’ cost for securing a slot was over ~$300M.
From the data, we found that the market is not capital efficient in three primary ways: Crowdloan contributors cannot borrow assets with a lesser collateral to participate; currently they have to own unbonded, unlocked DOT/ KSM in a non-custodial wallet to participate. Investors and contributors do not have a way to withdraw nor reduce their risks from the assets locked for the duration of the parachain lease. Polkadot and Kusama maximum lease periods are expected to be 24-months and 48-weeks, respectively. Parachain projects need to raise nearly double the amount in order to compete for a chance to secure a slot in the next auction.
Heiko introduces an undercollateralized lending protocol to improve the capital efficiency for parachain auction crowdloan participants that solve these drawbacks.

2. System Architecture

In the next sections, we will go through the system design (Figure 1) and brief details of each component.
Figure1: System design of the lender and contributor process flows

2.1 Connecting with Money Market

The auction loan protocol is composable with the money market so that users can frictionlessly collateralize with different assets to borrow DOT/KSM. While DOT, KSM, xKSM, HKO will be the collateral assets for the initial launch, additional alternative assets can be used as collateral in the latter versions of the auction loan product. Users would supply an asset and use it as collateral from the money market to leverage for contributions into the crowdloan. The interest rates in the money market are dynamically determined by the supply and demand, and could vary in different blocks. After borrowing the DOT/ KSM, these users would follow the general contributor process to support the crowdloan(s).

2.2 Supply Asset

Through the auction loan protocol, lenders can deposit their DOT or KSM into the crowdloan asset pool to earn interest payments. Assets supplied in the Auction Loan protocol are represented by an interest-bearing token, cToken or crowdloan token. Interest would accrue based on the utilization_ratio of the DOT or KSM asset pool.
On our platform, lenders will be able to withdraw their principal loaned to crowdloans and they will not have to wait for the full parachain leasing period to unlock their assets. Withdrawal requests will be added into a queue where future deposits will be matched on a first-come-first-served basis. Alternatively, lenders can supply cToken to the regular money market and borrow additional DOT/ KSM, or simply sell on the AMM market for instant liquidity.

2.3 Crowdloan Contribution

On the Heiko platform, DOT and KSM holders can contribute to the parachain crowdloans in two ways:
  1. 1.
    General contributor: these are users who have their own unbond, unlocked DOT/ KSM in a non-custodial wallet.
  2. 2.
    Advanced contributor: these are users who pay an upfront deposit to borrow DOT/ KSM at a fixed rate, to participate in the respective crowdloans.
General Contributor
For the general contributor, DOT/ KSM holders can contribute on Parallel with the balance they have available to the parachain projects’ crowdloans. Each DOT or KSM contributed will enable them to earn project rewards, in addition to a bonus reward in the form of our native tokens PARA/HKO.
Advanced Contributor
For the advanced contributors, users can borrow an under collaterized loan at a stable interest rate by depositing the full interest payment upfront. This is different from the money market protocols developed on Ethereum (e.g. Compound, Aave) because borrowed funds from Parallel’s auction lending protocol can only be used for contributing to the crowdloans. Moreover, users do not need to deposit an amount larger than the loan and will not face liquidation risks. The interest payments are automatically paid out per block from the deposit. The DOT/ KSM markets have a fixed rate for borrowing and cannot exceed the borrowing capacity of the auction loan market.
On Heiko, users can borrow DOT/ KSM at any point to secure liquidity for crowdloan opportunities. There will be a term length for the DOT/KSM loans and users will need to ensure that the expiration date of the borrowed assets is the same date or after the parachain leasing period for the project. The max leasing period on Polkadot is 2 years and on Kusama, 48 weeks. As of the time of this writing, the cadence of the DOT/ Kusama parachain auctions have not officially been announced and we do not expect a steady upcoming schedule when our product launches. As such, there will be uncertainty in obtaining an accurate estimate for loan term lengths and users may need to extend their initial loans to participate in the crowdloans.

3. Crowdloan Pallet

The role of <pallet-crowdloans> is to handle contributions from users, to contribute from our parachain to crowdloans on one of the two relay chains (Polkadot or Kusama). A vault will be created for each supported crowdloan, where users can deposit tokens in the vaults and get an associated token to represent their share in the system. Later, they should be able to exchange those shares against some tokens from the project they supported if that project wins the auction. Each vault is identified by the crowdloan ID that it supports and named by the project’s ParaId in Polkadot and Kusama.

3.1 Vaults Management

Vaults must be created by the governance system of the parachain.

3.2 Contribution to Vaults

An extrinsic will be defined to allow token holders to contribute to an existing vault.

3.3 Triggering participation in a crowdloan

Once a vault expires, a protected extrinsic should be enabled to deposit assets in the relay chain’s crowdloan pallet.

3.4 Distributing Project Tokens

In the event of a successful auction slot, contributors will receive a project_token with no transfer limit. They will be named after each parachain, lease last period, and β€˜Polkadot’ or β€˜Kusama’ network. Each project_token has the same vesting period of the parachain’s lease period and holders of project_token are able to redeem the underlying parachain rewards tokens on a pro-rata basis. We will also consider edge cases as it relates to token redemption (e.g., Centrifuge crowdloan) and projects that offer more than one reward token for participation. Parallel will be aggregating rewards into a pool for distribution to contributor’s wallets after the end of the auction.

3.5 Refunding the contributed DOT/KSM after lease period

After auction success and the slot expires, we will create an extrinsic to claim back the unlocked DOT and KSM. Users will be able to claim their DOT/ KSM contributions back.

4. Interest Rate Model

In the Auction Loan Lending market, we use a standard piece-wise function to calculate the borrow interest rate. We intend to only add fixed models to the market in the first release. As seen in Figure 2, the interest rate is calculated based on the utilization ratio. The utilization is an indicator of the amount of capital in the pool; as such when capital is scarce, higher interest rates encourage deposits from lenders and lower likelihood of loans. The interest rate formula is below:
Figure 2: Supply, borrow rates at different utilization ratios

VII. Summary

Parallel Heiko introduces a decentralized lending protocol with a floating interest rate determined by the underlying assets' supply and demand. The staking protocol also provides liquidity to bonding assets in the Kusama ecosystem. Heiko balances the competition between staking and DeFi rewards to solve the usability issue with the representation token (xKSM). Moreover, we introduce an auction loan protocol which establishes a mechanism for individuals, institutions, or other parachain projects to borrow from under collateralized loans to contribute to parachain auction crowdloans. Overall, we hope to achieve more incredible benefits for users through double interest and the ability to stay liquid while their assets are locked during the parachain lease periods.

VIII. Reference

  1. 1.
    Polkadot Network https://polkadot.network/​
  2. 2.
    Kusama Network https://kusama.network/​
  3. 6.
    Cross-chain Message Passing (XCMP) https://research.web3.foundation/en/latest/polkadot/XCMP.html​
​
Last modified 1mo ago