# set\_fees

An entrypoint that setups fee for the specified farm. Also can setup fees for a group of farms in one transaction.

### Call parameters

```pascaligo
type fees_type          is [@layout:comb] record [
  harvest_fee             : nat;
  withdrawal_fee          : nat;
  burn_reward             : nat;
]

type set_fee_type       is [@layout:comb] record [
  fid                     : fid_type;
  fees                    : fees_type;
]

type set_fees_type      is list(set_fee_type)
```

#### fees\_type

<table><thead><tr><th>Field</th><th width="150">Type</th><th width="199.77716643741405">Hint</th><th>Description</th></tr></thead><tbody><tr><td>harvest_fee</td><td>nat</td><td>Float value multiplied by 1e+16</td><td>Fee that applies in time of rewards claiming</td></tr><tr><td>withdrawal_fee</td><td>nat</td><td>Float value multiplied by 1e+16</td><td>Fee that applies in time of withdrawing (unstaking) tokens only in farms with timelock. Applies only in case of early withdrawal</td></tr><tr><td>burn_reward</td><td>nat</td><td>Float value multiplied by 1e+16</td><td>The % of the rewards that will be minted to the transaction sender when he calls <a href="../other-entrypoints/burn_farm_rewards"><em><strong>burn_farm_rewards</strong></em></a> entrypoint</td></tr></tbody></table>

#### set\_fee\_type

<table><thead><tr><th width="225.51915588834515">Field</th><th width="196.6059476580288">Type</th><th>Description</th></tr></thead><tbody><tr><td>fid</td><td>fid_type (nat)</td><td>Farm's ID</td></tr><tr><td>fees</td><td><a href="#fees_type">fees_type</a></td><td>Fees that applies to the farming</td></tr></tbody></table>

### Usage

{% tabs %}
{% tab title="🌮 Taquito" %}

```javascript
const farmId = 1;
const harvestFee = 0.05 * 10 ** 16; // 0.05%
const withdrawalFee = 0.25 * 10 ** 16; // 0.25%
const burnReward = 3 * 10 ** 16; // 3%
const qFarmAddress = "KT1...";
const fees = [
    {
        fid: farmId,
        fees: {
            harvest_fee: harvestFee,
            withdrawal_fee: withdrawalFee,
            burn_reward: burnReward,
        },
    },
    ...
];
const qFarm = await tezos.contract.at(qFarmAddress);
const operation = await qFarm.methods.set_fees(fees).send();

await operation.confirmation();
```

{% endtab %}
{% endtabs %}

### Errors

* `Not-admin` - `sender` of the transaction is not current administrator.
* `QSystem/farm-not-set` - farming with `fid` parameter doesn't exist.
