
An actual-time pockets tracker is an software or web site that means that you can monitor the exercise of Web3 wallets. Consequently, when constructing one, you want a streamlined technique for repeatedly observing pockets addresses and blockchain networks to detect occasions as quickly as they happen. And the best approach to take action is to leverage Moralis’ Streams API!
With this industry-leading improvement software, you may effortlessly arrange streams to get immediate, customizable updates about occasions, sensible contracts, and wallets despatched on to your venture’s backend through webhooks. To focus on the ability of the Streams API, right here’s how straightforward it’s to arrange a stream that displays the native transactions of a pockets on the Sepolia testnet:
async operate streams(){ const choices = { chains: [EvmChain.SEPOLIA], tag: "transfers", description: "Take heed to Transfers", includeContractLogs: false, includeNativeTxs: true, webhookUrl: "replace_me" } const newStream = await Moralis.Streams.add(choices) const {id} = newStream.toJSON(); const tackle = "replace_me"; await Moralis.Streams.addAddress({tackle, id}) } streams()
All you must do is initialize Moralis, add your webhook URL, and enter the tackle you want to monitor! Now, if you would like a extra in-depth breakdown of how this works and how one can configure your streams additional, be a part of us on this information or take a look at the video beneath:
Additionally, with the intention to make calls to the Streams API, you want a Moralis account. As such, in the event you haven’t already, enroll with Moralis right away and get speedy entry to all our industry-leading Web3 improvement instruments at no cost!
Overview
In at present’s article, we’ll kick issues off by exploring the intricacies of real-time pockets trackers. From there, we’ll introduce you to Moralis’ Streams API, as that is the best solution to construct a real-time pockets tracker your self. Lastly, to prime issues off, we’ll dive into our major tutorial and present you tips on how to monitor an tackle in real-time in 5 simple steps:
- Get a Moralis API Key
- Set Up an Specific Server
- Create a Moralis Stream
- Run the Code
- Take a look at Your Stream
So, in the event you’re already accustomed to the ins and outs of pockets trackers, be happy to skip straight into the ”Actual-Time Pockets Tracker Tutorial…” part and get proper into the motion!
Additionally, in the event you’re severe about constructing your individual real-time pockets tracker, contemplate testing some extra Moralis improvement instruments. For instance, the Streams API works completely along with different interfaces, together with the Pockets API, NFT API, and Token API! So, in the event you haven’t already, don’t overlook to enroll with Moralis. You possibly can arrange your account at no cost and get speedy entry to all our industry-leading improvement instruments, together with the Streams API!
What’s a Actual-Time Pockets Tracker?
An actual-time pockets tracker is a software that means that you can discover and monitor the exercise of a Web3 pockets. There are lots of choices obtainable in the marketplace, and so they usually have their very own set of distinctive options. Some are fairly primary, solely offering easy transaction information such because the switch quantity. In the meantime, others provide superior choices for personalisation and supply extra detailed data, together with block information, logs, addresses, and many others.

However how precisely does a real-time pockets tracker work?
The most effective real-time pockets trackers normally permit customers to specify occasions of curiosity. This may be all the pieces from native transactions to ERC-20 token transfers. As soon as a real-time pockets tracker is aware of what to search for, it repeatedly displays the related addresses for essential on-chain exercise. And as quickly because it detects an occasion, it instantly notifies the customers so that they don’t miss a beat!
Nevertheless, monitoring addresses and blockchain networks with out correct instruments is a tedious activity, which is why the most effective real-time pockets trackers leverage Web3 APIs to simplify the method of making the underlying infrastructure.
However what’s the finest real-time pockets tracker API? And how will you use instruments like these to construct decentralized functions (dapps)?
Introducing Moralis’ Streams API – The Final Software for Constructing a Actual-Time Pockets Tracker
The simplest solution to construct a real-time pockets tracker is to leverage Moralis’ Streams API. With this industry-leading software, you may seamlessly arrange streams to obtain immediate, customizable updates on to your venture’s backend through Moralis webhooks each time one thing essential occurs on-chain!

With the Streams API, you may seamlessly monitor all forms of occasions, NFTs, DeFi platforms, sensible contracts, wallets, and many others. What’s extra, the interface helps 44 million contracts and counting throughout all main EVM blockchains, together with Ethereum, Polygon BNB Good Chain (BSC), and plenty of others.
So, why must you be working with the Streams API?
With Moralis, it can save you each improvement money and time. And to focus on the ability of the Streams API, listed below are three distinguished advantages of this industry-leading software:
✅ Full Customization: The Streams API is the {industry}’s most versatile and customizable software for real-time blockchain information. And with this API, you may effortlessly arrange Web3 notifications for any use case you may think about.
✅ Go To Market Quickly: Monitoring, indexing, and customizing real-time blockchain information is an costly and time-consuming endeavor. Fortunately, with the Streams API, you may monitor any tackle on any blockchain community with a couple of traces of code, permitting you to go to market sooner.
✅ Excessive Scalability: The Streams API is constructed to scale. As an example, you may seamlessly take heed to the 100 million most lively Ethereum wallets with just one stream.

