# Development frameworks

## Introduction to Frameworks <a href="#introduction-to-frameworks" id="introduction-to-frameworks"></a>

Building a full-fledged dapp requires different pieces of technology. Software frameworks include many of the needed features or provide easy plugin systems to pick the tools you desire.

Frameworks come with a lot of out-of-the-box functionality, like:

* Features to spin up a local blockchain instance.
* Utilities to compile and test your smart contracts.
* Client development add-ons to build your user-facing application within the same project/repository.
* Configuration to connect to Electroneum Smart Chain networks and deploy contracts, whether to a locally running instance, or one of Electroneum's public networks.
* Decentralized app distribution - integrations with storage options like IPFS.

## Prerequisites <a href="#prerequisites" id="prerequisites"></a>

Before diving into frameworks, we recommend you first read through our introduction to [dapps](https://developer.electroneum.com/foundational-topics/intro-to-dapps) and the [Electroneum Smart Chain stack](https://developer.electroneum.com/electroneum-stack).

## Available frameworks <a href="#available-frameworks" id="available-frameworks"></a>

**Truffle -** ***A development environment, testing framework, build pipeline, and other tools.***

* [trufflesuite.com↗](https://www.trufflesuite.com/)
* [GitHub↗](https://github.com/trufflesuite/truffle)

**Hardhat -** ***Ethereum development environment for professionals.***

* [hardhat.org↗](https://hardhat.org/)
* [GitHub↗](https://github.com/nomiclabs/hardhat)

**Ape -** ***The smart contract development tool for Pythonistas, Data Scientists, and Security Professionals.***

* [Documentation↗](https://docs.apeworx.io/ape/stable/)
* [GitHub↗](https://github.com/ApeWorX/ape)

**Brownie -** ***Python-based development environment and testing framework.***

* [Documentation↗](https://eth-brownie.readthedocs.io/en/latest/)
* [GitHub↗](https://github.com/eth-brownie/brownie)

**Web3j -** ***A platform for developing blockchain applications on the JVM.***

* [Homepage↗](https://www.web3labs.com/web3j-sdk)
* [Documentation↗](https://docs.web3j.io/)
* [GitHub↗](https://github.com/web3j/web3j)

**OpenZeppelin SDK -** ***The Ultimate Smart Contract Toolkit: A suite of tools to help you develop, compile, upgrade, deploy and interact with smart contracts.***

* [OpenZeppelin SDK↗](https://openzeppelin.com/sdk/)
* [GitHub↗](https://github.com/OpenZeppelin/openzeppelin-sdk)
* [Community Forum↗](https://forum.openzeppelin.com/c/support/17)

**Create Eth App -** ***Create Ethereum-powered apps with one command. Comes with a wide offering of UI frameworks and DeFi templates to choose from.***

* [GitHub↗](https://github.com/paulrberg/create-eth-app)
* [Templates↗](https://github.com/PaulRBerg/create-eth-app/tree/develop/templates)

**Scaffold-Eth -** ***Ethers.js + Hardhat + React components and hooks for web3: everything you need to get started building decentralized applications powered by smart contracts.***

* [GitHub↗](https://github.com/austintgriffith/scaffold-eth)

**Tenderly -** ***Web3 development platform that enables blockchain developers to build, test, debug, monitor, and operate smart contracts and improve dapp UX.***

* [Website↗](https://tenderly.co/)
* [Documentation↗](https://docs.tenderly.co/ethereum-development-practices)

**The Graph -** ***The Graph for querying blockchain data efficiently.***

* [Website↗](https://thegraph.com/)
* [Tutorial](https://ethereum.org/en/developers/tutorials/the-graph-fixing-web3-data-querying/)

**Alchemy -** ***Ethereum Development Platform.***

* [alchemy.com↗](https://www.alchemy.com/)
* [GitHub↗](https://github.com/alchemyplatform)
* [Discord↗](https://discord.com/invite/A39JVCM)

**Foundry -** ***A blazing fast, portable and modular toolkit for Ethereum application development written in Rust.***

* [Documentation↗](https://book.getfoundry.sh/)
* [GitHub↗](https://github.com/gakonst/foundry/)
* [Tools for Foundry↗](https://github.com/crisgarner/awesome-foundry)

**NodeReal -** ***Ethereum Development Platform.***

* [Nodereal.io↗](https://nodereal.io/)
* [GitHub↗](https://github.com/node-real)
* [Discord↗](https://discord.gg/V5k5gsuE)

**thirdweb SDK -** ***Build web3 applications that can interact with your smart contracts using our powerful SDKs and CLI.***

* [Documentation↗](https://portal.thirdweb.com/sdk/)
* [GitHub↗](https://github.com/thirdweb-dev/)

**Chainstack -** ***Web3 (Ethereum and otherwise) Development Platform.***

* [chainstack.com↗](https://www.chainstack.com/)
* [GitHub↗](https://github.com/chainstack)
* [Discord↗](https://discord.gg/BSb5zfp9AT)

### Related topics <a href="#related-topics" id="related-topics"></a>

* [Set up a local development environment](https://developer.electroneum.com/etn-sc-client/getting-started/instaling-etn-sc)


---

# 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://developer.electroneum.com/electroneum-stack/development-frameworks.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.
