# Development Toolkit

***

### Mappings to foundry

Seismic's development toolkit closely mirrors [Foundry](https://getfoundry.sh/) (it's a [fork](https://github.com/SeismicSystems/seismic-foundry)!). The mapping is as follows:

```
// foundry tool -> seismic version of foundry tool
forge -> sforge
anvil -> sanvil
cast -> scast
```

You should use the righthand version of all tools when developing for Seismic to get expected behavior. Our documentation assumes familiarity with foundry.

***

### Quick actions

Substitute `sforge` for `forge` to execute against Seismic's superset of the EVM. More on this in the next section.

{% tabs %}
{% tab title="Initialize sforge project" %}

```bash
# Initializes a project called `Counter`
sforge init Counter
```

{% endtab %}

{% tab title="Run tests" %}

```bash
# Run tests for the Counter contract
sforge test
```

{% endtab %}

{% tab title="Deploy contract" %}

```bash
# Use sforge scripts to deploy the Counter contract
# Running `sanvil` @ http://localhost:8545
# Set the private key in the env
export PRIVATE_KEY="0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" # Address - 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
# Run the script and broadcast the deploy transaction
sforge script script/Counter.s.sol --rpc-url http://127.0.0.1:8545 --broadcast --private-key $PRIVATE_KEY
```

{% endtab %}
{% endtabs %}

***

### Local node

Use `sanvil` to run a local Seismic node for development and testing:

```bash
sanvil
```

This starts a local node at `http://localhost:8545` with pre-funded accounts, similar to Foundry's `anvil`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.seismic.systems/getting-started/development-toolkit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
