> For the complete documentation index, see [llms.txt](https://circular-protocol.gitbook.io/hyper-code-ide-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://circular-protocol.gitbook.io/hyper-code-ide-guide/lesson-1-get-started/quickstart.md).

# Smart Contract Project Files

On Circular Protocol, there are two types of smart contracts: Basic Smart Contracts (interpreted) and Hyper Contracts (compiled into bytecode). While many focus on functionality over performance, Circular aims to support more advanced DApps with a new architecture. This tutorial will guide you through developing a Basic Smart Contract, which is still faster than those on other blockchains. When starting a project, you’ll find key files in the Project Explorer.

<figure><img src="/files/TdTNeU6tXGT4ttsdGC5d" alt=""><figcaption><p>Project Explorer Interface</p></figcaption></figure>

## Key Files for Your Smart Contract Project <a href="#key-files-for-your-smart-contract-project" id="key-files-for-your-smart-contract-project"></a>

| File               | Description                                                                                                 |
| ------------------ | ----------------------------------------------------------------------------------------------------------- |
| **Settings.json**  | Input all essential contract info here. Your first task is to complete the required fields.                 |
| **Definitions.hc** | Holds common functions and classes used across contracts. No major changes needed—just learn how to use it. |
| **Init.hc**        | Initializes global variables. Minimal changes unless you have specific requirements.                        |
| **Contract.hc**    | The core of your smart contract. This file defines the contract’s properties and methods.                   |
| **Test.hc**        | Used for testing and simulating transactions during debugging.                                              |
| **Output.hc**      | Prints contract output for debugging and single-node calls.                                                 |
| **ReadMe.txt:**    | Add instructions and notes for other developers once the contract is complete.                              |
| **License.txt**    | Contains the license for your contract, which is open-source by default                                     |

These files streamline the development process, and you can add extra libraries from the “Resources > Libraries” section as needed. This approach simplifies setup, making contract creation efficient on the Circular Protocol.
