
If you want to build a block explorer โ or implement similar functionality into your decentralized applications (dapps) โ youโll likely want to leverage a comprehensive block explorer API. And, if this is the case for you, youโve come to the right place!
In todayโs article, weโll introduce you to Moralisโ industry-leading Web3 API suite โ the ultimate tool for building block explorers. With our premier interfaces, you can effortlessly get block data, token prices, wallet balances, and much more. If youโre eager to get going, here are three prominent Moralis API endpoints that can come in handy when building a block explorer:
getBlock()
โ Query the contents of a block by its block number or hash:
const response = await Moralis.EvmApi.block.getBlock({ "chain": "0x1", "blockNumberOrHash": "18541416" });
getWalletTransactions()
โ Fetch all transactions of any address:
const response = await Moralis.EvmApi.transaction.getWalletTransactions({ "chain": "0x1", "address": "0x1f9090aaE28b8a3dCeaDf281B0F12828e676c326" });
getWalletTokenBalances()
โ Get the token balances of any wallet:
const response = await Moralis.EvmApi.token.getWalletTokenBalances({ "chain": "0x1", "address": "0x1f9090aaE28b8a3dCeaDf281B0F12828e676c326" });
For a more detailed breakdown of the endpoints above and a tutorial on how to call them, join us in this article as we explore the intricacies of Moralisโ Web3 APIs. Furthermore, if you prefer watching videos to learn, check out the clip below, where we cover some prominent endpoints needed to build your own block explorer:
Also, if you want to use our tools and APIs to save valuable development time and resources, donโt forget to sign up with Moralis. You can create your account free of charge, and youโll be able to leverage blockchain technologyโs full power immediately!
Overview
Weโll kickstart todayโs article by diving into the ins and outs of block explorers. From there, weโll cover the intricacies of block explorer APIs and explain why you might need one when building dapps. Next, weโll introduce you to the industryโs premier API provider: Moralis. Additionally, weโll cover some prominent endpoints that youโll need when building block explorers or implementing similar functionality into your projects. Lastly, to top things off, weโre going to give you a block explorer API tutorial where we show you how to get the token balances of any wallet in three steps:
- Set up Moralis
- Write a Script Calling the
getWalletTokenBalances()
Endpoint - Run the Code
If this sounds intriguing, join us below as we kick things off by looking at what a block explorer is!
What is a Block Explorer?
Block explorers โ also commonly referred to as blockchain explorers โ are software applications that allow you to extract, visualize, and review blockchain data. This includes essential information about blocks, smart contracts, events, transactions, wallet balances, and much more!
Most blockchain networks have their own distinct block explorers. For example, some prominent examples include Ethereumโs Etherscan, Polygonโs PolygonScan, and BNB Smart Chainโs (BSC) BscScan.
So, what exactly does a block explorer do? To answer this question, letโs look at some key features of block explorers. And letโs use Etherscan as an example:
- View Block Data: With Etherscan, you can seamlessly check the contents of any block on Ethereum. This includes information such as timestamps, transactions, gas used, gas limit, and much more:

- Explore Token Data: Explore any token address to get data such as the total supply, number of holders, transfers, prices, market caps, and information about underlying smart contracts:

- Check Wallet Addresses: Check any wallet address and get information like native balances, token balances, transactions, internal transactions, transfer histories, NFT transfers, and much more:

To be able to effortlessly fetch and display the information above, including block data, token prices, wallet transfers, etc., directly from the blockchain, software applications like Etherscan leverage block explorer APIs!
But what is a block explorer API? Also, why should you use one?
What is a Block Explorer API?
A block explorer API (application programming interface) is a set of rules, protocols, and methods that allow you to seamlessly interact with a blockchain to integrate block explorer functionality and data into your projects. Consequently, a block explorer API essentially provides a structured way to access data about blocks, transactions, wallets, crypto addresses, and much more!

But why do you need a block explorer API?
Querying data directly from a blockchain network is a tedious and time-consuming task. And from a conventional perspective, it required developers to, for instance, run a full node themselves and build their own infrastructure for data retrieval.
Fortunately, this is no longer the case with sophisticated tools like block explorer APIs, as they abstract away a lot of complexity associated with blockchain technology, giving you a standardized way to communicate with the various networks.
All in all, a block explorer API makes the process of querying data from a blockchain much easier. And with interfaces like these, you can leverage premade methods and protocols, meaning you donโt have to reinvent the wheel. As a result, block explorer APIs allow you to save both a lot of development time and resources, underscoring the crucial role these interfaces have within the blockchain space!
So, which is the best block explorer API provider?
Introducing Moralis: The Ultimate Block Explorer API Provider
Moralis is an industry-leading API provider, and our suite of premier interfaces makes Web3 development as seamless as Web2. Consequently, when working with Moralis, it has never been easier to build everything from NFT marketplaces to your own block explorer!
Furthermore, in our suite of Web3 APIs, youโll find everything that a block explorer API has to offer and more. As such, when working with Moralis, you can effortlessly fetch block data, transactions, balances, token prices, NFTs, etc., with only single lines of code.

