The dynamic Web3 improvement area is house to quite a few Web3 API suppliers, which carry 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 improvement wants. And whereas it’d seem to be most suppliers supply comparable merchandise, evaluating totally 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, observe 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 price perspective.
All through this information, you’ll shortly uncover that Moralis offers the business’s most complete Web3 APIs. Consequently, Moralis facilitates the business’s most accessible and easy developer expertise. So, if you happen to instantly need to begin utilizing Moralis’ top-tier Web3 APIs, click on the button under!
To study extra about why Moralis outperforms the competitors, be part of us under as we dive straight into our comparability of Web3 API suppliers!
Evaluating Web3 APIs: Moralis vs. Alchemy vs. QuickNode
To spotlight the similarities and, extra importantly, variations between Moralis, Alchemy, and QuickNode, we used every supplier’s respective Web3 APIs to question the mandatory information for constructing a portfolio view of Vitalik Buterin’s ERC-20 tokens. On this case, a portfolio view consists of the identify, emblem, steadiness, and worth of all property within the pockets.
We opted for Vitalik’s pockets because of its measurement and the intensive quantity of tokens it holds. This makes it the proper candidate for testing the provision of spam classifications and metadata for giant token units. This strategy additionally allowed us to systematically assess and evaluate the accessibility, effectivity, and cost-effectiveness of Moralis, Alchemy, and QuickNode when fetching the identical on-chain assets.
You’ll discover the outcomes of our exams summarized within the two charts under:
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 steadiness, metadata, and worth of Vitalik’s ERC-20 tokens. Compared, the identical process required 4963 calls at a complete worth 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:
Moralis | Alchemy | QuickNode | |
Complete Tokens: | 1,743 | 2,469 | 2,368 |
Get All Balances | 18 | 25 | 24 |
Get Metadata | 0* | 2,469 | 2,368 |
Get Worth Knowledge | 0* | 2,469 | 2,368 |
Complete Calls: | 18 | 4,963 | 4,760 |
CU Price | 180 | 40,154 | 167,440 |
USD Price | $0.0008820 | $0.0049189 | $0.0164091 |
Why Does Moralis Outperform the Competitors?
All Web3 APIs from Moralis are outcome-oriented and designed to reduce the variety of calls it’s worthwhile to question blockchain information. We enrich all our API responses with transaction decodings, metadata, tackle labels, market information, and rather more from a number of sources.
To exemplify, when utilizing Moralis’ Token API and the token steadiness 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 need to name one endpoint and use one supplier, simplifying your improvement endeavors considerably.
Compared, when utilizing suppliers like Alchemy and QuickNode, you will need to first fetch the token balances from the pockets. From there, it’s worthwhile 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 will 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 process demanded hundreds of calls and a number of suppliers when utilizing Alchemy or QuickNode.
To interrupt this down and make clear it additional, let’s study 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 Stability endpoint to fetch the token balances – together with metadata and costs – of any tackle:
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, worth, steadiness, worth 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 tackle and token steadiness in hexadecimal:
"jsonrpc": "2.0", "id": 1, "outcome": { "tackle": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", "tokenBalances": [ { "contractAddress": "0x0183736842388dcc6d41674082937684056a3904", "tokenBalance": "0x00000000000000000000000000000000000000001581113dffdc72c05ad16068" }, //... ] } }
What’s extra, other than offering a fairly restricted response, Alchemy moreover consists of some tokens with a steadiness equal to zero:
{ "contractAddress": "0x007f252591528d326b2a73b366e5c6a0aa5128cc", "tokenBalance": "0x0000000000000000000000000000000000000000000000000000000000000000" }
Together with tokens with a zero steadiness 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’ve got the steadiness, we now additionally must name Alchemy’s getTokenMetadata()
endpoint individually for every particular person token. This may lead to hundreds and hundreds of further calls. Right here’s an instance of what the endpoint appears to be like 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/pictures/property/3408.png", "identify": "USDC", "image": "USDC" } }
Lastly, it’s worthwhile to leverage a third-party supplier, similar to CoinGecko or CoinMarketCap, to get the worth of every token. That is one other bothersome step, leading to extra calls and a extra complicated workflow for you and your improvement workforce!
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-Sort: software/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 comprises extra info 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 info, which ends up in hundreds of additional calls:
curl https://docs-demo.quiknode.professional/ -X POST -H "Content material-Sort: software/json" --data '{ "id":67, "jsonrpc":"2.0", "technique":"qn_getTokenMetadataByContractAddress", "params": [{ "contract": "0x4d224452801ACEd8B2F0aebE155379bb5D594381" }] }'
That is what the response appears to be like 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 necessary element 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 improvement workforce.
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.
Compared, with Alchemy and QuickNode, the identical process requires hundreds of calls and third-party involvement. Suppliers like CoinGecko or CoinMarketCap are essential, turning this easy process right into a bothersome and time-consuming endeavor.
Whereas this comparability makes use of Moralis’ Token API for example, it’s price noting that every 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 if you happen to’re constructing a portfolio view of ERC-20 tokens, an NFT-based platform, a crypto worth tracker, or some other Web3 undertaking; Moralis repeatedly outshines the competitors.
So, if you wish to begin constructing Web3 initiatives sooner and extra effectively, make certain to enroll with Moralis!