> For the complete documentation index, see [llms.txt](https://docs.expand.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.expand.network/~/changes/CwwHZ0oIeFsEWwiEWd1b/integrations/yield-aggregator/harvest-finance.md).

# Harvest Finance

### /getbalance

{% hint style="warning" %}
For **/getbalance**, the user can either pass the tokenAddress or the vaultAddress and poolAddress along with the required parameters.
{% endhint %}

## Get balance of the user in a given Vault or Pool&#x20;

<mark style="color:blue;">`GET`</mark> `https://api.expand.network/yieldaggregator/getbalance`

#### Query Parameters

| Name                                                | Type   | Description                                                                                                                |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| rpc                                                 | String | Remote procedural call URL                                                                                                 |
| address<mark style="color:red;">\*</mark>           | String | Public Address of the owner.                                                                                               |
| tokenAddress                                        | String | The address of the token.                                                                                                  |
| poolAddress                                         | String | The address of the pool.                                                                                                   |
| yieldAggregatorId<mark style="color:red;">\*</mark> | String | Refer to the [Yield Aggregator ID](/~/changes/CwwHZ0oIeFsEWwiEWd1b/important-ids/yield-aggregator-id.md) page for details. |
| vaultAddress                                        | String | The address of the vault.                                                                                                  |

{% tabs %}
{% tab title="Sample Request" %}

#### With tokenAddress:

```
https://api.expand.network/yieldaggregator/getbalance?address=0xC7565379C190014449eE83CF9FD7475206E59f9e&tokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&yieldAggregatorId=5100
```

#### With vaultAddress and poolAddress:

```url
https://api.expand.network/yieldaggregator/getbalance?address=0xC7565379C190014449eE83CF9FD7475206E59f9e&vaultAddress=0xFE09e53A81Fe2808bc493ea64319109B5bAa573e&yieldAggregatorId=5100&poolAddress=0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "vaultBalance": "0",
        "poolBalance": "0"
    }
}
```

{% endtab %}
{% endtabs %}

### /getvaults

## Get the number of the vaults along with the respective vault APY.

<mark style="color:blue;">`GET`</mark> `https://api.expand.network/yieldaggregator/getvaults`

#### Query Parameters

| Name                                                | Type   | Description                                                                                                                |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| rpc                                                 | String | Remote procedural call URL                                                                                                 |
| tokenAddress<mark style="color:red;">\*</mark>      | String | The address of the token.                                                                                                  |
| yieldAggregatorId<mark style="color:red;">\*</mark> | String | Refer to the [Yield Aggregator ID](/~/changes/CwwHZ0oIeFsEWwiEWd1b/important-ids/yield-aggregator-id.md) page for details. |

{% tabs %}
{% tab title="Sample Request" %}

```url
https://api.expand.network/yieldaggregator/getvaults?tokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&yieldAggregatorId=5100
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "tokenVaults": [
            {
                "vaultAddress": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
                "apy": "4.08",
                "poolAddress": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e"
            }
        ]
    }
}
```

{% endtab %}
{% endtabs %}

### /depositvault

{% hint style="warning" %}
For **/depositvault**, the user can either pass the tokenAddress or the vaultAddress along with the required parameters.
{% endhint %}

## Trigger the deposit transaction for the given vault.

<mark style="color:green;">`POST`</mark> `https://api.expand.network/yieldaggregator/depositvault`

#### Request Body

| Name                                                | Type   | Description                                                                                                                |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| amount<mark style="color:red;">\*</mark>            | String | The amount of token to deposit.                                                                                            |
| tokenAddress                                        | String | The address of the token.                                                                                                  |
| from<mark style="color:red;">\*</mark>              | String | Address of the sender of the token.                                                                                        |
| gas<mark style="color:red;">\*</mark>               | String | Maximum gas limit provided by the sender, for the transaction.                                                             |
| vaultAddress                                        | String | The address of the vault.                                                                                                  |
| yieldAggregatorId<mark style="color:red;">\*</mark> | String | Refer to the [Yield Aggregator ID](/~/changes/CwwHZ0oIeFsEWwiEWd1b/important-ids/yield-aggregator-id.md) page for details. |
| gasPriority                                         | String | low, medium, or high.                                                                                                      |

{% tabs %}
{% tab title="Sample Request" %}

#### With tokenAddress:&#x20;

```json
{ 
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "amount": "500000",
    "gas": "2307200",
    "yieldAggregatorId": "5100"
}
```

#### With vaultAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "vaultAddress": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
    "amount": "500000",
    "gas": "2307200",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
        "to": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
        "value": "0",
        "gas": "2307200",
        "data": "0xb6b55f25000000000000000000000000000000000000000000000000000000000007a120"
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Sample Request" %}

#### With gasPriority (medium)-

#### 1. With tokenAddress:

```json
{
    "from": "0xfAE7D9854995E28BEB1B1da864ee2A1E2EC17f07",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "amount": "10000000",
    "gas": "2307200",
    "gasPriority":"medium",
    "yieldAggregatorId": "5100"
}
```

#### 2. With vaultAddress:

```json
{
    "from": "0xfAE7D9854995E28BEB1B1da864ee2A1E2EC17f07",
    "vaultAddress": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
    "amount": "500000",
    "gas": "2307200",
    "gasPriority":"medium",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}

#### With gasPriority-

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0xfAE7D9854995E28BEB1B1da864ee2A1E2EC17f07",
        "to": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
        "value": "0",
        "gas": "155912",
        "data": "0xb6b55f250000000000000000000000000000000000000000000000000000000000989680"
    }
}
```

{% endtab %}
{% endtabs %}

### /withdrawvault

{% hint style="warning" %}
For **/withdrawvault**, the user can either pass the tokenAddress or the vaultAddress along with the required parameters.
{% endhint %}

## Trigger the withdraw transaction for the given vault.

<mark style="color:green;">`POST`</mark> `https://api.expand.network/yieldaggregator/withdrawvault`

#### Request Body

| Name                                                | Type   | Description                                                                                                                |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| yieldAggregatorId<mark style="color:red;">\*</mark> | String | Refer to the [Yield Aggregator ID](/~/changes/CwwHZ0oIeFsEWwiEWd1b/important-ids/yield-aggregator-id.md) page for details. |
| amount<mark style="color:red;">\*</mark>            | String | Amount to be withdrawn.                                                                                                    |
| from<mark style="color:red;">\*</mark>              | String | Address of the withdrawer of the token.                                                                                    |
| gas<mark style="color:red;">\*</mark>               | String | Maximum gas limit provided by the sender, for the transaction.                                                             |
| tokenAddress                                        | String | The address of the the token.                                                                                              |
| vaultAddress                                        | String | The address of the vault.                                                                                                  |
| gasPriority                                         | String | low, medium, or high.                                                                                                      |

{% tabs %}
{% tab title="Sample Request" %}

#### With tokenAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "amount": "500000",
    "gas": "2307200",
    "yieldAggregatorId": "5100"
}
```

#### With vaultAddress:&#x20;

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "amount": "4934226",
    "gas": "2307200",
    "vaultAddress": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
        "to": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
        "value": "0",
        "gas": "2307200",
        "data": "0x2e1a7d4d00000000000000000000000000000000000000000000000000000000004b4a52"
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Sample Request" %}

#### With gasPriority (medium)-

#### 1. With tokenAddress:

```json
{
    "from": "0xfAE7D9854995E28BEB1B1da864ee2A1E2EC17f07",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "amount": "500000",
    "gas": "2307200",
    "gasPriority":"medium",
    "yieldAggregatorId": "5100"
}
```

#### 2. With vaultAddress:

```json
{
    "from": "0xfAE7D9854995E28BEB1B1da864ee2A1E2EC17f07",
    "vaultAddress": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
    "amount": "500000",
    "gas": "2307200",
    "gasPriority":"medium",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}

