# EVM Basics

### What is EVM?

The Ethereum Virtual Machine (EVM) is a runtime environment for smart contracts in Ethereum. Verychain maintains full compatibility with EVM, allowing developers to deploy and run Ethereum smart contracts seamlessly.

### Key Concepts

#### 1. Smart Contracts

* Self-executing contracts with the terms directly written into code
* Written in Solidity or other EVM-compatible languages
* Deployed on the blockchain and immutable once deployed

#### 2. Gas

* Unit of computational effort
* Required for all operations on the network
* Prevents infinite loops and spam

#### 3. Accounts

* **Externally Owned Accounts (EOA)**
  * Controlled by private keys
  * Can send transactions
* **Contract Accounts**
  * Controlled by code
  * Can execute smart contracts

#### 4. Transactions

* Data packages that trigger state changes
* Include:
  * From address
  * To address
  * Value
  * Data
  * Gas limit
  * Gas price

### Development Tools

#### Essential Tools

1. **MetaMask**: Browser wallet for interacting with dApps
2. **Remix**: Online IDE for smart contract development
3. **Hardhat/Truffle/Foundry**: Development frameworks
4. **Ethers/Viem**: JavaScript libraries for interaction

#### Testing

* Local test networks
* Automated testing frameworks
* Gas optimization tools
