## Tool-specific Configuration

Configuration for Vyper, JSON bindings, Soldeer, and network-specific behavior.

### Vyper

Define Vyper settings under `[profile.<name>.vyper]`.

| Field | Default | Description |
| --- | --- | --- |
| `path` | none | Selects the Vyper executable. |
| `optimize` | none | Selects the Vyper optimization mode. |
| `opt_level` | none | Selects the numeric optimization level; `optLevel` is an alias. |
| `experimental_codegen` | none | Enables experimental code generation. |
| `venom_experimental` | none | Enables the experimental Venom pipeline. |
| `debug` | none | Compiles in debug mode. |
| `enable_decimals` | none | Re-enables the Vyper decimal type. |
| `venom` | none | Supplies fine-grained Venom optimizer settings. |

### JSON bindings

Define `forge bind-json` settings under `[profile.<name>.bind_json]`.

| Field | Default | Description |
| --- | --- | --- |
| `out` | `utils/JsonBindings.sol` | Sets the generated Solidity file. |
| `include` | `[]` | Includes only matching project-file globs. |
| `exclude` | `[]` | Excludes matching project-file globs. |

### Soldeer

`[dependencies]` maps dependency names to version strings or objects. Dependency
objects support `version`, `url`, `git`, `rev`, `branch`, `tag`, and
`project_root`.

```toml
[dependencies]
forge-std = "1.9.7"
my-lib = { version = "1.0.0", git = "https://github.com/example/my-lib", tag = "v1.0.0" }
```

The `[soldeer]` table configures Soldeer's install and remapping behavior. See
the [Soldeer guide](/projects/soldeer) for its fields and workflows.

### Networks

Network keys enable chain-specific execution behavior. They live at the top
level of `[profile.<name>]`.

| Field | Default | Description |
| --- | --- | --- |
| `network` | none | Selects the network family: `ethereum`, `optimism`, or `tempo`. |
| `celo` | `false` | Enables Celo network features such as the Celo transfer precompile. |
| `bypass_prevrandao` | `false` | Uses a random `prevrandao` when the forked block does not provide one. |

Selecting a network family enables its execution rules and precompiles — for
example the Tempo system precompiles, which are also labeled in traces. When
forking, Foundry infers the network from the chain ID, so `network` mainly
matters for local execution; see the
[`network`](/config/reference/testing#network) entry for details. The legacy
boolean forms `optimism = true` and `tempo = true` are still accepted.

```toml
[profile.default]
network = "tempo"
```

`bypass_prevrandao` is enabled automatically on chains that do not supply a
`prevrandao` value, such as Moonbeam, RSK, and Gnosis.

### Linter-specific fields

Under `[profile.<name>.lint.lint_specific]`, `mixed_case_exceptions` lists
allowed mixed-case name fragments and `multi_contract_file_exceptions` accepts
`interface`, `library`, and `abstract_contract`.
