> ## Documentation Index
> Fetch the complete documentation index at: https://docs.state.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration Properties

> Properties for the state-space.toml file

Jump to an [example](/docs/cli/settings#example)

### General Settings

<ResponseField name="project" type="string" required>
  Sets the name of the project. The project is auto-created if it does not already exist using the folder name.
</ResponseField>

<ResponseField name="team" type="string">
  Enter the team slug (found in your account settings) you wish to deploy and upload your project. If left blank, it will default to your personal workspace.
</ResponseField>

<ResponseField name="framework" type="string">
  Specifies your project environment. Options are: `"hardhat"` or `"foundry"`.
</ResponseField>

<ResponseField name="artifacts" type="string[]">
  Specify paths to solc json output files. Not required if specifying a framework (e.g. hardhat or foundry )
</ResponseField>

<ResponseField name="workbench.new" type="string">
  Auto-creates a new Workbench and sets its name.
</ResponseField>

### Deployment Settings (optional)

Deployments are a set of concrete transactions and accounts. They are used as initial states when exploring your state space. Deployments are recorded by running a script against a local EVM. Deployments are currently only supported when using a framework.

<ResponseField name="[deployment.Main]">
  Defines a deployment structure.
</ResponseField>

<ResponseField name="name" type="string">
  Name of your custom deployment.
</ResponseField>

<ResponseField name="script" type="string">
  Foundry deployments only. When using Foundry scripts, the scripts property may be used as a shorthand alternative to the command property.
  The RPC url does *not* need to be specified when using this form.

  <CodeGroup>
    ```toml Example 1 theme={null}
    script="./script/DEPLOY.s.sol"
    ```

    ```toml Example 2 theme={null}
    script="./script/DEPLOY.s.sol:DeployScript"
    ```
  </CodeGroup>
</ResponseField>

<ResponseField name="modules" type="string[]">
  When using Hardhat's Ignition, the modules property may be used as a shorthand alternative to the command property. The RPC url does *not* need to be specified when using this form.

  ```toml theme={null}
  modules = [
     "path to Ignition module", 
  ]
  ```
</ResponseField>

<ResponseField name="command" type="string[]">
  For both Foundry and Hardhat deployments. Command is a list of strings representing the command to run when recording this deployment. *Ensure* that your RPC endpoint points to localhost:8545.

  <CodeGroup>
    ```toml Hardhat theme={null}
    ## example usage
    command=["npx", "deploy.ts", "node", "--localhost", ...]
    ```

    ```toml Foundry theme={null}
    ## example usage
    command=["forge", "script", ...]
    ```
  </CodeGroup>

  Prefer to use the Hardhat config? Try the [Hardhat plugin](/docs/cli/hardhat).
</ResponseField>

<ResponseField name="accounts" type="uint">
  Specify the number of externally owned accounts (wallets) to use in this deployment (up to max 20 accounts).

  ```toml theme={null}
  accounts = 3%
  ```
</ResponseField>

### Example

```toml state-space.toml [expandable] theme={null}
# Sets the name of the project. 
#
# The project is created if it does not already exist.
project = "Project MyToken"

# If using State Space in a team, specify the team identifier.
# By default, your personal account will be used.
team = "my-team"

# Sets the primary framework to use.
# 
# When setting a framework, contract sources and solc settings are 
# automatically used when pushing code to State Space.
# 
# Optional. Supports "foundry" or "hardhat".
framework = "hardhat"


# Creates a new Workbench project
workbench.new = "MyToken"

# Specify paths to solc json output files.
# If using a framework, this usually isn't necessary.
# artifacts = []

# Defines a deployment
# 
# Deployments are a set of concrete transactions and accounts. 
# They are used as initial states when exploring your state space.
# 
# Deployments are recorded by running a script against a local EVM.
# Deployments are currently only supported when using a framework.
# [deployment.Main]

# Command is a list of strings representing the command to run when 
# recording this deployment. Ensure that your RPC endpoint points to
# localhost:8545.
# command = ["forge", "script", ...]

# When using Foundry scripts, the scripts property may be used as a 
# shorthand alternative to the command property.
# The RPC url does not need to be specified when using this form.
# scripts = [
#    "name of or path to Foundry script", 
# ]

# When using Hardhat's Ignition, the modules property may be used as a 
# shorthand alternative to the command property.
# The RPC url does not need to be specified when using this form.
# modules = [
#    "path to Ignition module", 
# ]

# Specify the number of externally owned accounts (wallets) to use
# in this deployment
# accounts = 3%         
```
