vires.finance
  • Introduction
  • FAQ
    • Depositing and Earning
    • Borrowing
    • Account Health
    • Asset Parameters
    • vTokens
    • Deployed Contracts
    • ⓥ Governance
      • FAQ and User Guide
      • gVires Math
      • System parameters
  • KNOWLEDGEBASE
    • APY vs APR
    • How is Net APY calculated?
    • Liquidation Penalty
  • GUIDES
    • Lending and Borrowing Guide
    • Liquidators' Guide
    • Troubleshooting
    • API
  • Community Video Guides
  • Agreement
    • Terms of Use
    • Privacy policy
Powered by GitBook
On this page
  • What is liquidation?
  • Can a given account be liquidated?
  • How to liquidate an account?

Was this helpful?

  1. GUIDES

Liquidators' Guide

Liquidators make sure all borrows are always covered

What is liquidation?

Liquidation means transferring part of both debt and collateral(+premium) from the account with negative health to the caller.

Can a given account be liquidated?

Only users with negative health can be liquidated.

To find out if account fall under liquidation or not, one may query liquidator-entry-point(3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT)contract, specifically, getUserHealth(user) function.

The following snippet queries any waves node on the status of 3PMZCTZjdsVZe2hePquBpE4LCVuZ5JA2PvK (the argument of getUserHealth function):

 curl -X 'POST' \
     'https://nodes.wavesnodes.com/utils/script/evaluate/3PJ6iR5X1PT2rZcNmbqByKuh7k8mtj5wVGw' \
       -H 'accept: application/json' \
       -H 'Content-Type: application/json' \
       -d '{
           "expr": "getUserHealth(\"3PMZCTZjdsVZe2hePquBpE4LCVuZ5JA2PvK\")"
           }'

The output would be similar to:

 {
    "result": {
        "type":"String",
         "value":"bp:2105388966, bpu:1861495565"
         },
    "complexity":5354,
    "expr":"getUserHealth(\"3PMZCTZjdsVZe2hePquBpE4LCVuZ5JA2PvK\")",
    "address":"3PAZv9tgK1PX7dKR7b4kchq5qdpUS3G5sYT"
 }⏎  

The important line is #4: it returns bp and bpu where

- bp means "borrow power" - bpu means "borrow power used"

account_health = (bp - bpu) / bp

If bp<bpu , the account falls under liquidation.

How to liquidate an account?

To liquidate, one need to call transferDebt function in liquidator-entry-point (3PJ6iR5X1PT2rZcNmbqByKuh7k8mtj5wVGw).

There're 4 parameters in tranfserDebt function:

  • borrowReserve: the reserve address with debt,

  • collateralReserve: the reserve address with collateral,

  • borrower: address of the borrower with negative health,

  • liquidateDebtAmount: an amount of debt to be liquidated;

Up to 50% of debt can be liquidated within 1 transaction.

The caller needs to maintain positive health after this operation.

PreviousLending and Borrowing GuideNextTroubleshooting

Last updated 3 years ago

Was this helpful?