# Harvester

#### Introduction

Uniswap V3 concentrated liquidity offers several advantages but requires more active management from liquidity providers (LPs). When a liquidity position earns fees, they accumulate separately and are not automatically compounded back into the position.

Neby's Harvester is a fork of Revert.finance's Auto-compounder, built to address this issue. Users can deposit their liquidity positions to the Auto-compounder, ensuring fees are regularly collected and compounded.

In addition to the features of the Auto-compounder, the Harvester offers harvesting, shared ownership, and composability:

* Harvesting: Allows users to pull fees earned by the NFT into their wallets, rather than recompounding them. Users can choose to harvest a portion of their fees while the remainder is compounded back.
* Shared Ownership: Enables multiple harvest recipients, ideal for protocol-owned liquidity. A protocol can designate fee recipients without transferring ownership of the NFT.
* Composability: The Harvester is compatible with external smart contracts such as the LiquidityPositionStaker.

#### Roles

User:

* Users provide liquidity position tokens to be harvested and/or auto-compounded.
* Each token has customizable settings for how much of its fees are harvested versus compounded, and who the harvest recipients are.
* Users can also manage liquidity by decreasing token liquidity and collecting fees directly.

Owner:

* The owner can set fees for auto-compounding and harvesting (up to 2% of liquidity position revenue) to cover gas costs.
* The owner manages the Time-Weighted Average Price (TWAP) configuration, ensuring swaps do not negatively impact user revenue.

Workers:

* Any account can auto-compound or auto-harvest on behalf of deposited tokens. Neby operates bots to ensure regular servicing of all deposits.

#### Interactions

* The Harvester receives positions from the LiquidityPositionStaker, with the latter as the token owner.
* It executes swaps and manages liquidity positions within their respective pools.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://neby.gitbook.io/neby-documentation/ecosystem/harvester.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
