# Getting Started

### Development Stacks

As you can see in the different development stacks below, the way you deploy contracts and interact with them is almost identical to the way you do it with L1 Ethereum. The most visible difference is that you have to specify a different endpoint (of course).

* [Apeworx](https://www.apeworx.io/)
* [Brownie](https://eth-brownie.readthedocs.io/en/stable/install.html)
* [Foundry](https://getfoundry.sh/)
* [Hardhat](https://hardhat.org/)
* [Remix](https://remix.ethereum.org/)
* [Truffle](https://trufflesuite.com/)
* [Waffle](https://getwaffle.io/)

### Best Practices

#### Use Provided EVM <a href="#use-provided-evm" id="use-provided-evm"></a>

It is best to start development with the EVM provided by the development stack. Not only is it faster, but such EVMs often have extra features, such as the [ability to log messages from Solidity](https://hardhat.org/tutorial/debugging-with-hardhat-network.html) or a [graphical user interface](https://trufflesuite.com/ganache/).

#### Contract Source Verification <a href="#contract-source-verification" id="contract-source-verification"></a>

You don't have to upload your source code to [block explorers](https://docs.optimism.io/builders/tools/build/block-explorers), but it is a good idea. On the test network, it lets you issue queries and transactions from the explorer's user interface. On the production network, it lets users know exactly what your contract does, which is conducive to trust.


---

# 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.stratovm.io/stratovm-sdk/getting-started.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.