So, when working with Moralis and the Streams API, it has by no means been simpler to construct dapps integrating real-time updates and alerts! Nevertheless, to additional spotlight the accessibility of this software, be a part of us within the subsequent part, as we’ll stroll you thru a complete real-time pockets tracker tutorial!
Actual-Time Pockets Tracker Tutorial: Easy methods to Observe an Deal with in 5 Steps
One of many core functionalities of a real-time pockets tracker is the flexibility to observe a crypto tackle for related occasions. And since we received’t be capable of cowl all pockets tracker options on this article, we’ll deal with simply that. As such, on this tutorial, we’ll present you tips on how to seamlessly monitor the native transfers of a pockets in 5 steps utilizing the Streams API:
- Get a Moralis API Key
- Set Up an Specific Server
- Create a Moralis Stream
- Run the Code
- Take a look at Your Stream
Nevertheless, earlier than diving into the preliminary step of this real-time pockets tracker tutorial, you will need to take care of a couple of conditions!
Stipulations
Whereas the Streams API works with a number of programming languages, together with Python, JavaScript, and many others., we’ll deal with the latter on this tutorial. We will even use ngrok to arrange a webhook URL. As such, earlier than you may proceed, you might want to have the next prepared:
- Node.js v.14+
- NPM/Yarn
- Ngrok
Step 1: Get a Moralis API Key
Calling Moralis’ Streams API requires an API key. As such, in the event you haven’t already, the very first thing you might want to do is click on on the ”Begin for Free” button on the prime proper to enroll with Moralis:

From there, go to the ”Settings” tab, find the ”API Keys” part, and duplicate your Moralis API key:

Save the important thing for now, as you’ll want it when initializing Moralis within the third step!
Step 2: Set Up an Specific Server
For the second step, you might want to arrange a easy server to obtain the Web3 webooks from Moralis. To take action, we’ll be utilizing the Specific Node.js software framework!
As such, to start out issues off, arrange a brand new venture in your built-in improvement surroundings (IDE). From there, open a brand new terminal, cd
into the venture’s root folder, and set up Specific with the next command:
npm set up categorical
Subsequent, create a brand new ”index.js” file and add the next code:
const categorical = require("categorical"); const app = categorical(); const port = 3000; app.use(categorical.json()); app.publish("/webhook", async (req, res) => { const {physique} = req; strive { console.log(physique); } catch (e) { console.log(e); return res.standing(400).json(); } return res.standing(200).json(); }); app.pay attention(port, () => { console.log(`Listening to streams`); });
The code defines a single /webhook
path to which Moralis can publish your streams. Right here, we parse the physique of the response and log it within the console:
app.publish("/webhook", async (req, res) => { const {physique} = req; strive { console.log(physique); } catch (e) { console.log(e); return res.standing(400).json(); } return res.standing(200).json(); });
From right here, now you can begin the Specific server by opening a brand new terminal and operating the next command:
node index.js
With the server up and operating, you will need to open a brand new tunnel to ”port 3000” utilizing ngrok. To take action, launch a brand new terminal and run this command:
ngrok http http://localhost:3000
Working the command above will open a window just like the one beneath the place you might want to copy and save your webhook URL:

