banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.
follow
substack
tg_channel

Web3 Developer Tools

Nodes — such as Alchemy, help developers connect to blockchain networks.

On-chain data querying and indexing — such as The Graph, assist backend developers in querying and indexing data on the chain (this area is crucial as many Web3 projects have this need, such as community operations for NFT project teams, transaction tracking for DeFi protocols, etc.).

Oracles — for example, Chainlink, help smart contract developers call off-chain data.

Decentralized storage — such as IPFS / Arweave.

Based on the experience of being a Web3 developer, Mogu, the founder of Chainbase, has organized these areas into five levels to help developers better understand Web3 development tools. These five layers are: network layer, node layer (IaaS), middleware layer (PaaS), upstream layer (SaaS), and data analysis layer.

image

As middleware (PaaS) for interacting with the chain, Chainbase aims to lower the barrier for developers to enter Web3 by providing a complete set of tools that allow them to interact with blockchain networks in a more familiar way (such as using familiar languages, etc.).

Generally, Dapp developers need to complete the following steps to interact with the chain:

Set up nodes to connect to the blockchain network.

Decode (data cleaning), build a server to structure multi-chain data.

Develop API to query and index server data.

Frontend calls API to display the correct data.

Here we take Chainbase's three services (Chain API, Web3 API, deCrypto Data Cloud) as examples to list the challenges in this process and how different developer tools help solve these issues.

Image showing challenges in the interaction process with the chain and developer tools.

  1. Chain API Service (JSON RPC)

Key point: It is necessary to connect to the blockchain network through nodes. However, the cost of building nodes by project teams is very high (labor, servers, time, etc.), and this issue is particularly prominent in the early stages of a project.

For example, to connect to Ethereum, developers need to complete the following tasks:

Purchase cloud services (whether centralized clouds like AWS, Google Cloud, Azure, etc., or decentralized cloud computing services), install Geth nodes (pain point: high cost).

Sync data (pain point: operational and maintenance costs, time costs).

Use JSON RPC API (self-built or from third-party vendors) to connect to Ethereum.

image

If the project team completes this process themselves, the costs include:

Cloud services (depending on how much computing power is used) + operational and maintenance + additional costs.

Load balancing costs (for centralized cloud services) to avoid service failure risks.

Overall, it may cost $10,000 or more per month (even for small projects), plus additional time for maintenance — time that could have been used for product development. In contrast, using third-party vendors can save time and costs — potentially less than $100 per month. Therefore, most project teams will opt for the latter solution.

Similar vendors: Alchemy, Infura, QuickNode, Ankr, InfStones, etc.

These service providers mainly offer node services, while Chainbase focuses more on data querying/indexing (node services are just part of our package). Additionally, many service providers' pricing is not friendly to small teams and individual developers.

  1. Web3 API Service

Key point: After connecting to the blockchain network, query and index data. However, on-chain data is not "analyzable." Furthermore, developers need to handle different data structures for EVM (ETH, Layer2, etc.) and non-EVM (Solana, Flow, etc.).

Blockchain networks are essentially distributed ledgers that can be viewed as "databases" composed of "unstructured" data. For example: to query protocol-level data (ERC20, ERC721, ERC1155, ERC137, etc.) on EVM chains for common business scenarios (tokens, NFTs, ENS domains, etc.), developers need to decode and structure on-chain data first, and then query and index data through developed APIs. Additionally, they must do the same for multiple public chains and different protocols (note that decoding non-EVM data is more complex).

image

Similar vendors: Moralis, The Graph.

Moralis provides template APIs and lacks openness. Therefore, when the APIs they provide do not meet developers' needs, there is still no good solution. Chainbase allows for custom configurations, making it more flexible and open.

The Graph only provides data indexing for a few chains and is limited to dApp scenarios. However, the data generated by dApps only accounts for a small portion of the blockchain network. Additionally, its GRT is not cloud-based, so it cannot provide data cloud services to meet developers' long-tail needs.

  1. deCrypto Data Cloud

Key point: For some emerging projects (including mature projects), their innovative needs relate to longer-tail business scenarios, which makes it difficult for existing APIs to fully meet project teams' needs. Therefore, a platform that allows them to automatically customize APIs is needed.

Decoding and structuring Web3 data is challenging, and achieving real-time capabilities is even harder.

The basic challenges of establishing such a platform include:

Real-time capabilities.

Storage costs.