#### With gasPriority

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0xfAE7D9854995E28BEB1B1da864ee2A1E2EC17f07",
        "to": "0xFE09e53A81Fe2808bc493ea64319109B5bAa573e",
        "value": "0",
        "gas": "127728",
        "data": "0x2e1a7d4d000000000000000000000000000000000000000000000000000000000007a120"
    }
}
```

{% endtab %}
{% endtabs %}

### /depositpool

{% hint style="warning" %}
For **/depositpool**, the user can either pass the tokenAddress or the poolAddress along with the required parameters.
{% endhint %}

## Trigger the deposit transaction for the given pool.

<mark style="color:green;">`POST`</mark> `https://api.expand.network/yieldaggregator/depositpool`

#### Request Body

| Name                                                | Type   | Description                                                                                                                |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| yieldAggregatorId<mark style="color:red;">\*</mark> | String | Refer to the [Yield Aggregator ID](/~/changes/CwwHZ0oIeFsEWwiEWd1b/important-ids/yield-aggregator-id.md) page for details. |
| amount<mark style="color:red;">\*</mark>            | String | The amount of token to deposit.                                                                                            |
| from<mark style="color:red;">\*</mark>              | String | Address of the sender of the token.                                                                                        |
| gas<mark style="color:red;">\*</mark>               | String | Maximum gas limit provided by the sender, for the transaction.                                                             |
| tokenAddress                                        | String | The address of the token.                                                                                                  |
| poolAddress                                         | String | The address of the pool.                                                                                                   |

