# EVM Compatibility and Cosmos Compatibility

Ottochain ensures compatibility with the Ethereum Virtual Machine (EVM), allowing developers to deploy and execute existing Ethereum smart contracts directly on the Ottochain network. This is conducted through a JSON-RPC interface that allows users of common EVM wallets and tools to create transactions, see their accounts, and interact with the blockchain. The secp256k1 curve for the Cosmos keyring and the Ethereum interface for Cosmos transactions and messages are also present.\
\
As stated, Ottochain is based on Cosmos SDK and is therefore utilising the [StateDB](https://docs.ethermint.zone/modules/evm/02_state.html) interface for state updates and queries. This means that Ethermint is the primary tool for interacting with Ottochain for users and developers, however operators will be asked to utilise standard Cosmos chain requirements in Golang. The Octopus Network template provided for this solution is referred to Oyster and can be found [here](https://github.com/octopus-network/oyster).

<br>


---

# 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://ottochains-organization.gitbook.io/ottochain-documentation/how-ottochain-works/evm-compatibility-and-cosmos-compatibility.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.
