# Compiling your contracts
Compiling contracts can be done using the command polar compile.
# Compile all contracts
polar compile by default compiles all the contracts in the contracts/ directory. For each contract compiled, corresponding .wasm file is stored in the artifacts/contracts directory created in project's root directory.
# Compile one contract
To compile only one contract or a subset of all contracts in the contract/ directory, use command polar compile <sourcePaths> and this can look something like polar compile contracts/sample-project or polar compile contracts/sample-project-1 contracts/sample-project-2.
# Schema generation
Schema is also generated alongside the compiled .wasm file for each of the contract compiled using polar compile command. Schema files are .json files (stored inside artifacts/schema/) directory and there are multiple .json files per contract but only one .wasm compiled file per contract. To skip schema generation while compiling use polar compile --skip-schema.
Single contract artifacts/ directory structure:
.
├── contracts
│ └── sample_project.wasm
└── schema
└── sample_project
├── count_response.json
├── handle_msg.json
├── init_msg.json
├── query_msg.json
└── state.json
3 directories, 6 files
Multi contract artifacts/ directory structure:
.
├── contracts
| ├── sample_project_1.wasm
│ └── sample_project_2.wasm
└── schema
├── sample_project
│ ├── count_response.json
│ ├── handle_msg.json
│ ├── init_msg.json
│ ├── query_msg.json
│ └── state.json
└── sample_project_1
├── count_response.json
├── handle_msg.json
├── init_msg.json
├── query_msg.json
└── state.json
4 directories, 12 files