# Web3 libraries and tools

> The original version of this document is [Arbitrum Docs](https://docs.arbitrum.io/build-decentralized-apps/reference/web3-libraries-tools).

The following frameworks will help you build your decentralized apps:

<table><thead><tr><th width="89.7421875">Name</th><th width="104.31640625">Language</th><th width="411.2578125">Description</th><th>Documentation</th></tr></thead><tbody><tr><td>Ethers.js</td><td>TypeScript</td><td>Ethers.js is a lightweight library for Ethereum and EVM-compatible blockchains. It offers secure key management, node compatibility, ENS integration and supports JSON wallets, mnemonic phrases, and HD wallets. The library is TypeScript-ready and well-documented under the MIT License.</td><td><a href="https://docs.ethers.org/">Ethers.js Documentation</a></td></tr><tr><td>alloy</td><td>Rust</td><td>Alloy is a collection of utilities and crates for Ethereum development in Rust. It helps create and manage Rust prototypes that support Ethereum-like smart contract execution. Alloy focuses on interoperability and cross-chain communication..</td><td><a href="https://alloy.rs/">alloy Documentation</a></td></tr><tr><td>thirdweb SDK</td><td>TypeScript</td><td>thirdweb SDK offers a comprehensive suite for Web3 development on EVM-compatible blockchains. It includes wallet connectivity, blockchain interaction, decentralized storage, and authentication. Gasless transactions, wallet components, FIAT on-ramps, and data APIs are key features.</td><td><a href="https://portal.thirdweb.com/sdk">thirdweb SDK Portal</a></td></tr><tr><td>Viem</td><td>TypeScript</td><td>Viem is a modular tool for Ethereum and EVM-compatible blockchain development. It provides performance-optimized APIs, JSON-RPC API abstractions, and smart contract interaction tools, and it supports environments like Anvil, Hardhat, and Ganache.</td><td><a href="https://viem.sh/">Viem</a></td></tr><tr><td>Web3.js</td><td>JavaScript</td><td>Web3.js is a JavaScript library for Ethereum and EVM-compatible node interaction. It enables transactions via HTTP, IPC, or WebSocket. Compatible with web browsers, Node.js, and Electron, it's commonly used with MetaMask.</td><td><a href="https://github.com/web3/web3.js/">Web3.js GitHub</a></td></tr><tr><td>Web3.py</td><td>Python</td><td>Web3.py is a Python library for interacting with Ethereum and EVM-compatible blockchains. It facilitates transactions, smart contract operations, and blockchain data access. Tailored for Python developers, it's a versatile tool for Ethereum-based applications.</td><td><a href="https://github.com/ethereum/web3.py/">Web3.py GitHub</a></td></tr></tbody></table>


---

# 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://docs.hpp.io/building-on-hpp/web3-libraries-and-tools.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.
