> For the complete documentation index, see [llms.txt](https://learn.qanplatform.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.qanplatform.com/developers/qvm-multi-language-smart-contracts/generic-workflow.md).

# Generic workflow

This section describes the generics related to:

* [How contracts can interact with QVM using a common API](/developers/qvm-multi-language-smart-contracts/generic-workflow/common-api.md)
* [Installing `qvmctl`, the command line interface of QVM](/developers/qvm-multi-language-smart-contracts/generic-workflow/installing-qvmctl.md)
* [Setting up your workspace](/developers/qvm-multi-language-smart-contracts/generic-workflow/setting-up-your-workspace.md)
* [How to write a smart contract](/developers/qvm-multi-language-smart-contracts/generic-workflow/writing-a-smart-contract.md)
* [How to compile a smart contract](/developers/qvm-multi-language-smart-contracts/generic-workflow/compiling-a-smart-contract.md)
* [Deploying contracts using `qvmctl`](/developers/qvm-multi-language-smart-contracts/generic-workflow/deploying-a-smart-contract.md)
* [Calling contract functions using `qvmctl`](/developers/qvm-multi-language-smart-contracts/generic-workflow/calling-a-smart-contract-function.md)
* [Reading contract storage using `qvmctl`](/developers/qvm-multi-language-smart-contracts/generic-workflow/reading-smart-contract-storage.md)