Response speed.

Technical difficulty.

Operational and maintenance costs.

Thus, for individual Web3 developers or development teams, building their own database is technically challenging and time-consuming.

Based on Web3 API, Chainbase provides services transparently to developers after multi-tenant isolation and security monitoring, allowing them to freely use SQL programming on the platform to generate custom APIs. You can think of it as an abstraction layer above the blockchain network, aggregating all data across multiple chains, enabling developers to easily and in real-time complete tasks such as querying and indexing on-chain data.

What developers can do with deCrypto Data Cloud:

Terminal functionality — SQL.

Query — data.

Create API — owner.

Backend coding — API and others.

Similar vendors: We currently do not see direct competitors in the market, but you can think of deCrypto Data Cloud as a more open and real-time version of Dune Analytics, aimed at developers.

image

What is the difference between deCrypto Data Cloud and Dune Analytics:

Chainbase adopts real-time computing and provides developers with real-time databases and response capabilities, while Dune Analytics offers offline analytical dashboards (data updated daily), and the focus of the two product types does not align with the actual scenarios they solve.

deCrypto Data Cloud primarily serves backend developers rather than data analysts. Backend engineers use the product to create APIs, query data, and return results to the frontend. (Background information: Backend focuses on

Development Kit#

image

When developers use our products to build dApps, they want to monitor the status of APIs, including but not limited to: debugging, SDKs, etc. As a developer-centric team, we provide users with a multi-in-one developer-friendly interface to manage related activities — this also complements the three services mentioned above.

Chainbase is a leading Web3 blockchain interaction layer infrastructure. By providing cloud-based API services, it helps developers quickly access and utilize blockchain networks, easily building Web3 applications.

Chainbase simplifies interaction with the chain and on-chain data querying/indexing. Anyone can use, build, and publish open APIs, allowing developers to focus on application-level innovation rather than dealing with backend troubles.

Chainbase currently supports Ethereum, Polygon, BSC, Fantom, Avalanche, Arbitrum, and other chains. Regardless of which chain the dApp is deployed on or the scale of the project, developers can significantly reduce development time and costs.

As analyzed in this article, Chainbase's competitive advantages lie in:

Providing real-time multi-chain data querying/indexing.

Supporting custom API generation through SQL.

An integrated developer-friendly interface.

Stable services and affordable pricing.

Timely and reliable technical support.

We expect to hire mid-level developers with 3-5 years of programming experience and over 1 year of experience in smart contract or blockchain-related development. I have placed the screenshot below and highlighted the key points.

image

From this blockchain, the following technical points can be seen:

  • Basic principles of blockchain.

  • Familiarity with Ethereum technology, in-depth understanding of EVM.

  • Solidity programming.

  • Smart contract design, development, testing, deployment, and maintenance.

  • Cross-chain transactions of smart contracts.

  • Truffle development framework.

  • Libraries such as web3js, ethers.js, OpenZeppelin, etc.

Even if you have never been involved in Web3 development, if you are a programmer with web development experience, the application development paradigm for dApps is basically consistent, and I believe you can summarize the following points from this JD:

  1. The basic principles of blockchain and Ethereum technology are foundational knowledge for Web3 development.

  2. Smart contracts are a crucial aspect of blockchain development.

  3. Solidity is an important language for writing smart contracts.

  4. Truffle is a mainstream blockchain development framework.

  5. Libraries such as web3js, ethers.js, OpenZeppelin are frequently used in blockchain development.

Indeed, these technical points are commonly used in our dApp development and smart contract writing. You may still be completely unfamiliar with the concepts and technologies within, but that's okay; you just need to have a general impression. We will mention these in the "Learning Path Guide" below.

Learning foundational knowledge can be particularly tedious, as blockchain is a comprehensive technology that encompasses fields such as cryptography and computer science. Delving deeply may cause learners to lose interest in studying. So, as a blockchain developer, to what extent do you need to learn? Personally, I believe that after learning the foundational knowledge, you should be able to answer the following questions:

  1. What exactly is blockchain? What characteristics does it have?

  2. How is blockchain technically implemented?

  3. What is the consensus mechanism of blockchain? What problems does the consensus mechanism solve? What are some common consensus mechanisms?

  4. How do the storage rules of blockchain differ from common databases?

  5. What are the principles and characteristics of PoW, PoS, and DPoS consensus mechanisms?

  6. Besides digital currencies, what are the common types of blockchain applications?

You can study with these questions in mind, along with the recommended materials above, for better results.

Learning foundational knowledge is bound to be dull for most people. While learning about blockchain, it is also worthwhile to understand what specific applications exist domestically and internationally. You may have heard of several applications, such as: MetaMask (the most well-known blockchain wallet), Stepn (a Dapp that allows you to buy running shoes and earn rewards by running), Axie Infinity (a Pokémon-themed blockchain game), NBA TopShot (officially verified NFTs by the NBA), OpenSea (the world's largest NFT marketplace), and so on.

Understanding these blockchain-based dApps can give us a more intuitive understanding of the application scenarios of blockchain. What could be more intuitive than directly using interactive applications? During your exploration, you will also discover the current prosperity of the blockchain ecosystem, where many dApps are no longer running solely on Ethereum, but also on numerous public chain ecosystems like BNB Chain, SOLONA, TRON, etc.

I recommend that every developer explore the Dapp ecosystem through dappradar.com. This website can be likened to the Apple Store in the Apple ecosystem; DappRadar is the Apple Store of the Web3 world. Moreover, the quality of the blog on this site is very high, featuring many excellent blog articles and professional blockchain research reports.

After understanding the foundational knowledge of blockchain, it is time to move on to technical learning. As mentioned earlier, for novice developers, the best way to learn blockchain is to start with Ethereum. Now let's take a look at the relevant technology stack for learning the Ethereum ecosystem.

NFTLaunchKit: With NFTLaunchKit, you can create smart contracts on the website's dashboard without any coding. At the same time, NFTLaunchKit also provides templates to create NFT Mint websites and manage everything from the dashboard.

Hardhat: Hardhat is an Ethereum development environment. Developers can compile contracts and run them on open networks, while also having access to Solidity stack traces, console, and other features.

Foundry: Foundry is a fast, portable, and modular toolkit for Ethereum application development written in Rust.

Brownie: Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.

dapp.tools: dapp.tools is a set of Ethereum-centric CLI tools that follow Unix design principles, promoting composability, configurability, and scalability.

Ganache: Helps quickly launch a personal Ethereum blockchain, which can be used to run tests, execute commands, and check status while controlling how the chain operates.

Waffle: An effective testing tool for smart contracts.

Frontend Tools#

wagmi: wagmi is a collection of React Hooks that includes everything needed to get started with Ethereum. wagmi makes it easy to connect wallets, display ENS and balance information, sign messages, interact with contracts, and more — all with caching, request deduplication, and persistence.

Solana-Web3.js: The Solana-Web3.js library is designed to provide complete coverage of Solana. This library is built on top of the Solana JSON RPC API.

Ethers.js: The Ethers.js library is designed to be a complete and compact library for interacting with the Ethereum blockchain and its ecosystem.

Web3.js: Web3.js is a collection of libraries that allows developers to interact with local or remote Ethereum nodes using HTTP, IPC, or WebSocket.

Web3Auth: Web3Auth is a simple non-custodial authentication infrastructure that enables Web3 wallets and applications to provide seamless user login for mainstream and native Web3 users.

Web3Modal: Web3Modal is an easy-to-use library that helps developers add support for multiple providers in their applications through simple customizable configurations.

NFTs2Me: NFTs2Me is similar to NFTLaunchKit in deployment tools, allowing the creation, minting, and selling of NFTs through a no-code platform. NFTLaunchKit is also a convenient frontend tool, which will not be elaborated here.

Storage Tools#

NFT.Storage: Free decentralized storage and bandwidth for NFTs on IPFS and Filecoin. NFT.Storage is a long-term storage service designed for off-chain NFT data (such as metadata, images, and other assets) with a maximum upload size of 31GiB per upload.

Web3.Storage: The simplest way to store data on a decentralized network. Use our simple API to store your data. It is fast, open, and free.

OrbitDB: OrbitDB is a serverless distributed peer-to-peer database. OrbitDB uses IPFS as its data storage and IPFS Pubsub to automatically synchronize the database with peers. It is an eventually consistent database that uses CRDT for conflict-free database merging, making OrbitDB an excellent choice for decentralization.

ThreadDB: ThreadDB is a multi-party database built on IPFS and Libp2p, providing an alternative architecture for data on the web.

Spheron: Decentralized network hosting that supports storage on Arweave, Skynet, IPFS, and Filecoin.

Security#

Mythril: A security analysis tool for EVM bytecode. It detects vulnerabilities in smart contracts built for Ethereum, Hedera, Quorum, Vechain, Roostock, Tron, and other EVM-compatible blockchains.

Slither: Slither is a Solidity static analysis framework written in Python 3. It runs a set of vulnerability detectors, prints visual information about contract details, and provides an API for easily writing custom analyses. Slither enables developers to discover vulnerabilities and enhance their code understanding.

MythX™: MythX™, from ConsenSys Software Inc™, is the leading security analysis service for Ethereum smart contracts. Our mission is to ensure development teams avoid costly mistakes and make Ethereum a safer and more trustworthy platform.

Manticore: A symbolic execution tool for analyzing smart contracts and binaries.

Securify 2.0: Securify 2.0 is a security scanner for Ethereum smart contracts supported by the Ethereum Foundation and ChainSecurity.

Monitoring Tools#

Blocktorch: Blocktorch is an observability platform for decentralized stacks. Get a clear view of the status of distributed components. Quickly browse logs with ample context. Set service level objectives to view anomalies and receive notifications.

Tenderly: A comprehensive Ethereum developer platform for real-time monitoring, alerts, debugging, and simulating smart contracts.

Browsers#

Block explorers provide an online interface for searching blockchains and allow developers and users to retrieve data about transactions, addresses, blocks, fees, etc. Each block explorer provides data about a specific blockchain, and the types of information included will vary based on the architecture of the blockchain it serves. For example, Etherscan is the block explorer and analytics platform for Ethereum, Solana Explorer allows developers to look up transactions and accounts on the Solana chain, and similar ones include Fantom Explorer, BscScan, etc. You can find the corresponding block explorer for the respective development network.

UpStreamApp: Participate in global online events focused on cryptocurrency and Web3, join DAOs, and meet new friends.

Crypto Nomads Club: Crypto Nomads Club is for digital nomads and frequent travelers who meet at various crypto events around the world.

Eventbrite: Eventbrite can match you with Web3 events, or you can create your own events.

TinTinLand: A Web3 developer community that, compared to the previous communities, provides not only events and social features but also Web3 technical resources and professional courses.

Web3 marketing tools can help developers better launch products during the marketing phase.

Mobula.fi: A decentralized data aggregator (token, NFT).

WaitlistPanda: The simplest way to collect potential customers and build an audience, allowing you to create "viral" waitlists, social referrals, etc.

Lemlist: Personalized emails, automated follow-ups, and interactions with potential customers across all channels. Lemlist combines your sales automation and email software into one.

Make: Create no-code automated marketing.

The Solidity programming language is the most fundamental part of any smart contract developer and is key to how to write smart contracts! We can choose one of the following languages and start development.

  • Solidity Smart Contract Language Summary: If you are a beginner in smart contracts, you should start with Solidity. If you have been working on smart contracts, you may already be familiar with Solidity. Undeniably, Solidity is the primary and most commonly used language for smart contract development. Solidity is suitable for most smart contract platforms, such as Ethereum, Avalanche, Moonbeam, Polygon, BSC, etc. This is because most blockchains adopt the Ethereum Virtual Machine (EVM), and Solidity was born for it. Among the top ten DeFi projects, nine use Solidity as their primary programming language. I predict that 90% of the value of smart contracts in the future will be completed using Solidity.

  • OpenZeppelin: OpenZeppelin has solidified its position as the "Solidity standard library." Whenever any developer (including myself) is looking for a quick way to deploy NFT/ERC721, ERC20, upgradeable contracts, DAO/governance, or any project that developers in this field want to undertake, nine times out of ten, you will want to look for an OpenZeppelin package. OpenZeppelin is a set of pre-written smart contracts, so you don't have to reinvent the wheel. I have saved countless hours by using their audited upgradeable smart contracts in my projects. I cannot emphasize enough how important OpenZeppelin is. I think I use OpenZeppelin in some form in about 80% of my tutorials.

Smart Contract Key Points Summary:
Must know: Chainlink and OpenZeppelin.
You can (and probably should) use both of these together. With my limited understanding of these technologies, it cannot be overstated.

  1. Essential Tools for Smart Contracts
    In this section, we discuss the tools used in smart contracts. You don't have to make a unique choice among these tools. If you wish, you can use all of these tools! I'm not sure how to categorize these, but I think "essentials" is an appropriate description because... well, they are essential.
    Chainlink
    Chainlink is a blockchain oracle that makes smart contracts hybrid smart contracts, incorporating some off-chain components and connecting to the real world. Smart contracts are great, but they have a huge problem: they are not connected to the outside world in any way. To keep smart contracts decentralized while using some off-chain components (like data or off-chain computation), off-chain data and computation must be decentralized, which is precisely the role of the Chainlink network and tools. The vast majority of top smart contract platforms are hybrid smart contracts and consider oracles a key component of their infrastructure. Just look at the top 10 projects on DeFi Pulse to see which ones are hybrid.

image

Asterik's explanation*: Uniswap has an oracle product. Yearn and Instadapp are aggregators that collaborate with protocols using oracles/are hybrid. Sushiswap uses oracles for leveraged trading. It can be seen that at least 50% of projects consider oracles an important part of their infrastructure, and another 30% (totaling 80%) use oracles in some way. Oracles can provide asset pricing information, randomness, event-driven automated execution, and more.

For any smart contract developer entering this field, Chainlink is an essential feature, regardless of language or blockchain. In 2020 and 2021, we witnessed countless flash loan attacks, oracle manipulation attacks, and other hacking incidents that caused nearly billions of dollars in losses in the DeFi space. Most heartbreakingly, over half of these could have been prevented by using reliable oracles like Chainlink. Please do not let you or your friends use centralized or insecure oracles in 2022. Please use secure oracle solutions like Chainlink. We cannot allow the scenario of "Oops, using a centralized oracle cost my users $100 million" to continue in 2022. Therefore, please familiarize yourself with Chainlink, build robust applications, and protect yourself from oracle attacks.

OpenZeppelin
OpenZeppelin has solidified its position as the "Solidity standard library." Anytime any developer (including myself) is looking for a quick way to deploy NFT/ERC721, ERC20, upgradeable contracts, DAO/governance, or any project that developers in this field want to undertake, nine times out of ten, you will want to look for an OpenZeppelin package. OpenZeppelin is a set of pre-written smart contracts, so you don't have to reinvent the wheel. I have saved countless hours by using their audited upgradeable smart contracts in my projects. I cannot emphasize enough how important OpenZeppelin is. I think I use OpenZeppelin in some form in about 80% of my tutorials.

Smart Contract Key Points Summary:
Must know: Chainlink and OpenZeppelin.
You can (and probably should) use both of these together. With my limited understanding of these technologies, it cannot be overstated.

  1. Deployment and Testing Frameworks
    Last year, my retrospective article was specifically focused on this category, so this year, I must tell you about the differences in the status of these frameworks today. Smart contract frameworks are an important part of any developer's work. They help you efficiently test and deploy smart contracts. Mastering at least one of them is a key step to success. To get a more intuitive understanding, take a look at the chart I compiled based on DeFi Pulse, showing some of the top DeFi projects and the development frameworks they use.

DEFI Smart Contract PULSE Name Locked (USD) Development Framework

image

Star players: Hardhat, Brownie, DappTools

Excellent players: Remix, Truffle, Apeworx, Foundry

Substitute players: Waffle, sbt-ethereum, web3j, Embark, Saddle

Remember, these tools do not always catch every error; always rely on your own abilities!

Slither
Slither is becoming one of the preferred tools for static analysis. Slither, developed by the Trail of Bits team (one of my favorite auditing firms in this field), is easy to use and can catch many simple mistakes that engineers might make. I strongly recommend trying this open-source error catcher!

MythX
MythX is another tool from ConsenSys, a cloud-based testing tool for bugs that reportedly allows for deeper digging. Many users like Aave and I appreciate its depth. It does have a paid threshold for users, but if you have the budget, it is worth it.

Mythril
Mythril is an open-source subset of the analysis tool for the MythX product. This is not a tool I have deeply researched, but it seems to provide some promising simple results.

Manticore
Manticore is another tool from Trail of Bits, but it does not perform static analysis; instead, it does symbolic execution to find out what triggers your smart contract to work. If you have already worked with Slither, you might as well give this a try!

Echidna
Next, Trail of Bits (you know why they are one of my favorites) has launched Echidna. This is a fuzzer for EVM contracts, and if you are using other tools from Trail of Bits, you might want to give this a try as well.

Securify
Securify is an incredible open-source tool that looks for specific vulnerabilities. This is another tool you can try.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.