But why should you be using our Web3 APIs?
To answer the question above, letโs look at three prominent benefits of Moralis:
- Scalability: Our Web3 APIs are built to scale. Consequently, you donโt have to worry when your projects grow and see increased adoption, as Moralis will have no trouble handling the traffic.
- High Performance: Our APIs are the industryโs premier interfaces. Choose any metric โ whether you want to measure by reliability, data coverage, speed, or anything else โ our Web3 APIs outperform the competition every day of the week.

- Cross-Chain Compatability: With our Web3 APIs, you can seamlessly build across the most popular blockchain networks, including Ethereum, BNB Smart Chain, Polygon, Avalanche, Gnosis, Chiliz, and many others. As such, it has never been easier to build cross-chain compatible dapps!
So, what tools can you find in Moralisโ Web3 API suite?
Well, hereโs a list of some of our most prominent interfaces:
If you want to explore them all, check out our Web3 API page!
How to Build a Block Explorer with Moralisโ API Suite
Now, with an overview of Moralisโ Web3 API suite, you might be wondering how you can leverage our tools to build a block explorer yourself. However, since block explorers are quite extensive pieces of software, we wonโt be able to cover all functionality in this tutorial. Instead, weโll focus on a few examples and dive into the essential endpoints needed to:
- Get Block Data with the Blockchain API
- Fetch Token Prices with the Token API
- Query Token Balances with the Wallet API
So, without further ado, letโs kick things off by showing you how to get block data using Moralisโ Blockchain API!
Get Block Data with the Blockchain API
The first central feature of any block explorer that we covered in the โWhat is a Block Explorer?โ section was the ability to view block data, including timestamps, transactions, gas limits, etc:

