System Design FAQ

How do you make sure the Oracle is secure?

Perpetual Protocol uses ChainLink as the Oracle for the funding rate calculation. The Oracle price is not used elsewhere. This limits Perpetual Protocol's exposure to Oracle failure or manipulation.

Perpetual Protocol only uses the Oracle price at funding time (every 1 hour), and in addition, the 1-hour TWAP is used. This minimizes the usage of the Oracle and the risks of the price being manipulated.

Currently the Oracle price shown on the trading interface is updated more regularly. However, the price is only used once per hour to calculate funding payments.

Could I use the flash loan to game the system like in the bZx attack?

No, Perpetual Protocol doesn't use any on-chain Oracle or on-chain DEX as a price engine. It's very difficult to use a flash loan to manipulate the price of underlying assets and profit from Perpetual within the same transaction.

The only time Perpetual Protocol makes use of on-chain Oracle prices is to liquidate under-collateralized assets. In this case, because Perpetual Protocol uses both the 15 min TWAP Oracle price and latest Oracle price to calculate UnrealizedPnL, it's very difficult to manipulate UnrealizedPnL within the same transaction. Please see Liquidation for more details.

Does Perpetual Protocol have an auto-deleveraging system which is common in most centralized exchanges?

No, positions are not deleveraged in Perpetual Protocol because Virtual AMMs serve as the counter-party for all trades.

Which parameters can be updated by governance voting in Perpetual Protocol?

  1. CollateralizationRatio 🌅 Initial setting: 500%

    The Virtual AMMs are backed by the PERP staked as collateral at the CollateralizationRatio in the Staking Pool.

    đŸŽŦ Initial setting: 500%

  2. EmergencyShutdownCollateralizationRatio 🌅 Initial setting: 150%

    Once the CollateralizationRatio falls below the EmergencyShutdownCollateralizationRatio, PERP holders can vote for the execution of an Emergency Shutdown.


  3. FeeRatio 🌅 Initial setting: 0.1%

    The transaction fee percentage. This rate is charged every transaction, and the proceeds are shared by the stakers.

  4. MaintenanceMarginRequirement 🌅 Initial setting: 2.5%

    Once a position's margin ratio falls below the MaintenanceMarginRequirement, liquidators can liquidate this position. Please see Liquidation for more details.

  5. InitMarginRequirement 🌅 Initial setting: 5%

    The initial margin ratio required to open a new position. Please see Liquidation for more details.

  6. LiquidationFeeRatio 🌅 Initial setting: 1.25%

    The liquidation fee percentage. Please see Liquidation for more details.

  7. StakingEpochLength 🌅 Initial setting: 7 days

    It's the length of the staking epoch.