Kresko Documentation
GitHubWhitepaperTwitterDiscord
  • ℹ️Kresko 101
  • fundamentals
    • CDPs
      • ICDP
        • Deposit
        • Withdraw
        • Burn / Repay
        • Minting / Borrowing
        • Liquidations
      • SCDP
        • Deposits
        • Swaps
        • Liquidations
    • Collateral Assets
    • Kresko Assets
    • KISS
    • Synth Wrap
    • Liquidations
    • Oracles
    • Glossary
    • Litepaper
  • Developers
    • Contracts Overview
    • Liquidations
    • Errors
  • contracts
    • Deployment Addresses
  • Security
    • Audits
    • Bug Bounty
  • Brand Kit
    • Design Resources
  • Events
    • Closed Beta
    • Quest for Kresk: Season 0
      • Scoring Methodology
      • FAQs
Powered by GitBook
On this page
  • Vault
  • Target Price
  • Multiple Deposit Assets
  • KISS Vault
  • KISS Price Oracle
  1. fundamentals

KISS

Stable Valued Kresko Asset

PreviousKresko AssetsNextSynth Wrap

Last updated 1 year ago

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 and . This is similar to of , but it supports multiple assets instead of one.

Vault

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}R of one vault share V\text{V}V is calculated by dividing the total deposit value with the total supply of shares Ts\text{T}^{s}Ts:

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

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:

Initial deposits to a vault with DAI and USDC.

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.

Subsequent withdrawal of shares after USDC price fell.
Initial deposit scenario using $1 target price per share.
USDC price falling to $0.5 has no effect on withdrawal amounts since the vault only consists of USDC deposits.
synth wraps
Kresko Assets
liquidations
overcollateralization