The easiest way to get this information is to leverage Moralisโ Blockchain API and the getBlock()
endpoint. All you have to do is call this endpoint with two parameters: chain
and blockNumberOrHash
:
const response = await Moralis.EvmApi.block.getBlock({ "chain": "0x1", "blockNumberOrHash": "18541416" });
Calling the endpoint above returns the contents of the block in question, including a timestamp, hash, transactions, gas used, gas limit, and much more. This is what it might look like:
{ "timestamp": "2023-11-10T12:02:11.000Z", "number": "18541416", "hash": "0xe9de65582d5a210f3f5703e0d7dc1daf9fbb5a0670937f5d92283a41ea1bcb2b", "parent_hash": "0xb63af7df0e2639cc25c323f22359b784408a117b534dea09cfec14263ea8d4fb", "nonce": "0x0000000000000000", "sha3_uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "logs_bloom": "0x00200//...", "transactions_root": "0x0b6895fbd7fdf9b8e0239e5be21a195c89ffae093c1c2bcdea9ad498d720003b", "state_root": "0x787cc0fff225d2b6d8acef1cea33522293d134297c1f4b22819a90f157db183d", "receipts_root": "0x6d7caa30f12937a232dcedda5f8bc2c973ba917a67062cedeb4ccb52c729058c", "miner": "0x95222290DD7278Aa3Ddd389Cc1E1d165CC4BAfe5", "difficulty": "0", "total_difficulty": "58750003716598352816469", "size": "7792", "extra_data": "0x6265617665726275696c642e6f7267", "gas_limit": "30000000", "gas_used": "1372772", //... }
If you want to know more about how this works, check out our Blockchain API tutorial!
Fetch Token Prices with the Token API
Another important feature of most block explorers is the ability to explore token data, including transfers, holders, etc. And in this section, weโll show you how to get the price of any token:

The most straightforward way to get this data is to leverage Moralisโ Token API. With only a single call to the getTokenPrice()
endpoint, you can seamlessly get the price of any token, and all you have to do is specify two parameters: chain
and address
:
const response = await Moralis.EvmApi.token.getTokenPrice({ "chain": "0x1", "address": "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0" });
In return for calling the getTokenPrice()
endpoint, you get the tokenโs price denominated in the chainโs native currency and USD. Hereโs an example of what it might look like:
{ "tokenName": "Matic Token", "tokenSymbol": "MATIC", "tokenLogo": "https://cdn.moralis.io/eth/0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0.png", "tokenDecimals": "18", "nativePrice": { "value": "423085770833740", "decimals": 18, "name": "Ether", "symbol": "ETH", "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" }, "usdPrice": 0.8771902804648514, "usdPriceFormatted": "0.877190280464851369", "exchangeName": "Uniswap v3", "exchangeAddress": "0x1F98431c8aD98523631AE4a59f267346ea31F984", "tokenAddress": "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0" }
Query Token Balances with the Wallet API
Lastly, a final core feature of most block explorers is the functionality to check data associated with a wallet address, including transfers, balances, etc. And in this section, weโll show you how to fetch all token holdings of a wallet:

The easiest way to get this information is to leverage Moralisโ Wallet API. All you need is a single call to the getWalletTokenBalances()
endpoint while passing along two parameters: chain
and address
:
const response = await Moralis.EvmApi.token.getWalletTokenBalances({ "chain": "0x1", "address": "0x1f9090aaE28b8a3dCeaDf281B0F12828e676c326" });
In return for calling the endpoint above, you get a list of all tokens held by the wallet in question. It will look something like this:
[ { "token_address": "0x3c978fc9a42c80a127863d786d8883614b01b3cd", "symbol": "USDT", "name": "USDTOKEN", "logo": null, "thumbnail": null, "decimals": 18, "balance": "10000000000000000000000", "possible_spam": true }, { "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7", "symbol": "USDT", "name": "Tether USD", "logo": "https://cdn.moralis.io/eth/0xdac17f958d2ee523a2206206994597c13d831ec7.png", "thumbnail": "https://cdn.moralis.io/eth/0xdac17f958d2ee523a2206206994597c13d831ec7_thumb.png", "decimals": 6, "balance": "209355461", "possible_spam": false }, //... ]
If you want to explore all other endpoints, check out our official Web3 API documentation page!
Whatโs more, if youโre looking for a tutorial on how you can integrate this data into your dapps, check out the Moralis YouTube video below. This clip provides a comprehensive breakdown of how you can build an Etherscan clone in less than twelve minutes:
Block Explorer API Tutorial: How to Get the Token Balances of a Wallet in 3 Steps
In this part of the article, weโll present a complete tutorial on how you can call the various endpoints of Moralis. To highlight the accessibility of our premier interfaces, weโll use the getWalletTokenBalances()
endpoint as an example and show you how to get the token balances of a wallet in three steps:
- Set up Moralis
- Write a Script Calling the
getWalletTokenBalances()
Endpoint - Run the Code
However, you must deal with a few prerequisites before we can continue!
Prerequisites
This will be a JavaScript tutorial. As such, you need to have the following ready:
Step 1: Set Up Moralis
For the first step, you need to join Moralis to get your API key. As such, if you donโt already have an account, click on the โStart for Freeโ button at the top right to sign up:

From there, go to the โSettingsโ tab, scroll down, and copy your API key:

Keep it for now, as youโll need it in the next section!
Step 2: Write a Script Calling the getWalletTokenBalances()
Endpoint
For the second step, set up a new project in your IDE, open a new terminal, and run the following command in the root folder to install the Moralis SDK:
npm install moralis @moralisweb3/common-evm-utils
Next, create an โindex.jsโ file and add the following code:
const Moralis = require("moralis").default; const { EvmChain } = require("@moralisweb3/common-evm-utils"); const runApp = async () => { await Moralis.start({ apiKey: "YOUR_API_KEY", // ...and any other configuration }); const address = "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d"; const chain = EvmChain.ETHEREUM; const response = await Moralis.EvmApi.token.getWalletTokenBalances({ address, chain, }); console.log(response.toJSON()); }; runApp();
From there, add your Moralis API key by replacing YOUR_API_KEY
:

Next, configure chain
and address
to fit your query:

From here, we then pass along chain
and address
as parameters when calling the endpoint:

And thatโs it for the script!
Step 3: Run the Code
For the final step, open a new terminal and run the command below in the projectโs root folder:
node index.js
In return, youโll get an array of all tokens held by the wallet in question. And it will look something like this:
[ { "token_address": "0xefd6c64533602ac55ab64442307f6fe2c9307305", "name": "APE", "symbol": "APE", "logo": null, "thumbnail": null, "decimals": 18, "balance": "101715701444169451516503179" }, { "token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "name": "Wrapped Ether", "symbol": "WETH", "logo": "https://cdn.moralis.io/eth/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.webp", "thumbnail": "https://cdn.moralis.io/eth/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2_thumb.webp", "decimals": 18, "balance": "85000000000000000" } ]
Congratulations! You now know how to get the token balances of a wallet with Moralis!
If questions remain, check out the official documentation page demonstrating how to get all ERC-20 tokens owned by an address. Also, you can follow the steps above to call any other Moralis endpoint. All you have to do is replace the endpoint and configure the parameters during the second step!
Summary: Exploring the Industryโs Premier Block Explorer API
In todayโs article, we introduced you to Moralisโ industry-leading suite of Web3 APIs. With our premier interfaces, you get everything you need to build a block explorer or integrate similar functionality into your projects, making it the ultimate Etherescan API alternative. And thanks to the accessibility of our APIs, you can get the data you need with single lines of code!
In addition to introducing you to Moralis, we also showed you how to get the token balances of a wallet in three steps:
- Set up Moralis
- Write a Script Calling the
getWalletTokenBalances()
Endpoint - Run the Code
Consequently, if you have followed along this far, you now know how to get blockchain data using Moralis!
If you liked this block explorer API tutorial, consider checking out more content on the Web3 blog. For instance, check out our Ropsten faucet guide or learn about the best blockchain API providers!
Also, if you want to leverage our industry-leading Web3 APIs, donโt forget to sign up with Moralis today!
Read More: moralis.io