The Developer's Guide to the Web3 Stack
Everything you need to know about building the ultimate web3 stack, with examples of tools for every layer. Learn more.
The web3 ecosystem is growing rapidly — from solo developers and bootstrapped projects to tech giants.
No matter what category you belong to and at what development stage your web3 project is in, you’ll need a solid set of web3 development tools.
The right knowledge of the web3 development stack and access to it will cut short your development time and ensure that the solution you develop is reliable and robust.
But what exactly is a web3 stack and how do you use it?
In this article, we will explore what a web3 stack is and break down the different layers of the web3 development stack, the tools used in each stage, and the tools you should use to build successful web3 solutions.
What is a web3 stack?
A web3 stack is the collection of technologies, tools, and protocols that developers need to build, operate, and maintain apps — such as marketplaces, NFTs, and loyalty programs — on decentralized (& primarily blockchain) networks.
This development stack encompasses layers for blockchain interaction, smart contract development, decentralized storage, and user interfaces, creating a holistic setup for building decentralized applications.
Let’s now look at the different layers of the web3 tech stack.
Network layer
The network layer encompasses all the blockchains. It forms the base of the web3 development stack on top of which developers can build their applications.
Blockchains are in web3 what servers and databases are to web2 apps — they store a dapps business logic and an updated state.
However, the major difference is that, unlike their web2 counterparts, they’re maintained and run by nodes distributed all over the world, and not controlled by a single entity.
Developers have two options when it comes to blockchain networks: Ethereum Virtual Machine (EVM)-compatible blockchains and non-EVM-compatible blockchains.
EVM-compatible blockchains
Ethereum was the first-ever blockchain that enabled developers to build smart contracts and decentralized applications. The network runs on a distributed runtime environment dubbed the Ethereum virtual machine.
Any blockchain that has adopted this runtime environment is called an EVM-compatible blockchain.
It has the same software layer as Ethereum i.e. Solidity and can run smart contracts designed for it. But its consensus mechanism, transaction speed, etc. might be different.
Given Ethereum was the first smart contract chain, the EVM ecosystem has the largest number of users and developers, making it one of the go-to dapp ecosystems for developers.
Some of the most well-known EVM-compatible layer-1 chains (apart from Ethereum) include:
Non-EVM-compatible blockchains
Non-EVM compatible blockchains are blockchains whose ecosystem isn’t inherently compatible with the EVM ecosystem.
Each non-EVM blockchain will have its own unique runtime environment for executing and managing smart contracts. And its smart contracts are written in different languages like RUST and C++ instead of Solidity.
Listed below are the most common examples of non-EVM compatible blockchains:
Layer-2 blockchains
Layer-2 solutions or L2s are separate blockchains built on top of layer-1 network to improve scalability or offer a new feature or functionality.
They bundle multiple transactions, execute them off-chain, and submit the transaction data to the underlying blockchain. This way, they also inherit the blockchain’s security.
Which blockchain layer should developers use?
Most developers choose EVM-compatible chains due to their extensive toolsets, robust libraries, and expansive communities.
Another advantage of choosing EVM chains is that it enables them to launch the same application on different protocols without much effort, increasing their potential user base.
But if developers want specific functionalities that EVM chains don’t offer, they can choose non-EVM chains.
For example, game developers often choose the WAX blockchain because it’s specifically designed to trade in-game assets and handle a large number of transactions per second.
Blockchain interaction layer
This layer facilitates the interaction between decentralization applications (dApps) and the underlying blockchain. It assists the deployment, execution, and management of smart contracts. This helps dApps communicate with the business logic present on the blockchain.
The functions of this layer include querying the blockchain's state and sending transactions securely. It abstracts the complex blockchain operations, simplifying the development process and enhancing user experience within decentralized ecosystems.
Nodes
Nodes are fundamental components of a blockchain network, responsible for validating and relaying transactions. Each node maintains a complete copy of the distributed ledger, ensuring data integrity and redundancy. The greater the number of nodes in a network, the more decentralized and secure the network is.
Now, developers building a dApp on a blockchain have a key choice: they can either set up their own node or use services from a node provider.
Simply put, self-running a node offers more control and autonomy but comes with increased responsibilities in terms of maintenance and costs. Instead, using a node service provider simplifies the process, but you trade off some control and rely on the provider's infrastructure and security.
Most developers use third-party node service providers like:
- Infura: Infura specializes in providing developers with API access to the Ethereum network without the need to run a full node. Their infrastructure is known for its high uptime, and they offer features like WebSocket support, which is crucial for real-time updates in dApps.
- Alchemy: Alchemy offers a suite of tools that simplify the complexities of node management and provide real-time notifications. They provide a series of APIs and SDKs for developers to build and scale their dApps without having to build from scratch.
- QuickNode: QuickNode is a web3 infrastructure provider that offers an extended set of APIs for developers. It also supports more than 20 networks including many testnets.
Blockchain explorers
Blockchain explorers are tools that allow users to browse and search for specific information on a blockchain, such as transaction histories, account balances, and block details.
They interact with blockchain nodes, pull data, and present it in a structured and user-friendly manner. The interaction typically involves APIs that facilitate the retrieval of information.
- Blockchair: Blockchair is a blockchain explorer that supports multiple cryptocurrencies. It provides an interface to explore transactions, blocks, and addresses. Additionally, it offers advanced analytical tools and allows cross-blockchain searches, making it useful for analyzing blockchain data..
- Blockscout: Blockscout is a multi-chain block explorer tool designed for examining transactions on EVM-based blockchains. Users can easily search for transactions and tags. Likewise, developers can engage with contracts, verify contracts, and utilize Blockscout to make API calls.
- Etherscan: Etherscan is a popular blockchain explorer for the Ethereum network. Apart from transaction data and gas prices, Etherscan also provides insights into smart contract codes, token information, and more. It's a comprehensive tool primarily for Ethereum-based queries.
Presentation layer
The presentation layer in the blockchain context serves as the bridge between users and the underlying technology, primarily focusing on UI and UX. It abstracts the complexities of blockchain interactions, providing a user-friendly interface.
In other words, it consists of all the components that make up the dApp’s frontend.
Native libraries
Native libraries play an essential role in connecting dApps to blockchain networks. They provide a set of tools and functions that enable developers to retrieve blockchain data, such as account balances and transaction histories.
Which native library should you use?
- Web3.js is the Ethereum JavaScript API that serves as the primary library for interacting with Ethereum nodes. It facilitates tasks such as sending transactions, querying balances, and deploying smart contracts on the Ethereum network.
- Ethers.js is a lightweight and optimized Ethereum library. It offers a range of features, from wallet encryption and decryption to contract abstraction and event filtering to streamline interactions with Ethereum.
- Web3.py is the Ethereum library for Python. It encompasses functionalities like contract deployment, transaction signing, and event logging, allowing Python-based dApps to interact seamlessly with Ethereum.
Another alternative developers frequently use apart from these libraries is Thirdweb’s SDKs. These SDKs automatically detect and interact with common smart contract standards. This minimizes manual intervention and enhances the development experience.
Frontend libraries
Frontend libraries help developers build the dApp’s user interface and flow so users can have a smooth and intuitive experience when using it.
Which library should you use?
- React.js: React integrates seamlessly with web3 libraries and its component-based architecture allows for modular and reusable UI elements, making it efficient for building dynamic dApp interfaces.
- Angular: Backed by Google, Angular is a comprehensive framework for building web applications. It offers two-way data binding, dependency injection, and a modular architecture, making it suitable for larger applications.
Developers can extend the functionality of traditional React with Thirdweb’s SDK. It provides over 100 React hooks and UI components, enabling developers to build web3 apps compatible with any EVM-based blockchain.
Development environments
Development environments in Web3 refer to integrated platforms, tools, and frameworks designed specifically for building, testing, and deploying dApps and smart contracts on blockchain networks. They cater to the unique requirements of blockchain development, streamlining the process for developers.
Key aspects of Web3 development environments include:
- Smart contract compilation: Converts human-readable contract code into bytecode that can be deployed on the blockchain.
- Testing frameworks: Allows developers to test their smart contracts in a simulated blockchain environment, ensuring they function as expected before deployment.
- Deployment tools: Assists in the migration of smart contracts onto live blockchain networks.
- Network management: Handles connections to various blockchain networks, be it local testnets, public testnets, or mainnets.
Which development environment should you use?
- thirdweb: thirdweb offers a set of pre-built base contracts. Also, thirdweb enables developers to amplify their existing contracts using 'extensions', optimizing both development time and on-chain gas fees.
- Truffle: Truffle streamlines the Ethereum dApp development process by offering a unified environment. Its built-in tools for smart contract compilation, linking, and deployment simplify the lifecycle of dApp creation.
- Hardhat: Hardhat offers developers enhanced visibility and debugging capabilities. Its emphasis on clear stack traces and interactive consoles ensures that developers can easily trace errors and understand the behavior of their smart contracts.
Decentralized storage solutions
dApps require a means to securely store data such as user profiles, multimedia content, and transaction logs. Unlike traditional apps that rely on centralized databases, dApps turn to decentralized storage solutions.
These systems distribute data across various nodes, eliminating central points of failure and ensuring enhanced data integrity and availability.
Which decentralized storage solution should you use?
- thirdweb: thirdweb allows developers to pin data to the IPFS so files can remain accessible regardless of the original uploader’s node status. It also provides a public, unrestricted IPFS gateway, which allows developers to access any file on IPFS without rate limits or restrictions.
- IPFS: IPFS is a peer-to-peer protocol that’s designed to store and retrieve data in a distributed and decentralized manner. The only disadvantage of storing data on IPFS is that it’s not guaranteed to stay available and is only stored in the node that added it.
- Arweave: Arweave is a fully decentralized storage solution with a promise of "permanent" data storage. By integrating economic incentives for data storage, Arweave aims to ensure that once data is stored on its network, it remains available indefinitely.
Application layer
The application layer serves as the gateway for users to enter the web3 environment and actively engage with it. This consists of
DAO Frameworks
DAOs are organizational structures that run through rules encoded as computer programs. They provide tools for collaborative decision-making and resource allocation without the need for centralized control.
Here are some DAO frameworks developers can use:
- Aragon: Aragon helps developers set up DAOs, customize governance structures, and ensure secure and transparent operations without coding.
- Moloch DAO: MolochDAO is a minimalistic DAO framework designed specifically for funding grants and investments in the Ethereum ecosystem.
- Juicebox: Juicebox is a multipurpose DAO-tooling platform used to create DAOs that are focused on crowdfunding projects on Ethereum.
Identity and Authentication Tools
Software solutions and protocols designed to establish, verify, and manage user identities within decentralized systems. Here are some tools that allow developers to integrate user-centric identity management:
- Veramo: Veramo is a JavaScript framework designed for verifiable data and self-sovereign identity (SSI). It provides developers with APIs to create and manage decentralized identifiers and verifiable credentials and ensures interoperability without vendor lock-in.
- Civic: Civic provides Identity and Access Management (IAM) solutions for various sectors like enterprise, gambling, DeFi, gaming, NFTs
- Fractal: Fractal ID enables developers to ensure compliance and uniqueness for dApps across various use cases.
Build dApps easily with Thirdweb
Navigating the world of web3 application development can be complex. However the right tools and understanding will make the process simpler for you.
On that note, we hope this blog has helped you better understand what the web3 development stack comprises and which of the mentioned tools, protocols, and platforms you’d prefer to use.
If you have any questions, join 40,000+ other builders in our Discord community or reach out to the team directly for more info on how to get started with DAOs.
And if you want to start building web3 apps on Ethereum, get started with thirdweb’s web3 tools and SDKs - they’re free!