49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# Mango Liquidator
|
|
|
|
## Setup Partial Liquidator
|
|
### Prerequisites
|
|
To run the liquidator you will need:
|
|
* A Solana account with some SOL deposited to cover transaction fees
|
|
* Token accounts for each currency in the Mango Group (e.g. BTC, ETH, SOL, SRM, USDT)
|
|
* Roughly equal deposits for each token. You will need base currencies to liquidate shorts, and quote currency to liquidate longs.
|
|
* Serum Dex OpenOrders accounts associated with your account. This is required for balance wallets functionality.
|
|
* The easiest way to set these up is by placing an order on Serum Dex for each currency pair then immediately cancelling it.
|
|
### Setup
|
|
Make sure to edit the .env file to look something like this:
|
|
```
|
|
CLUSTER="mainnet-beta"
|
|
CLUSTER_URL="https://solana-api.projectserum.com"
|
|
KEYPAIR=${HOME}/.config/solana/id.json
|
|
NODE_ENV=production
|
|
TARGETS="0.1 2.0 100.0 500.0"
|
|
GROUP_NAME="BTC_ETH_SOL_SRM_USDC"
|
|
CHECK_INTERVAL="1000.0"
|
|
FILTER_ACCOUNTS=true
|
|
```
|
|
|
|
Replace `${HOME}` with your actual path to home. For example,
|
|
```
|
|
KEYPAIR=/Users/john/.config/solana/id.json
|
|
```
|
|
|
|
TARGETS represents the amounts of each token the partial liquidator should try to maintain
|
|
in the liquidator's wallet. Any excess of that amount in the wallet will be market sold on Serum DEX.
|
|
|
|
CHECK_INTERVAL is the amount of milliseconds to wait between querying all margin accounts
|
|
|
|
FILTER_ACCOUNTS uses a more efficient method of querying marginAccounts by only returning accounts with open borrows. This is only supported on Mango Groups released after 'BTC_ETH_SOL_SRM_USDT'. Disabled by default.
|
|
|
|
### Run
|
|
```
|
|
yarn install
|
|
source .env
|
|
yarn partialLiquidate
|
|
```
|
|
|
|
### Run
|
|
```
|
|
yarn install
|
|
source .env
|
|
yarn liquidate
|
|
```
|