# Sickle

Sickle is a smart contract wallet, deployed for each vfat.io user on each chain in order to manage their yield farming positions. It is similar to DSProxy.

It is deployed by the SickleFactory, the first time a user opens a position on a chain.

It has a Multicall function which batches actions together such as swapping, adding liquidity, staking etc. This function is gated, it can only be called by strategies registered in SickleRegistry, and it can only target contracts also registered in SickleRegistry.

Strategies are multicall recipes. Their functions can either be called by anyone if they don't require a deployed Sickle (deposit) or only by Sickle owners (withdraw, harvest, compound, etc).

The currently deployed ones are:

FarmStrategy is the main strategy, its functions include deposit and withdraw (swapping in any token onto a staked liquidity position, or swapping out to any token), as well as harvest (claiming rewards and swapping them) or compound, each of which can be done in a single transaction. It also offers combined actions exit (harvest + withdraw) and rebalance (withdraw one position and deposit into another).

SimpleFarmStrategy has deposit, withdraw, harvest and exit, but it doesn't do any swaps. It can be used to deposit/withdraw the LP token itself, and to harvest the reward token.

NftFarmStrategy has depositErc721 and withdrawErc721 for depositing an ERC721 token or withdrawing it directly from a staking contract.

SweepStrategy allows you to sweep any tokens that have been left in your Sickle, or sent there by accident.