# ETHEREUM DEVELOPMENT DOCUMENTATION

By [cptest001](https://paragraph.com/@cptest001) · 2023-08-28

---

This documentation is designed to help you build with Ethereum. It covers Ethereum as a concept, explains the Ethereum tech stack, and documents advanced topics for more complex applications and use cases.

This is an open-source community effort, so feel free to suggest new topics, add new content, and provide examples wherever you think it might be helpful. All documentation can be edited via GitHub – if you're unsure how, [follow these instructions(opens in a new tab)↗](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md).

DEVELOPMENT MODULES
-------------------

If this is your first attempt at Ethereum development, we recommend starting at the beginning and working your way through like a book.

### Foundational topics

*   [Intro to Ethereum](https://ethereum.org/en/developers/docs/intro-to-ethereum/) _– A quick overview of Ethereum_
    
    \*
    
*   [Intro to Ether](https://ethereum.org/en/developers/docs/intro-to-ether/) _– A quick overview of Ether_
    
    \*
    
*   [Intro to dapps](https://ethereum.org/en/developers/docs/dapps/) _– An introduction to decentralized applications_
    
    \*
    
*   [Web2 vs Web3](https://ethereum.org/en/developers/docs/web2-vs-web3/) _– The fundamental differences that blockchain-based applications provide_
    
    \*
    
*   [Accounts](https://ethereum.org/en/developers/docs/accounts/) _– Entities in the network that can hold a balance and send transactions_
    
    \*
    
*   [Transactions](https://ethereum.org/en/developers/docs/transactions/) _– Transfers and other actions that cause Ethereum's state to change_
    
    \*
    
*   [Blocks](https://ethereum.org/en/developers/docs/blocks/) _– The way transactions are batched to ensure state is synchronised across all actors_
    
    \*
    
*   [Ethereum virtual machine (EVM)](https://ethereum.org/en/developers/docs/evm/) _– The EVM handles all the computation on the Ethereum network_
    
    *   [Opcodes](https://ethereum.org/en/developers/docs/evm/opcodes/)
        
*   [Gas](https://ethereum.org/en/developers/docs/gas/) _– Computational power required to process transactions, paid for in ETH by transaction senders_
    
    \*
    
*   [Nodes and clients](https://ethereum.org/en/developers/docs/nodes-and-clients/) _– The individuals participating in the network and the software they run to verify transactions_
    
    *   [Run a node](https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/)
        
    *   [Client diversity](https://ethereum.org/en/developers/docs/nodes-and-clients/client-diversity/)
        
    *   [Nodes as a service](https://ethereum.org/en/developers/docs/nodes-and-clients/nodes-as-a-service/)
        
    *   [Node architecture](https://ethereum.org/en/developers/docs/nodes-and-clients/node-architecture/)
        
    *   [Light clients](https://ethereum.org/en/developers/docs/nodes-and-clients/light-clients/)
        
    *   [Archive nodes](https://ethereum.org/en/developers/docs/nodes-and-clients/archive-nodes/)
        
    *   [Bootnodes](https://ethereum.org/en/developers/docs/nodes-and-clients/bootnodes/)
        
*   [Networks](https://ethereum.org/en/developers/docs/networks/) _– Implementations of Ethereum including test networks_
    
    \*
    
*   [Consensus mechanisms](https://ethereum.org/en/developers/docs/consensus-mechanisms/) _– How the individual nodes of a distributed network agree on the current state of the system_
    
    *   [Proof-of-work](https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/)
        
    *   [Proof-of-stake](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/)
        

### Ethereum stack

*   [Intro to the stack](https://ethereum.org/en/developers/docs/ethereum-stack/) _– An overview of the Ethereum/web3 stack_
    
    \*
    
*   [Smart contracts](https://ethereum.org/en/developers/docs/smart-contracts/) _– Programs that reside at an Ethereum address and run functions when triggered by transactions_
    
    *   [Smart contract languages](https://ethereum.org/en/developers/docs/smart-contracts/languages/)
        
    *   [Smart contract anatomy](https://ethereum.org/en/developers/docs/smart-contracts/anatomy/)
        
    *   [Smart contracts libraries](https://ethereum.org/en/developers/docs/smart-contracts/libraries/)
        
    *   [Testing smart contracts](https://ethereum.org/en/developers/docs/smart-contracts/testing/)
        
    *   [Compiling smart contracts](https://ethereum.org/en/developers/docs/smart-contracts/compiling/)
        
    *   [Deploying smart contracts](https://ethereum.org/en/developers/docs/smart-contracts/deploying/)
        
    *   [Verifying smart contracts](https://ethereum.org/en/developers/docs/smart-contracts/verifying/)
        
    *   [Upgrading smart contracts](https://ethereum.org/en/developers/docs/smart-contracts/upgrading/)
        
    *   [Smart contract security](https://ethereum.org/en/developers/docs/smart-contracts/security/)
        
    *   [Smart contract formal verification](https://ethereum.org/en/developers/docs/smart-contracts/formal-verification/)
        
    *   [Composability](https://ethereum.org/en/developers/docs/smart-contracts/composability/)
        
*   [Development networks](https://ethereum.org/en/developers/docs/development-networks/) _– Local blockchain environments used to test dapps before deployment_
    
    \*
    
*   [Development frameworks](https://ethereum.org/en/developers/docs/frameworks/) _– Tools that make developing with Ethereum easier_
    
    \*
    
*   Ethereum client APIs _– Convenience libraries that allow your web app to interact with Ethereum and smart contracts_
    
    *   [JavaScript APIs](https://ethereum.org/en/developers/docs/apis/javascript/)
        
    *   [Backend APIs](https://ethereum.org/en/developers/docs/apis/backend/)
        
    *   [JSON-RPC](https://ethereum.org/en/developers/docs/apis/json-rpc/)
        
*   [Data and analytics](https://ethereum.org/en/developers/docs/data-and-analytics/) _– How blockchain data is aggregated, organized and implemented into dapps_
    
    *   [Block explorers](https://ethereum.org/en/developers/docs/data-and-analytics/block-explorers/)
        
*   [Storage](https://ethereum.org/en/developers/docs/storage/) _– Decentralized storage structures and mechanism_
    
    \*
    
*   [Integrated Development Environments (IDEs)](https://ethereum.org/en/developers/docs/ides/) _– The best environments to write dapp code_
    
    \*
    
*   [Programming languages](https://ethereum.org/en/developers/docs/programming-languages/) _– How to get started with Ethereum using languages you may already know_
    
    *   [Dart](https://ethereum.org/en/developers/docs/programming-languages/dart/)
        
    *   [Delphi](https://ethereum.org/en/developers/docs/programming-languages/delphi/)
        
    *   [.NET](https://ethereum.org/en/developers/docs/programming-languages/dot-net/)
        
    *   [Golang](https://ethereum.org/en/developers/docs/programming-languages/golang/)
        
    *   [Java](https://ethereum.org/en/developers/docs/programming-languages/java/)
        
    *   [JavaScript](https://ethereum.org/en/developers/docs/programming-languages/javascript/)
        
    *   [Python](https://ethereum.org/en/developers/docs/programming-languages/python/)
        
    *   [Ruby](https://ethereum.org/en/developers/docs/programming-languages/ruby/)
        
    *   [Rust](https://ethereum.org/en/developers/docs/programming-languages/rust/)
        

### Advanced

*   [Bridges](https://ethereum.org/en/developers/docs/bridges/) _– An overview of bridging for developers_
    
    \*
    
*   [Standards](https://ethereum.org/en/developers/docs/standards/) _– Agreed upon protocols for maintaining efficiency and accessibility of projects to the community_
    
    *   [Token standards](https://ethereum.org/en/developers/docs/standards/tokens/)
        
*   [Maximal extractable value (MEV)](https://ethereum.org/en/developers/docs/mev/) _– How value is extracted from the Ethereum blockchain beyond the block reward_
    
    \*
    
*   [Oracles](https://ethereum.org/en/developers/docs/oracles/) _– How information is injected into the Ethereum blockchain_
    
    \*
    
*   [Scaling](https://ethereum.org/en/developers/docs/scaling/) _– Methods for preserving decentralization and security as Ethereum grows_
    
    *   [Optimistic rollups](https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/)
        
    *   [Zero-knowledge rollups](https://ethereum.org/en/developers/docs/scaling/zk-rollups/)
        
    *   [State channels](https://ethereum.org/en/developers/docs/scaling/state-channels/)
        
    *   [Sidechains](https://ethereum.org/en/developers/docs/scaling/sidechains/)
        
    *   [Plasma](https://ethereum.org/en/developers/docs/scaling/plasma/)
        
    *   [Validium](https://ethereum.org/en/developers/docs/scaling/validium/)
        
*   [Data availability](https://ethereum.org/en/developers/docs/data-availability/) _– docs-nav-data-availability-description_
    
    \*
    
*   [Networking layer](https://ethereum.org/en/developers/docs/networking-layer/) _– Explanation of Ethereum's networking layer_
    
    *   [Network addresses](https://ethereum.org/en/developers/docs/networking-layer/network-addresses/)
        
    *   [Portal Network](https://ethereum.org/en/developers/docs/networking-layer/portal-network/)
        
*   [Data structures and encoding](https://ethereum.org/en/developers/docs/data-structures-and-encoding/) _– Explanation of the data structures and encoding schema used across the Ethereum stack_
    
    *   [Patricia Merkle Trie](https://ethereum.org/en/developers/docs/data-structures-and-encoding/patricia-merkle-trie/)
        
    *   [Recursive-length prefix (RLP)](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/)
        
    *   [Simple serialize (SSZ)](https://ethereum.org/en/developers/docs/data-structures-and-encoding/ssz/)
        
    *   [Web3 secret storage definition](https://ethereum.org/en/developers/docs/data-structures-and-encoding/web3-secret-storage/)
        

[https://copyright-authstamp.readonup.com/0xE35957F5080FE45706f38d59fFC12d7cf4EC4B79/6ce95fcb-351e-4caf-be89-a0f96b82df50](https://copyright-authstamp.readonup.com/0xE35957F5080FE45706f38d59fFC12d7cf4EC4B79/6ce95fcb-351e-4caf-be89-a0f96b82df50)

---

*Originally published on [cptest001](https://paragraph.com/@cptest001/ethereum-development-documentation)*