Step 3: Create a Moralis Stream
Now that your server is up and operating, it’s time to create your stream utilizing Moralis’ Streams API. As such, arrange a brand new Node.js venture in your IDE and create a ”.env” file in its root folder. This file will host a MORALIS_KEY
surroundings variable, and it ought to look one thing like this:
MORALIS_KEY=’YOUR_API_KEY’
Merely change YOUR_API_KEY
with the important thing you copied throughout step one of this tutorial.
Subsequent, arrange a brand new ”index.js” file and add the code beneath:
const Moralis = require("moralis").default; const { EvmChain } = require("@moralisweb3/common-evm-utils"); require("dotenv").config(); Moralis.begin({ apiKey: course of.env.MORALIS_KEY, }); async operate streams(){ const choices = { chains: [EvmChain.SEPOLIA], tag: "transfers", description: "Take heed to Transfers", includeContractLogs: false, includeNativeTxs: true, webhookUrl: "replace_me" } const newStream = await Moralis.Streams.add(choices) const {id} = newStream.toJSON(); const tackle = "0xa50981073aB67555c14F4640CEeB5D3efC5c7af2"; await Moralis.Streams.addAddress({tackle, id}) console.log("Stream efficiently created") } streams()
So, what precisely is occurring right here?
To clarify, we’ll break down a couple of important components of the code beneath!
On the prime of the ”index.js” file, we begin by importing Moralis and the surroundings variable from the ”.env” file:
const Moralis = require("moralis").default; const { EvmChain } = require("@moralisweb3/common-evm-utils"); require("dotenv").config();
Subsequent, we use our API key to initialize the Moralis SDK:
Moralis.begin({ apiKey: course of.env.MORALIS_KEY, });
We then create a brand new streams()
operate the place we arrange an choices
object:
async operate streams(){ const choices = { chains: [EvmChain.SEPOLIA], tag: "transfers", description: "Take heed to Transfers", includeContractLogs: false, includeNativeTxs: true, webhookUrl: "replace_me" } //… }
The choices
object is used to configure our stream, and it has a number of parameters, together with chains
, tag
, description
, webhookUrl
, and many others. That is additionally the place we specify the occasions we would like our stream to observe.
On this case, we configured our stream to observe the Sepolia testnet for native transactions. If you wish to monitor one other chain for different occasions, merely configure the parameters of choices
.
Additionally, don’t overlook so as to add your webhook URL by changing replace_me
and appending /webhook
on the finish. All in all, the webhookUrl
parameter of the choices
object ought to look one thing like this:
webhookUrl: “https://1192-80-217-157-107.ngrok-free.app/webhook”
We then create a brand new stream by calling Moralis’ Stream.add()
technique utilizing choices
:
const newStream = await Moralis.Streams.add(choices)
Subsequent, we get the id
from the brand new stream and create an tackle
const to which we add the tackle we need to monitor:
const {id} = newStream.toJSON(); const tackle = "0xa50981073aB67555c14F4640CEeB5D3efC5c7af2";
Lastly, we use id
and tackle
so as to add the tackle to our stream:
await Moralis.Streams.addAddress({tackle, id})
Step 4: Run the Code
For the ultimate step, you will need to execute the code above by operating the script. Nevertheless, you might want to set up a few dependencies earlier than doing so. As such, open a brand new terminal and run the next command:
npm set up moralis @moralisweb3/common-evm-utils dotenv
Subsequent, run this command within the venture’s root folder to execute the script:
node index.js
If all the pieces labored as meant, your server ought to now have acquired an empty webhook response wanting one thing like this:
{ abi: [], block: { quantity: '', hash: '', timestamp: '' }, txs: [], txsInternal: [], logs: [], chainId: '', confirmed: true, retries: 0, tag: '', streamId: '', erc20Approvals: [], erc20Transfers: [], nftTokenApprovals: [], nftApprovals: { ERC721: [], ERC1155: [] }, nftTransfers: [], nativeBalances: [] }
And that’s it; you could have efficiently created a stream monitoring the native Sepolia testnet transactions of the required tackle!
Within the subsequent part, we’ll briefly present you tips on how to check that all the pieces works because it ought to!
Step 5: Take a look at Your Stream
With the Moralis stream lively, your server ought to now begin to obtain webhook responses each time the tackle in query sends a local transaction on the Sepolia testnet. In our case, we added considered one of our MetaMask pockets addresses to the stream. As such, to check that all the pieces is working as meant, we’ll merely ship a small quantity of Sepolia testnet ETH to a different tackle:

As quickly because the transaction is finalized, your server ought to have acquired a response wanting one thing like this:
{ confirmed: true, chainId: '0xaa36a7', abi: [], streamId: 'a6c08210-c7dc-416c-a140-4746478530ce', tag: 'transfers', retries: 0, block: { quantity: '4692430', hash: '0x31754432aa984e524472abb52c05f3175471ae2cb209a751f31e75a9dfab6a94', timestamp: '1699967412' }, logs: [], txs: [ { hash: '0x2fc3678670ee9895dc5dfc5f189f9839ab5c7351905b6d2b419518a5334450a2', gas: '21000', gasPrice: '1639464455', nonce: '9', input: '0x', transactionIndex: '78', fromAddress: '0xa50981073ab67555c14f4640ceeb5d3efc5c7af2', toAddress: '0xb76f252c8477818799e244ff68dee3b1e6b0ace5', value: '100000000000000', type: '2', //… receiptCumulativeGasUsed: '25084154', receiptGasUsed: '21000', receiptContractAddress: null, receiptRoot: null, receiptStatus: '1' } ], //… }
The response incorporates a bunch of knowledge, together with block information, a transaction hash, addresses, the transaction quantity, and far more. And now you can leverage this data to construct a complete real-time pockets tracker very quickly!
In case you’d wish to be taught extra about how this software works and how one can configure your streams in varied methods, take a look at our Streams API documentation web page!
Abstract: Easy methods to Construct a Actual-Time Pockets Tracker
In at present’s article, we confirmed you tips on how to monitor an tackle in real-time utilizing Moralis’ Streams API. And because of the accessibility of this software, we had been ready to take action in 5 simple steps:
- Get a Moralis API Key
- Set Up an Specific Server
- Create a Moralis Stream
- Run the Code
- Take a look at Your Stream
As such, when you have adopted alongside this far, you now know tips on how to arrange your individual streams to observe wallets on a number of blockchain networks with the Streams API. From right here, now you can use your newly acquired abilities to construct your individual on-chain pockets tracker!

In case you preferred this crypto pockets monitoring tutorial, contemplate testing extra content material right here on Moralis’ weblog. As an example, learn in regards to the prime block explorer API or learn to construct on Solana and EVM. Additionally, don’t overlook to enroll with Moralis if you wish to leverage our industry-leading Web3 APIs your self!