# Smart contracts

- [E721 Farms](/sperax-farms-protocol/technical-documents/smart-contracts/e721-farms.md): E721 farms include all the farms built for pools in which the liquidity provider has an NFT (ERC721) position.
- [E721Farm](/sperax-farms-protocol/technical-documents/smart-contracts/e721-farms/e721farm.md)
- [Camelot V3](/sperax-farms-protocol/technical-documents/smart-contracts/e721-farms/camelot-v3.md): Pools in camelot V3 are very similar to Uniswap V3. When a liquidity provider supplies assets to the pool, the LP receives an NFT position in return.
- [CamelotV3FarmDeployer](/sperax-farms-protocol/technical-documents/smart-contracts/e721-farms/camelot-v3/camelotv3farmdeployer.md)
- [CamelotV3Farm](/sperax-farms-protocol/technical-documents/smart-contracts/e721-farms/camelot-v3/camelotv3farm.md)
- [Base contracts](/sperax-farms-protocol/technical-documents/smart-contracts/base-contracts.md): These contracts are base for all the other contracts and they have the common logic for functionalities like deposit, withdraw, createFarm, etc.
- [Farm](/sperax-farms-protocol/technical-documents/smart-contracts/base-contracts/farm.md)
- [FarmStorage](/sperax-farms-protocol/technical-documents/smart-contracts/base-contracts/farmstorage.md)
- [FarmRegistry](/sperax-farms-protocol/technical-documents/smart-contracts/base-contracts/farmregistry.md)
- [FarmDeployer](/sperax-farms-protocol/technical-documents/smart-contracts/base-contracts/farmdeployer.md)
- [Features](/sperax-farms-protocol/technical-documents/smart-contracts/features.md): Features contracts can be considered as plugins, which are used in farms only where they are needed.
- [ClaimableFee](/sperax-farms-protocol/technical-documents/smart-contracts/features/claimablefee.md)
- [ExpirableFarm](/sperax-farms-protocol/technical-documents/smart-contracts/features/expirablefarm.md)
- [OperableDeposit](/sperax-farms-protocol/technical-documents/smart-contracts/features/operabledeposit.md)
- [Rewarder](/sperax-farms-protocol/technical-documents/smart-contracts/rewarder.md): Rewarder is a contract which can be used by farm admins when they want to emit rewards in fixed APR instead of fixed token amounts (by setting reward rate).
- [Rewarder](/sperax-farms-protocol/technical-documents/smart-contracts/rewarder/rewarder.md)
- [RewarderFactory](/sperax-farms-protocol/technical-documents/smart-contracts/rewarder/rewarderfactory.md)
