# ONE

{% hint style="warning" %}
**This documentation is a work in progress!**
{% endhint %}

ONE exists to allow a capital efficient entrypoint for stablecoins like USDC without the drawbacks of a CDP system such as [overcollateralization](/kopio-docs/fundamentals/cdps.md#overcollateralization) and [liquidations](/kopio-docs/fundamentals/liquidations.md#liquidations). This is similar to [synth wraps](/kopio-docs/fundamentals/synth-wrap.md) of [Kopio Assets](/kopio-docs/fundamentals/kresko-assets.md), 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 $$\text{R}$$ of one vault share $$\text{V}$$ is calculated by dividing the total deposit value with the total supply of shares $$\text{T}^{s}$$:

$$
\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 ONE 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:

<figure><img src="https://lh7-us.googleusercontent.com/siR8Np5fXeK58W7315VrO21ykapRxHclUzk2pt5clCAl1HnupW6tVacaFL9oISMeqqa88wbTewiBGJv3Wv14xJNPFDkLUv4ZhPYKT2H1c-uewbf0e_8kD647JTDAGpPHuUuPWuIzggIYrcl1QIgSGpw" alt="" width="563"><figcaption><p>Initial deposits to a vault with DAI and USDC.</p></figcaption></figure>

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

<figure><img src="https://lh7-us.googleusercontent.com/otcQg_6NyooKUedLtueS36zodKHunrO4ck50uBZBALm8BA1e-eZlUIt06SkBvGcyAv_sb3azvSrvSkslNscmYuKTJs5LRY2AoslQRpDr3M-NVHchlVjC2HTyzYjQaHv-V25v-74t2gQRFa5jBzzzNRY" alt="" width="563"><figcaption><p>Subsequent withdrawal of shares after USDC price fell.</p></figcaption></figure>

## ONE Vault

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

<figure><img src="https://lh7-us.googleusercontent.com/RHBqRX11bZo8A-o0lkSeYcW7lZT-1An2bwoKc5ZhnAEF0Lb_pNTuCFvARK6ZSvCMUKtoLSFfYfAMfsjZJehOQQdFcKt5mS2__bbnznP7aN2PW2WUIyrvI3WSHOuiMKP1N6BAtHHuhK5J3sg5PscNyjc" alt="" width="563"><figcaption><p>Initial deposit scenario using $1 target price per share.</p></figcaption></figure>

<figure><img src="https://lh7-us.googleusercontent.com/lcKGy38n-EIvMEb9qOYDFi1BVBkD3hwsaHQLqymuaWtTM-Q0Kc8vigr2oYOoOe8j5hm_EE4Ups19y3E5BsKMo45teszx7WmKAE8UrDtwp5sJbyDsR9IGrhzLZnw6ewkC5dYa7sZnhayVONFPUYtJvog" alt="" width="563"><figcaption><p>USDC price falling to $0.5 has no effect on withdrawal amounts since the vault only consists of USDC deposits.</p></figcaption></figure>

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

## ONE Price Oracle

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kopio.gitbook.io/kopio-docs/fundamentals/kiss.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
