# Smart Contracts

- [FNFTHandler](https://dev.revest.finance/smart-contracts/fnfthandler.md): This contract creates and mints the FNFTs, it also tracks them, their supply, and points to the MetadataHandler.
- [LockManager](https://dev.revest.finance/smart-contracts/lockmanager.md): This contract creates, tracks and handles the unlocking of the FNFTs.
- [MetadataHandler](https://dev.revest.finance/smart-contracts/metadatahandler.md): This contract keeps track of where the FNFTs metadata is stored, this contract is dynamic so it can be swapped out in the future.
- [RevestAddressRegistry](https://dev.revest.finance/smart-contracts/revestaddressregistry.md): This contract is the router, it keeps track of all contracts and allows interchangeability among some of the contracts.
- [TokenVault](https://dev.revest.finance/smart-contracts/tokenvault.md): This contract is where all the ERC20 tokens that were locked into FNFTs are stored, this handles value tracking, and interest-bearing tokens.
- [Revest](https://dev.revest.finance/smart-contracts/revest.md): This documentation covers Revest.sol core functionality.


---

# 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://dev.revest.finance/smart-contracts.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.
