Skip to main content


Insurance Account

An insurance account is used to store the insurance fees paid by the users who are being liquidated. The current account is an EOA account managed by the JOJO team, and in the future, the insurance account will be upgraded to a smart contract.

Currently, perpetual contracts in different trading pairs share the same insurance account. If the insurance account is not sufficient to cover the bad debt, users still can trade on JOJO and the insurance fund will cover the bad debt until it is paid off. In addition, users can find the insurance account's address by calling IDealer#insurance() and the insurance balance is the primaryCredit and secondaryCredit of this account.

Insurance Fee

For each liquidation, insurance fees are charged and in case of bad debts, they will be covered by the insurance account. After the liquidation is completed, the user's credit amount may exist in the following situations.

  • If the credit amount is negative, then bad debts will be generated, and the insurance account will be used to balance the accounts.

  • Users still have credits, but if it is not enough to pay the insurance fee, then the insurance will take away all the remaining credits from the user.

  • Users still have credits, and enough to pay the insurance fee, then the remaining credits will be returned to the user.

insuranceFee=LiquidatorCreditChangeinsuranceFeeRateinsuranceFee = LiquidatorCreditChange * insuranceFeeRate

Bad Debt and Insurance Income

Every time a trader opens a position, it will bring the risk of the position being liquidated, and the liquidation will bring the risk of bad debts. So the purpose of charging an insurance fee is to get the balance of risk and return.