# USX New Economic Model
### Two-way Price Peg with DF
#### Two-way swap
* only active when USX price deviation is out of range [-0.5% ~ +0.5%]
* range is configurable.
* exchange rate is 1USX = 1$DF
* if (USX price < 0.995), receive USX, burn USX, mint DF, send DF;
* if (USX price > 1.005), receive DF, burn DF, mint USX, send USX;
* cap of single effort, daily volume, total volume, etc.
* configurable commission fee for DF
#### Price feed draft of USX&DF
* aggregate exchanges and multi-chain dexes price
* compare with TWAP
* refer to strategy of compound&luna
* refer to 1inch spot price aggregator, https://docs.1inch.io/docs/spot-price-aggregator/introduction
#### Oracle scheme
* aggregate prices from cex&dex(multi-chains), filter invalid prices & choose median price
* post the price and timestamp to ***validator***
* ***validator*** maintain TWAP price and verify the price
* ***validator*** push the valid price to ***oracle***
* ***oracle*** maintain anchor price and make the price valid

#### Multi-chain strategy
* launch on layer2 rollup, say Arbitrum.
* initial DF liquidity comes from ***The Foundation***(layer1)
* mint&burn USX on layer2
* record DF amount supposed to mint&burn
* batch bridge DF to burn *OR* mint to *OR* from layer1
### Peg Stability Module(PSM)
* only support fiat stablecoins, USDC, BUSD, USDP, TUSD, and DAI(cause of PSM), seperate pools for each stablecoins
* PSM also acts as an USX minter
* exchange rate is 1Stablecoins = 1USX, 1USX = 1stables
* stablecoins in PSM exists as iToken(deposit into dForce lending), handle lending rewards as treasury
* ceilling for USX minted and stablecoins deposited
* support swap fee, fee in/fee out

### Fixed Suppling Rate
#### A new lending pool
* USX borrow rate has an optimal value, say 10%, and the target UR is 60%, so we need a new interest rate model.
* USX supply rate is fixed to 15%, not related to borrow rate.
* supply interest compensation is coming from dForce incomings
#### staking pool with veDF boost
* stake iUSX, boost reward by staker's veDF balance (refers to Curve, Solid)

Oracle update planning process
1. price status contract
对资产有效时间间隔进行验证,
有效时间可直接从chainlink获取
有权限,需设置资产对应得有效间隔
非chainlink Aggregator Model需要更新, 添加timestamp接口
*混合model需要确认timestamp规则
2. price validator contract
作为Oracle Aggregator Model
记录喂价时间等以及post价格到Oracle contract
validator支持多资产多资产的
lengding asset price status check
1.update Controller implementation (Controller -> ControllerStock)
2.set asset price status contract