{% tabs %}
{% tab title="Sample Request" %}

#### With tokenAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "amount": "4934226",
    "gas": "2307200",
    "yieldAggregatorId": "5100"
}
```

#### With poolAddress:&#x20;

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "poolAddress": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
    "amount": "4934226",
    "gas": "2307200",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
        "to": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
        "value": "0",
        "gas": "2307200",
        "data": "0xa694fc3a00000000000000000000000000000000000000000000000000000000004b4a52"
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Sample Request" %}
**With gasPriority (low)**

#### 1. With tokenAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "amount": "4934226",
    "gas": "230720",
    "gasPriority": "low",
    "yieldAggregatorId": "5100"
}
```

#### 2. With poolAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "poolAddress": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
    "amount": "4934226",
    "gas": "230720",
    "gasPriority": "low",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}
**With gasPriority (low):**&#x20;

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
        "to": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
        "value": "0",
        "gas": "11926",
        "data": "0xa694fc3a00000000000000000000000000000000000000000000000000000000004b4a52"
    }
}
```

{% endtab %}
{% endtabs %}

### /withdrawpool

{% hint style="warning" %}
For **/withdrawpool**, the user can either pass the tokenAddress or the poolAddress along with the required parameters.
{% endhint %}

## Trigger the withdraw transaction for the given pool.

<mark style="color:green;">`POST`</mark> `https://api.expand.network/yieldaggregator/withdrawpool`

#### Request Body

| Name                                                | Type   | Description                                                                                                                |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| yieldAggregatorId<mark style="color:red;">\*</mark> | String | Refer to the [Yield Aggregator ID](/~/changes/CwwHZ0oIeFsEWwiEWd1b/important-ids/yield-aggregator-id.md) page for details. |
| amount<mark style="color:red;">\*</mark>            | String | Amount to be withdrawn.                                                                                                    |
| from<mark style="color:red;">\*</mark>              | String | Address of the withdrawer of the token.                                                                                    |
| gas<mark style="color:red;">\*</mark>               | String | Maximum gas limit provided by the sender, for the transaction.                                                             |
| tokenAddress                                        | String | The address of the token.                                                                                                  |
| poolAddress                                         | String | The address of the pool.                                                                                                   |

{% tabs %}
{% tab title="Sample Request" %}

#### With tokenAddress:&#x20;

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "amount": "4934226",
    "gas": "2307200",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "yieldAggregatorId": "5100"
}
```

#### With poolAddress:&#x20;

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "poolAddress": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
    "amount": "4934226",
    "gas": "2307200",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
        "to": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
        "value": "0",
        "gas": "2307200",
        "data": "0x2e1a7d4d00000000000000000000000000000000000000000000000000000000004b4a52"
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Sample Request" %}
**With gasPriority (medium)**

#### 1. With tokenAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "amount": "4934226",
    "gas": "230720",
    "gasPriority": "medium",
    "tokenAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
    "yieldAggregatorId": "5100"
}
```

#### 2. With poolAddress:

```json
{
    "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
    "amount": "4934226",
    "gas": "230720",
    "gasPriority": "medium",
    "poolAddress": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
    "yieldAggregatorId": "5100"
}
```

{% endtab %}

{% tab title="Sample Response" %}
**With gasPriority (medium)**

```json
{
    "status": 200,
    "msg": "success",
    "data": {
        "chainId": "1",
        "from": "0x63056E00436Da25BcF48A40dfBbDcc7089351006",
        "to": "0x3DA9D911301f8144bdF5c3c67886e5373DCdff8e",
        "value": "0",
        "gas": "229110",
        "data": "0x2e1a7d4d00000000000000000000000000000000000000000000000000000000004b4a52"
    }
}
```

{% endtab %}
{% endtabs %}
