Asset Valuations and Oracles

Stack has been designed to make borrowing better/safer for users, less predatory and somewhat less risky (leverage always risky!)

Most collateral tokens have a standard oracle with a volume weighted/time-weighted average price. The current market price of the collateral tokens is always shown in the UI, however the oracle value is used to calculate position parameters including LTV. In most cases the oracle price is a representation of the market price history.

LTV calculations use the oracle price which in the case of $USTB and $MORE are not always derived from the market price.

The exception to this rule is $USTB, which has a steady oracle price that always returns $1. We take on the risk, that $USTB will always be redeemable for $1.00 so users can't be liquidated if $USTB depegs. If $USTB is trading at $0.90, Stack still values it as $1.00.

Additionally, the default oracle for $MORE fixes the price of $MORE at $1.00. Our goal is to avoid a situation were $MORE trading above a dollar opens up a position to liquidation. Even if price manipulations push $MORE up, your position is safe.

Example: A users has an open position where the borrowed amount is very close to the max LTV. If $MORE goes above a dollar, the borrowed amount may technically move above what's allowed. In this case, the $MORE price cap at $1 prevents the liquidation.

Oracles

VaultOracleAddressNotes

Collateral token oracle

Static, always returns $1

Borrow token oracle

Static, always returns $1

Collateral token oracle Oracle wrapper

Maintained by team, notes below

Borrow token oracle

Static, always returns $1

Collateral token oracle Oracle wrapper

Maintained by the team (same as arcUSD)

Borrow token oracle

Static, always returns $1

Collateral token oracle

Maintained by DIA

Borrow token oracle

Static, always returns $1

Static oracles are hard-coded values into the vault and can only be updated via multi-sig. These values can not expire nor go stale, so they're not updated on a regular basis.

The arcUSD oracle is maintained by the Arcana team as there is currently no safe, decentralized solution to reliably manage this process, where 3rd party data failures would not trigger false liquidations. The oracle confirms the arcUSD backing value to Stack every 23.5 hours. In the event arcUSD were to become under-collateralized, the Arcana team is automatically notified and the new value will be confirmed by the team, updating the oracle through a 2-of-3 multisig transaction. Any subsequent change in backing value would also require multisig approval.

DIA oracles are completely maintained by DIA, fully independent from the Stack team using the default values of 0.5% price movement to trigger an update and a 24-hour heartbeat.

Last updated