The dynamic Web3 growth area is dwelling to quite a few Web3 API suppliers, which convey their distinctive strengths and weaknesses to the desk. With this abundance of API choices, you may discover it difficult to find out which APIs finest fit your growth wants. And whereas it’d appear to be most suppliers supply comparable merchandise, evaluating completely different Web3 APIs can typically be like evaluating apples to oranges.
So, out of all Web3 API suppliers, which is the most suitable choice? To search out out, comply with alongside on this information as we conduct a comparative evaluation of the Web3 business’s main API suppliers: Moralis, Alchemy, and QuickNode. As we transfer ahead, we’ll fastidiously analyze these three suppliers from an accessibility, efficiency, and value perspective.
All through this information, you’ll rapidly uncover that Moralis gives the business’s most complete Web3 APIs. Consequently, Moralis facilitates the business’s most accessible and easy developer expertise. So, in the event you instantly wish to begin utilizing Moralis’ top-tier Web3 APIs, click on the button under!
To study extra about why Moralis outperforms the competitors, be a part of us under as we dive straight into our comparability of Web3 API suppliers!
Evaluating Web3 APIs: Moralis vs. Alchemy vs. QuickNode
To focus on the similarities and, extra importantly, variations between Moralis, Alchemy, and QuickNode, we used every supplier’s respective Web3 APIs to question the required information for constructing a portfolio view of Vitalik Buterin’s ERC-20 tokens. On this case, a portfolio view consists of the identify, emblem, stability, and value of all property within the pockets.
We opted for Vitalik’s pockets because of its measurement and the in depth quantity of tokens it holds. This makes it the right candidate for testing the supply of spam classifications and metadata for big token units. This method additionally allowed us to systematically assess and examine the accessibility, effectivity, and cost-effectiveness of Moralis, Alchemy, and QuickNode when fetching the identical on-chain sources.
You’ll discover the outcomes of our assessments summarized within the two charts under:
![Price chart - comparing Moralis, Alchemy, and QuickNode and how much it cost to render a portfolio view of Vitalik's ERC20 tokens](https://moralis.io/wp-content/uploads/2024/02/Blog-Comparing-Web3-APIs-Cost-1024x574.png)
By analyzing the charts above, you’ll discover that constructing a portfolio view of Vitalik’s ERC-20 tokens with Moralis calls for considerably fewer API calls and is extra cost-efficient than using each Alchemy and QuickNode.
With solely 18 calls at a complete value of $0.000882, we had been in a position to fetch the stability, metadata, and value of Vitalik’s ERC-20 tokens. As compared, the identical job required 4963 calls at a complete value of $0.0049189 with Alchemy. And 4760 calls at a complete value of $0.0163091 with QuickNode.
Right here’s the information damaged down right into a desk:
Why Does Moralis Outperform the Competitors?
All Web3 APIs from Moralis are outcome-oriented and designed to attenuate the variety of calls you might want to question blockchain information. We enrich all our API responses with transaction decodings, metadata, handle labels, market information, and rather more from a number of sources.
To exemplify, when utilizing Moralis’ Token API and the token stability endpoint, you get the ERC-20 balances of a pockets – together with metadata and costs for every token – in a single response. This implies you solely should name one endpoint and use one supplier, simplifying your growth endeavors considerably.
![Moralis - the best Web3 API provider in Web3](https://moralis.io/wp-content/uploads/2024/02/Blog-Comparing-Web3-APIs-Moralis-Logo.png)
As compared, when utilizing suppliers like Alchemy and QuickNode, you need to first fetch the token balances from the pockets. From there, you might want to make particular person calls to question the metadata for every token individually. Furthermore, Alchemy and QuickNode’s API responses don’t embody token costs, which means you need to additionally contain a third-party supplier like CoinGecko or CoinMarketCap to get this information.
This is the reason we solely wanted 18 calls to construct a portfolio view of Vitalik’s ERC-20s when working with Moralis. In the meantime, the identical job demanded 1000’s of calls and a number of suppliers when utilizing Alchemy or QuickNode.
To interrupt this down and make clear it additional, let’s look at intimately the endpoints and responses from every supplier we utilized to render the portfolio view of Vitalik’s ERC-20 tokens.
Moralis – Endpoint Overview
With Moralis’ complete APIs, we solely want the Token Steadiness endpoint to fetch the token balances – together with metadata and costs – of any handle:
GET https://deep-index.moralis.io/api/v2.2/wallets/0xd8da6bf26964af9d7eed9e03e53415d37aa96045/tokens?chain=eth
Right here’s an instance of what the response would appear like:
{
“cursor”: null,
“web page”: 0,
“page_size”: 100,
“outcome”: [
{
“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”: “517438540”,
“possible_spam”: false,
“verified_contract”: true,
“balance_formatted”: “517.43854”,
“usd_price”: 1.0006571224951815,
“usd_price_24hr_percent_change”: 0.08795941027880547,
“usd_price_24hr_usd_change”: 0.45543496836985303,
“usd_value”: 517.7785605045078,
“native_token”: false,
“portfolio_percentage”: 0
},
//…
]
}
This response is enriched with an abundance of helpful information, together with the image, identify, emblem, value, stability, value adjustments over time, and extra of every token. As such, when working with Moralis, you solely want a single endpoint to fetch all of the required information for constructing a full ERC-20 portfolio view!
Alchemy – Endpoints Overview
When utilizing Alchemy, we initially must name their getTokenBalances() endpoint, which is used to fetch a pockets’s token balances:
alchemy.core.getTokenBalances(“0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045”)
In return, you’ll get a easy response containing an array of token balances, that includes solely the contract handle and token stability in hexadecimal:
“jsonrpc”: “2.0”,
“id”: 1,
“outcome”: {
“handle”: “0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5”,
“tokenBalances”: [
{
“contractAddress”: “0x0183736842388dcc6d41674082937684056a3904”,
“tokenBalance”: “0x00000000000000000000000000000000000000001581113dffdc72c05ad16068”
},
//…
]
}
}
What’s extra, aside from offering a fairly restricted response, Alchemy moreover consists of some tokens with a stability equal to zero:
{
“contractAddress”: “0x007f252591528d326b2a73b366e5c6a0aa5128cc”,
“tokenBalance”: “0x0000000000000000000000000000000000000000000000000000000000000000”
}
Together with tokens with a zero stability is sort of pointless, and it additional slows down the time it takes to fetch all the tokens utilizing Alchemy’s API.
As soon as we now have the stability, we now additionally must name Alchemy’s getTokenMetadata() endpoint individually for every particular person token. This can lead to 1000’s and 1000’s of further calls. Right here’s an instance of what the endpoint appears like:
const contract = “0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48”;
alchemy.core.getTokenMetadata(contract).then(console.log);
In return, you’ll get a response containing a single token’s decimals, emblem, identify, and image:
{
“jsonrpc”: “2.0”,
“id”: 1,
“outcome”: {
“decimals”: 6,
“emblem”: “https://static.alchemyapi.io/photos/property/3408.png”,
“identify”: “USDC”,
“image”: “USDC”
}
}
Lastly, you might want to leverage a third-party supplier, corresponding to CoinGecko or CoinMarketCap, to get the worth of every token. That is one other bothersome step, leading to extra calls and a extra advanced workflow for you and your growth staff!
QuickNode – Endpoints Overview
When utilizing QuickNode, we even have to start out by calling their getWalletTokenBalance endpoint to fetch the ERC-20 token balances of the pockets:
curl https://docs-demo.quiknode.professional/
-X POST
-H “Content material-Kind: utility/json”
–data ‘{
“id”:67,
“jsonrpc”:”2.0″,
“technique”:”qn_getWalletTokenBalance”,
“params”: [{
“wallet”: “0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045”
}]
}’
This returns an array of tokens that appears like this:
{
“jsonrpc”: “2.0”,
“id”: 67,
“outcome”: {
“outcome”: [
{
“name”: “Namefi Service Credit”,
“symbol”: “NFSC”,
“decimals”: “18”,
“address”: “0x0000000000c39a0f674c12a5e63eb8031b550b6f”,
“quantityIn”: “100000000000000000000”,
“quantityOut”: “20000000000000000000”,
“totalBalance”: “80000000000000000000”
},
//…
]
}
}
QuickNode’s response accommodates extra data than Alchemy’s, nevertheless it’s inadequate for constructing a complete portfolio view. As such, we then must name their getTokenMetadataByContractAddress endpoint for every particular person token to get further data, which leads to 1000’s of additional calls:
curl https://docs-demo.quiknode.professional/
-X POST
-H “Content material-Kind: utility/json”
–data ‘{
“id”:67,
“jsonrpc”:”2.0″,
“technique”:”qn_getTokenMetadataByContractAddress”,
“params”: [{
“contract”: “0x4d224452801ACEd8B2F0aebE155379bb5D594381”
}]
}’
That is what the response appears like:
{
“jsonrpc”: “2.0”,
“id”: 67,
“outcome”: {
“identify”: “Tether USD”,
“image”: “USDT”,
“contractAddress”: “0xdac17f958d2ee523a2206206994597c13d831ec7”,
“decimals”: “6”,
“genesisBlock”: null,
“genesisTransaction”: null
}
}
What’s extra, you’ll discover that QuickNode’s metadata response doesn’t even embody the token emblem. That is one other essential part for constructing an ERC-20 token portfolio view.
Lastly, very like when utilizing Alchemy, you additionally must leverage a third-party supplier like CoinGecko or CoinMarketCap to get token costs when working with QuickNode. As such, that is one other integration that complicates issues for you and your growth staff.
Abstract: Full Comparability – Moralis vs. Alchemy vs. QuickNode
With Moralis’ outcome-oriented and use-case-specific Web3 APIs, we’re in a position to present a considerably extra accessible and easy developer expertise in comparison with Alchemy and QuickNode!
Because of Moralis’ totally enriched API responses, you solely want a single endpoint and 18 API calls to get the token balances, metadata, costs, and rather more from Vitalik’s pockets. This considerably improves the efficiency and cost-effectiveness of Moralis’ Web3 APIs. You require fewer calls to question the information you want.
![Moralis Logo](https://moralis.io/wp-content/uploads/2024/02/Blog-Comparing-APIs-Moralis-Logo-1024x904.png)
As compared, with Alchemy and QuickNode, the identical job requires 1000’s of calls and third-party involvement. Suppliers like CoinGecko or CoinMarketCap are essential, turning this easy job right into a bothersome and time-consuming endeavor.
Whereas this comparability makes use of Moralis’ Token API for instance, it’s value noting that each one our APIs, together with the NFT API, Pockets API, and so forth., are equally as complete and straightforward to make use of. As such, it doesn’t matter in the event you’re constructing a portfolio view of ERC-20 tokens, an NFT-based platform, a crypto value tracker, or every other Web3 challenge; Moralis repeatedly outshines the competitors.
So, if you wish to begin constructing Web3 initiatives sooner and extra effectively, be sure to enroll with Moralis!