Stable Valued Kresko Asset

This documentation is a work in progress!

KISS exists to allow a capital efficient entrypoint for stablecoins like USDC without the drawbacks of a CDP system such as overcollateralization and liquidations. This is similar to synth wraps of Kresko Assets, but it supports multiple assets instead of one.


It is created through a vault mechanism where one or more external assets are deposited to receive an equal value of vault shares, represented as token balance. The shares can be burned out of circulation to receive an equal value of the deposits in return.

The deposits are pooled together, which means that there is no account level bookkeeping of deposits. Instead, withdrawal and redeem interactions can arbitrarily pick the deposited assets received in return of burning vault shares.

The vault keeps track of the total value of all deposited assets and outputs an exchange rate for a single share. The rate is calculated from the total deposit value divided by total supply of vault shares. This means that deposit or withdrawal interactions do not directly affect the exchange rate since the inflow and outflow of value is always matched by equal value of shares.

The exchange rate R\text{R} of one vault share V\text{V} is calculated by dividing the total deposit value with the total supply of shares Ts\text{T}^{s}:

R=VTs\text{R} = \frac{V}{T^{s}}

Target Price

The vault uses a constant target price per share when no shares yet exist. This price is defined with 18 decimal places and the same decimal precision is used for the exchange rate after the initial shares are minted. In the case of KISS this target price would be $1.

Multiple Deposit Assets

If DAI and USDC were the deposit assets in a vault, a share would represent them both:

This would expose the vault to two different assets eg. users depositing DAI would lose value if USDC fell in price:

KISS Vault

KISS has its own vault contract, the KISS vault. It only accepts stablecoin deposits, which could be eg. bridged USDC and native USDC, this would mean KISS mirrors USDC.

The vault share itself is a regular ERC-20 token. In the case of KISS it is wrapped into a Kresko Asset compatible smart contract which also integrates with the vault for interoperability purposes.

KISS Price Oracle

Side effect of this design is that the price oracle for KISS is simply the exchange rate of one vault share, meaning 1 KISS vault share = 1 KISS. This is different to similar systems like GHO (Aave, 2022) or DAI where a static $1 is used.

Last updated