On this article, we are going to display construct a Polygon portfolio tracker by following the steps within the video above. Though the video focuses on Ethereum, we’ll goal the Polygon community just by updating the chain ID worth. Additionally, with two highly effective endpoints from Moralis, we are going to fetch the mandatory on-chain information for our portfolio tracker. Let’s have a look at how easy it’s to make use of the 2 Web3 Information API endpoints overlaying the blockchain-related facet of a Polygon portfolio tracker:
const response = await Moralis.EvmApi.token.getWalletTokenBalances({
handle,
chain,
});const tokenPriceResponse = await Moralis.EvmApi.token.getTokenPrice({
handle,
chain,
});
To run the above two strategies, you additionally must initialize Moralis utilizing your Web3 API key:
Moralis.begin({
apiKey: MORALIS_API_KEY,
}
That’s it! It doesn’t must be extra sophisticated than that when working with Moralis! Now, the above traces of code are the gist of the blockchain-related backend functionalities of portfolio trackers throughout a number of chains. Due to the cross-chain interoperability of Moralis, whether or not you want to construct a Polygon portfolio tracker or goal another EVM-compatible chain, the above-presented code snippets get the job completed!
In fact, you have to implement the above traces of code correctly and add appropriate frontend elements. So, if you happen to want to learn to do exactly that and create a clear Polygon portfolio tracker, make certain to comply with our lead. However first, join with Moralis! In spite of everything, your Moralis account is the gateway to utilizing the quickest Web3 APIs.

Overview
Since Polygon continues to be one of the well-liked EVM-compatible chains, we need to display construct a Polygon portfolio tracker with minimal effort. The core of at the moment’s article is our Polygon portfolio tracker tutorial. That is the place you should have an opportunity to clone our completed code for the Ethereum tracker and apply some minor tweaks to focus on the Polygon community. On this tutorial, you’ll be utilizing NodeJS to cowl the backend and NextJS for the frontend. So far as the fetching of on-chain information goes, Moralis will do the trick with the above-presented snippets of code. You simply must retailer your Moralis Web3 API key in a “.env” file.
Apart from guiding you thru these minor tweaks, we may also stroll you thru an important elements of the code. When you full the tutorial, you’ll even have an opportunity to discover different Moralis instruments you should use to create all kinds of highly effective dapps (decentralized purposes). For instance, Moralis provides the Moralis Streams API, enabling you to stream real-time blockchain occasions straight into the backend of your decentralized software by way of Web3 webhooks!
All in all, after finishing at the moment’s article, you’ll be prepared to hitch the Web3 revolution utilizing your legacy programming expertise!

Now, earlier than you soar into the tutorial, keep in mind to enroll with Moralis. With a free Moralis account, you achieve free entry to a number of the market’s main Web3 improvement assets. In flip, you’ll be capable of develop Web3 apps (decentralized purposes) and different Web3 tasks smarter and extra effectively!
Tutorial: Easy methods to Construct a Polygon Portfolio Tracker
We determined to make use of MetaMask as inspiration. Our Polygon portfolio tracker may also show every coin’s portfolio share, worth, and stability in a related pockets. Right here’s how our instance pockets appears to be like:

For the sake of simplicity, we’ll solely give attention to the belongings desk on this article. With that mentioned, it’s time you clone our challenge that awaits you on the “metamask-asset-table” GitHub repo web page:

After cloning our repo into your “metamask-portfolio-table” challenge listing, open that challenge in Visible Studio Code (VSC). If we first give attention to the “backend” folder, you possibly can see it comprises the “index.js”, “package-lock.json”, and “bundle.json” scripts. These scripts will energy your NodeJS backend dapp.
Nonetheless, earlier than you possibly can run your backend, it’s good to set up all of the required dependencies with the npm set up command. As well as, you additionally must create a “.env” file and populate it with the MORALIS_API_KEY environmental variable. As for the worth of this variable, it’s good to entry your Moralis admin space and duplicate your Web3 API key:
By this level, it’s best to’ve efficiently accomplished the challenge setup. In flip, we will stroll you thru the principle backend script. That is additionally the place you’ll learn to change the chain ID to match Polygon.
Best Method to Construct a Portfolio Tracker with Assist for Polygon
When you give attention to the backend “index.js” script, you’ll see that it first imports/requires all dependencies and defines native port 5001. The latter is the place you’ll be capable of run your backend for the sake of this tutorial. So, these are the traces of code that cowl these features:
const specific = require(“specific”);
const app = specific();
const port = 5001;
const Moralis = require(“moralis”).default;
const cors = require(“cors”);
require(“dotenv”).config({ path: “.env” });
Subsequent, the script instructs the app to make use of CORS and Categorical and to fetch your Web3 API key from the “.env” file:
app.use(cors());
app.use(specific.json());
const MORALIS_API_KEY = course of.env.MORALIS_API_KEY;
On the backside of the script, the Moralis.begin operate makes use of your API key to initialize Moralis:
Moralis.begin({
apiKey: MORALIS_API_KEY,
}).then(() => {
app.pay attention(port, () => {
console.log(`Listening for API Calls`);
});
});
Between the traces that outline the MORALIS_API_KEY variable and initialize Moralis, the script implements the 2 EVM API strategies introduced within the intro. Listed below are the traces of code that cowl that correctly:
app.get(“/gettokens”, async (req, res) => {
strive {
let modifiedResponse = [];
let totalWalletUsdValue = 0;
const { question } = req;
const response = await Moralis.EvmApi.token.getWalletTokenBalances({
handle: question.handle,
chain: “0x89”,
});
for (let i = 0; i < response.toJSON().size; i++) {
const tokenPriceResponse = await Moralis.EvmApi.token.getTokenPrice({
handle: response.toJSON()[i].token_address,
chain: “0x89”,
});
modifiedResponse.push({
walletBalance: response.toJSON()[i],
calculatedBalance: (
response.toJSON()[i].stability /
10 ** response.toJSON()[i].decimals
).toFixed(2),
usdPrice: tokenPriceResponse.toJSON().usdPrice,
});
totalWalletUsdValue +=
(response.toJSON()[i].stability / 10 ** response.toJSON()[i].decimals) *
tokenPriceResponse.toJSON().usdPrice;
}
modifiedResponse.push(totalWalletUsdValue);
return res.standing(200).json(modifiedResponse);
} catch (e) {
console.log(`One thing went flawed ${e}`);
return res.standing(400).json();
}
});
Wanting on the traces of code above, you possibly can see that we changed 0x1 with 0x89 for each chain parameters. The previous is the chain ID in HEX formation for Ethereum and the latter for Polygon. So, if you happen to purpose to construct a Polygon portfolio tracker, make certain to go along with the latter. You may as well see that the getWalletTokenBalances endpoint queries the related pockets. Then, the getTokenPrice endpoint loops over the outcomes supplied by the getWalletTokenBalances endpoint. That means, it covers all of the tokens within the related pockets and fetches their USD costs. It additionally calculates the entire worth of the pockets by merely including the USD values of all tokens. Lastly, our backend script pushes the outcomes to the frontend consumer.

Frontend Code Walkthrough
As talked about above, you’ll create the frontend of your Polygon portfolio tracker dapp with NextJS. So, the “nextjs_moralis_auth” folder is basically a NextJS app. To make it work, it’s good to set up all dependencies utilizing the npm set up command. Nonetheless, be sure you cd into the “nextjs_moralis_auth” folder earlier than working the command. As soon as you put in the dependencies, you possibly can run your frontend and mess around along with your new Polygon portfolio tracker. However since we wish you to get some extra perception from this text, let’s have a look at probably the most important snippets of the code of the varied frontend scripts.
The “signin.jsx” script offers the “Join MetaMask” button. As soon as customers join their wallets, the “consumer.jsx” script takes over. The latter provides a “Signal Out” button and renders the LoggedIn part, each contained in the Consumer operate:
operate Consumer({ consumer }) {
return (
<part className={kinds.most important}>
<part className={kinds.header}>
<part className={kinds.header_section}>
<h1>MetaMask Portfolio</h1>
<button
className={kinds.connect_btn}
onClick={() => signOut({ redirect: “/” })}
>
Signal out
</button>
</part>
<LoggedIn />
</part>
</part>
);
}
When you have a look at the “loggedIn.js” part, you’ll see that it comprises two different elements: “tableHeader.js” and “tableContent.js“. As such, these two elements make certain the on-chain information fetched by the above-covered backend is neatly introduced on the frontend.
Portfolio Desk Elements
Right here’s a screenshot that clearly reveals you what “tableHeader.js” appears to be like like in a browser:

As you possibly can see, the “tableHeader.js” script primarily offers with formatting and styling, which isn’t the purpose of this tutorial. The identical is true for the “tableContent.js” part, which ensures that the desk columns match our objectives. It additionally calls the “GetWalletTokens” part:
The “getWalletTokens.js” script will get the on-chain information fetched by the backend. So, are you questioning get blockchain information from the backend to frontend? The “getWalletTokens.js” script makes use of useAccount from the wagmi library. The latter extracts the related handle and prompts the backend server with that handle by way of Axios:
useEffect(() => {
let response;
async operate getData() {
response = await axios
.get(`http://localhost:5001/gettokens`, {
params: { handle },
})
.then((response) => {
console.log(response.information);
setTokens(response.information);
});
}
getData();
}, []);
Wanting on the above code snippet, you possibly can see that the response variable shops all of the on-chain information that the backend fetched. The script additionally saves response.information within the setTokens state variable. Then, the return operate contained in the “getWalletTokens.js” script renders the ultimate part: “card.js“:
return (
<part>
{tokens.map((token) => {
return (
token.usdPrice && (
<Card
token={token}
whole={tokens[3]}
key={token.walletBalance?.image}
/>
)
);
})}
</part>
);
Whereas rendering “card.js“, “getWalletTokens.js” passes alongside some props. The “card.js” part then makes use of these props to render the main points that lastly populate the “Belongings” desk:
Remaining Construct of Our Polygon Portfolio Tracker
When you efficiently run the above-presented backend and frontend, you’ll be capable of take a look at your tracker on “localhost:3000“:
Because the above screenshot signifies, you have to first join your MetaMask pockets by clicking on the “Join MetaMask” button.
Be aware: By default, MetaMask doesn’t embrace the Polygon community. Thus, make certain so as to add that community to your MetaMask and change to it:
When you join your pockets, your occasion of our portfolio tracker dapp will show your tokens within the following method:

Be aware: The “Tokens” part of our desk is the one one at present energetic. Nonetheless, we urge you to make use of the Moralis assets so as to add performance to the “NFTs” and “Transactions” sections as effectively.
Past Polygon Portfolio Tracker Improvement
When you took on the above tutorial, you most likely keep in mind that our instance dapp solely makes use of two Moralis Web3 Information API endpoints. Nonetheless, many different highly effective API endpoints are at your disposal if you go for Moralis. Whereas Moralis focuses on catering Web3 wallets and portfolio trackers, it may be used for all kinds of dapps.
Your complete Moralis fleet encompasses the Web3 Information API, Moralis Streams API, and Authentication API:

The Web3 Information API comprises the next APIs enabling you to fetch any on-chain information the straightforward means: NFT APIToken APIBalances APITransaction APIEvents APIBlock APIDeFi APIResolve APIIPFS API
With the Moralis Streams API, you possibly can hearken to real-time on-chain occasions for any good contract and pockets handle. That means, you should use on-chain occasions as triggers to your dapps, bots, and so on. Plus, you should use the facility of Moralis Streams by way of the SDK or our user-friendly dashboard.
Due to the Moralis Web3 Authentication API, you possibly can effortlessly unify Web3 wallets and Web2 accounts in your purposes.
Be aware: You may discover all of Moralis’ API endpoints and even take them for take a look at rides in our Web3 documentation.
All these instruments help all of the main blockchains, together with non-EVM-compatible chains, akin to Solana and Aptos. As such, you might be by no means caught to any specific chain when constructing with Moralis. Plus, due to Moralis’ cross-platform interoperability, you should use your favourite legacy dev instruments to hitch the Web3 revolution!
Apart from enterprise-grade Web3 APIs, Moralis additionally provides another helpful instruments. Two nice examples are the gwei to ether calculator and Moralis’ curated crypto faucet record. The previous ensures you by no means get your gwei to ETH conversions flawed. The latter offers hyperlinks to vetted testnet crypto taps to simply receive “take a look at” cryptocurrency.
Easy methods to Construct a Polygon Portfolio Tracker – Abstract
In at the moment’s article, you had a chance to comply with our lead and create your individual Polygon portfolio tracker dapp. By utilizing our scripts, you have been ready to take action with minimal effort and in a matter of minutes. In spite of everything, you solely needed to create your Moralis account, receive your Web3 API key and retailer it in a “.env” file, set up the required dependencies, exchange 0x1 with 0x89, and run your frontend and backend. You additionally had an opportunity to deepen your understanding by exploring an important scripts behind our instance portfolio tracker dapp. Final however not least, you additionally discovered what Moralis is all about and the way it could make your Web3 improvement journey an entire lot less complicated.
In case you have your individual dapp concepts, dive straight into the Moralis docs and BUIDL a brand new killer dapp. Nonetheless, if it’s good to increase your blockchain improvement data first or get some attention-grabbing concepts, make certain to go to the Moralis YouTube channel and the Moralis weblog. These locations cowl all kinds of matters and tutorials that may provide help to change into a Web3 developer at no cost. As an illustration, you possibly can discover the superior Alchemy NFT API various, the main Ethereum scaling options, learn to get began in DeFi blockchain improvement, and far more. Furthermore, in relation to tutorials, you possibly can select brief and easy ones because the one herein, or you possibly can sort out extra in depth challenges. An awesome instance of the latter could be to construct a Web3 Amazon clone.
Nonetheless, if you happen to and your workforce want help scaling your dapps, attain out to our gross sales workforce. Merely choose the “For Enterprise” menu choice, adopted by a click on on the “Contact Gross sales” button: