# Introduction

Let's discover the **Rain.fi client** in less than 3 minutes.

## What you can do in Rain

You can use Rain protocol to :
- Create pool of SOL to let others users borrow SOL.
- Get instant liquidity with your NFT, and use it to trade or mint other collections.
- Leverage your NFT positions and trade them.

## Requirements

- [A Solana wallet](https://phantom.app/):
  - Install the Phantom wallet.

- Some SOL ◎ [Get some SOL ◎ ](https://www.binance.com/en/trade/SOL_BUSD?theme=dark&type=spot):
  - Buy some SOL on exchanges and send it to your Solana wallet address.
  - You can use it to interact with the first NFT liquidity Loan & Rent tool.

- One or many NFT if you want to borrow some SOL ◎ [Get some NFT ◎ ](https://solanart.io/collections):
  - Buy one interesting NFT you can use on Rain.
  - You can loan your NFT for get liquidity.
  - Fast loan, trade, mint and many things with your NFT positions.

## Installation

All examples is covered in this readme and the [doc here ](https://docs.rain.fi/tutorial):

NPM:
```bash
npm i @rainfi/rain-cli
```

Yarn:
```bash
yarn add @rainfi/rain-cli
```

## Create a pool
```bash
rainfi create_pool --ltv 50  --interestType dynamic --maxDuration 14 --compound true --amount 50 --risk 1
```
## Manage you pool

You can easily manage you pool created.

### Withdraw liquidity
```bash
rainfi withdraw_liquidity --amount 50
```

### Add liquidity
```bash
rainfi add_liquidity --amount 50
```
##  Update pool collections

To update the whitelisted collections of the pool
```bash
rainfi update_pool_collections --collections [301]
```

### Update pool

```bash
rainfi update_pool --ltv 50  --interestType dynamic --maxDuration 14 --compound true --amount 50 --risk 1
```

## Borrow
```bash
rainfi borrow --nftAddress NFT_ADDRESS --duration DURATION_IN_DAYS --poolOwner OWNER_POOL_ADDRESS
```

## Repay a loan

You need to choose a loan to repay. You can do it with this command line, it will get all the loans as borrower from a user wallet address

### Get loans as borrower
```bash
rainfi get_loans_from_borrower --address BORROWER_ADDRESS
```
### Execute the repay loan

Repay the loan with this command and the address of the loan :

```bash
rainfi repay_loan --loanAddress THE_LOAN_ADDRESS_SELECTED_BEFORE
```

## Liquidation

### Select a loan to liquidate

You can get all loans as lender of a user wallet address with this command line :

```bash
rainfi get_loans_from_lender --address LENDER_ADDRESS
```

### Liquidate loan

Use a loan you want to liquidate :

```bash
rainfi liquidate_loan --loanAddress LOAN_ADDRESS_TO_LIQUIDATE
```
