Project Layout 
##############

A typical moccasin project is structured as follows:

.. code-block:: bash

    .
    ├── README.md
    ├── moccasin.toml
    ├── script/
    ├── src/
    ├── tests/
    └── out/

Where:

- `README.md` is a markdown file that you can use to describe your project.
- `moccasin.toml` is a configuration file that `moccasin` uses to manage the project.
- `script` is a directory that contains python scripts that you can use to deploy your project.
- `src` is a directory that contains your vyper smart contracts.
- `tests` is a directory that contains your tests.
- `out` is an optional directory that contains the compiled contracts. In moccasin and titanoboa, contracts are compiled on the fly!

Changing your layout 
====================

If you wanted to adjust your contracts location, for example, have your smart contracts folder be named `contracts` instead of `src`, you'd update your `moccasin.toml` file to reflect this change:

.. code-block:: toml

    [project]
    src = "contracts"


