An on-chain pockets tracker is a device that lets you monitor the exercise of any crypto deal with in real-time. Nevertheless, from a traditional perspective, repeatedly monitoring wallets and blockchain networks for related occasions has been fairly cumbersome. Luckily, because of the Moralis Streams API, that is now not the case!
With the Streams API, you may effortlessly arrange streams to watch any deal with on any community, permitting you to create your individual on-chain pockets tracker in a heartbeat. To focus on the accessibility of this device, right here’s an instance of easy methods to arrange a stream monitoring a pockets’s native on-chain transactions 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 deal with = “0xa50981073aB67555c14F4640CEeB5D3efC5c7af2”;
await Moralis.Streams.addAddress({deal with, id})
}
streams()
For a extra detailed breakdown of how this works and the way you need to use the Streams API to construct an on-chain pockets tracker, be a part of us on this tutorial or take a look at the Moralis YouTube video under!
Additionally, to make use of the Streams API, you could have a Moralis account. Luckily, you may join with Moralis fully at no cost, and also you’ll get speedy entry to all our industry-leading growth instruments!
Overview
In right this moment’s article, we’ll begin by explaining the ins and outs of on-chain pockets trackers. From there, we’ll bounce straight into our on-chain pockets tracker tutorial and present you easy methods to monitor a pockets in 5 easy steps utilizing Moralis’ Streams API:
Create a Moralis AccountSpin Up a Server Set Up a Moralis StreamRun the ScriptReceive Alerts
Lastly, to prime issues off, we’ll dive deeper into Moralis and discover different instruments past the Streams API, together with the most effective API for crypto costs, our free NFT API, and lots of others! However, with out additional delay, let’s begin by answering the query, “What’s an on-chain pockets tracker?”.
What’s an On-Chain Pockets Tracker?
On-chain pockets trackers are instruments that assist customers observe the exercise of explicit wallets. What’s extra, the most effective pockets trackers normally present alert options, instantly notifying customers of necessary on-chain occasions as quickly as they occur in order that they don’t miss a beat!
There are numerous kinds of on-chain pockets trackers, corresponding to a token portfolio tracker, and most of them have their very own set of distinctive options. Furthermore, some solely present fundamental data, such because the transaction quantity, whereas others give customers extra detailed information, together with all concerned addresses, block data, logs, and far more.
All in all, the core performance of an on-chain pockets tracker is to offer a clear and real-time view of pockets exercise!
![Art image - showing a on-chain wallet tracker app on a mobile device that is receiving alerts](https://moralis.io/wp-content/uploads/2023/11/Art-image-showing-a-on-chain-wallet-tracker-app-on-a-mobile-device-that-is-receiving-alerts-1024x495.png)
So, how does this work?
An on-chain pockets tracker repeatedly screens related addresses and blockchain networks. As quickly as they detect related on-chain exercise, they notify customers, giving them updates in real-time. Nevertheless, organising this method is less complicated mentioned than achieved, so outstanding pockets trackers leverage Web3 APIs to simplify the workflow!
However what’s the finest API for constructing an on-chain pockets tracker? And the way does it work? For the solutions to those questions, be a part of us within the subsequent part as we present you the best method to monitor any pockets deal with utilizing Moralis’ Streams API!
On-Chain Pockets Tracker Tutorial: Learn how to Monitor Any Handle in 5 Steps
The best method to monitor any crypto deal with and construct an on-chain pockets tracker is to make use of Moralis’ Streams API. With the Streams API, you may seamlessly arrange alerts to get notified about Web3 occasions robotically. Moreover, this interface helps over 44 million addresses and contracts throughout all main blockchain networks, together with Ethereum, Polygon, BNB Good Chain (BSC), and lots of others!
![Art image - Creating an On-Chain Wallet Tracker Tutorial](https://moralis.io/wp-content/uploads/2023/11/Art-image-Creating-an-On-Chain-Wallet-Tracker-Tutorial-1024x307.png)
So, how does the Streams API work?
With the Streams API, you may seamlessly arrange your individual personalized streams to get real-time, on-chain occasions despatched instantly to your venture’s backend by way of Web3 webhooks!
However to raised clarify how this works, we’ll merely present you easy methods to monitor a pockets deal with in 5 easy steps:
Create a Moralis AccountSpin Up a Server Set Up a Moralis StreamRun the ScriptReceive Alerts
Now, earlier than we will bounce into the preliminary step of this tutorial, it is advisable to cope with a number of conditions!
Stipulations
Whereas the Moralis SDK and Streams API assist a number of programming languages, this tutorial will present you easy methods to arrange a Moralis stream utilizing JavaScript. We’ll additionally use ngrok to get a webhook URL. Consequently, earlier than you proceed, ensure you have the next prepared:
Node.js v.14+NPM/YarnNgrok
Step 1: Create a Moralis Account
To make use of the Streams API, you could have a Moralis API key. And to get an API key, it is advisable to join with Moralis. As such, if you happen to haven’t already, click on on the ”Begin for Free” button on the prime proper to arrange an account:
![Get Started for Free Button - Create an On-Chain Wallet Tracker](https://moralis.io/wp-content/uploads/2023/11/Get-Started-for-Free-Button-Create-an-On-Chain-Wallet-Tracker.png)
With an account at hand, head on over to the ”Settings” tab, scroll right down to the ”API Keys” part, and replica your API key:
![Moralis Admin UI - Copying the Wallet Tracker Streams API Key](https://moralis.io/wp-content/uploads/2023/11/Moralis-Admin-UI-Copying-the-Wallet-Tracker-Streams-API-Key.png)
Preserve the important thing for now, as you’ll want it within the third step of this tutorial!
Step 2: Spin Up a Server
For the second step, it is advisable to arrange a server that may obtain the Moralis webhooks from the Streams API. And for this, we’ll be utilizing a easy Node.js Categorical app!
So, to kickstart the second step of this tutorial, begin by organising a brand new venture in your built-in growth setting (IDE) and putting in Categorical. From there, create a brand new ”index.js” file within the venture’s root folder 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`);
});
Within the code, we outline a single endpoint referred to as /webhook, to which Moralis can publish the streams. Right here, we parse the physique that Moralis sends and log the response 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();
});
Subsequent, now you can spin up the server by working the next command within the venture’s root folder:
node index.js
In response, you need to now see ”Listening to streams” logged in your console:
![Listening to streams message logged in your console](https://moralis.io/wp-content/uploads/2023/11/Listening-to-streams-message-logged-in-your-console-1024x194.png)
From right here, open a brand new terminal and run the command under to make use of ngrok to open a brand new tunnel to ”port 3000”, the place our server is at the moment working:
ngrok http http://localhost:3000
Executing this command will present you one thing that appears like this, the place you may go forward and replica your webhook URL:
![Console showing webhook URL for wallet tracker](https://moralis.io/wp-content/uploads/2023/11/Console-showing-webhook-URL-for-wallet-tracker-1024x302.png)
Save the URL for now, as you’ll want it within the subsequent step!
Step 3: Set Up a Moralis Stream
With a server up and working, you’re now able to create a Moralis stream. To take action, open a brand new window in your IDE and create a venture folder. From there, go forward and arrange a brand new ”.env” file and add your Moralis API key as an setting variable. It ought to look one thing like this:
MORALIS_KEY=’YOUR_API_KEY’
Subsequent, create a brand new ”index.js” file and add the next code:
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 deal with = “0xa50981073aB67555c14F4640CEeB5D3efC5c7af2”;
await Moralis.Streams.addAddress({deal with, id})
console.log(“Stream efficiently created”)
}
streams()
Within the preliminary a part of the code, we begin by importing Moralis and our surroundings variable:
const Moralis = require(“moralis”).default;
const { EvmChain } = require(“@moralisweb3/common-evm-utils”);
require(“dotenv”).config();
From there, we initialize the Moralis SDK utilizing our API key:
Moralis.begin({
apiKey: course of.env.MORALIS_KEY,
});
We then arrange a streams() operate the place we create an choices object. Right here, we specify a number of parameters, together with chains, description, tag, what occasions to pay attention for, and our webhook URL:
async operate streams(){
const choices = {
chains: [EvmChain.SEPOLIA],
tag: “transfers”,
description: “Take heed to Transfers”,
includeContractLogs: false,
includeNativeTxs: true,
webhookUrl: “replace_me”
}
//…
}
Keep in mind to exchange replace_me above with the webhook URL you copied within the earlier step. And don’t neglect to append it with /webhook on the finish.
Subsequent, we create a brand new Moralis stream by calling the Streams.add() methodology whereas passing our choices object as a parameter:
const newStream = await Moralis.Streams.add(choices)
From right here, we then fetch the id of the stream and create an deal with const to which we add the deal with we wish to hearken to:
const {id} = newStream.toJSON();
const deal with = “0xa50981073aB67555c14F4640CEeB5D3efC5c7af2”;
Lastly, we add the deal with to our newly created stream utilizing the deal with and id constants:
await Moralis.Streams.addAddress({deal with, id})
And that’s it; we at the moment are able to run the script to create the stream!
Notice: the Streams API helps all main EVM chains. So, if you wish to monitor addresses on different networks in addition to Sepolia, you merely have to configure the chain parameter of the choices object above.
Step 4: Run the Script
Earlier than working the script, it is advisable to set up a few dependencies. As such, run the next command in your venture’s root folder:
npm set up moralis @moralisweb3/common-evm-utils dotenv
As soon as they’ve been put in, run this command to execute the code:
node index.js
If every thing labored as meant, you need to obtain a message stating ”Stream efficiently created” in your console:
![Stream successfully created message in your console](https://moralis.io/wp-content/uploads/2023/11/Stream-successfully-created-message-in-your-console-1024x138.png)
You must also get an empty webhook despatched to your server:
{
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’ve gotten now efficiently arrange your individual stream utilizing Moralis’ Streams API!
Within the subsequent part, we’ll present you the way it works and what the response may appear to be!
Step 5: Obtain Alerts
Together with your stream up and working, you’ll obtain webhooks each time on-chain occasions happen based mostly in your specs. As such, for the stream created on this tutorial, you’ll get a real-time response each time the desired pockets sends a local transaction on the Sepolia testnet, and it’ll look 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’
}
],
//…
}
This response incorporates a transaction hash, to and from addresses, the worth of the transaction, and far more. With this data, you may seamlessly create an on-chain pockets tracker that alerts your customers in real-time each time one thing necessary occurs!
To be taught extra about this wonderful device and easy methods to customise your streams additional, take a look at the official Streams API documentation web page!
Past the Streams API and Constructing an On-Chain Pockets Tracker – Exploring Moralis Additional
Moralis is an industry-leading Web3 API supplier, and our suite of premier growth instruments lets you construct decentralized functions (dapps) each sooner and smarter. Consequently, when leveraging Moralis, it can save you a whole lot of growth time and sources!
![Art image - Moralis Logo](https://moralis.io/wp-content/uploads/2023/11/Art-image-Moralis-Logo-1024x904.png)
Our complete suite of Web3 APIs consists of many interfaces you may mix with the Streams API to construct subtle initiatives. And down under, yow will discover three outstanding examples:
NFT API: The NFT API is the {industry}’s premier device for NFT information. With this interface, you may seamlessly fetch NFT balances, transactions, pricing information, and far more with solely single traces of code. Token API: With the Token API, you may effortlessly get and combine token costs, pockets balances, transfers, and far more into your dapps. Consequently, when working with the Token API, it has by no means been simpler to construct every thing from decentralized exchanges to Web3 wallets. Pockets API: The Pockets API is one other useful gizmo you may mix with the Streams API to construct a robust on-chain pockets tracker. This device helps over 500 million addresses throughout all main EVM chains, permitting you to seamlessly get native balances, NFTs, transfers, profile information, and extra from any deal with.
Additionally, all Moralis APIs are totally cross-chain appropriate. Consequently, when working with our instruments, you may construct Web3 initiatives on a number of blockchains, together with Ethereum, BNB Good Chain, Polygon, Chiliz, Gnosis, and lots of different networks!
If you wish to discover all our interfaces, take a look at the Web3 API web page!
Abstract: Learn how to Create an On-Chain Pockets Tracker
In right this moment’s article, we kicked issues off by exploring the ins and outs of on-chain pockets trackers. In doing so, we discovered that they’re crypto monitoring instruments permitting customers to watch the exercise of a crypto deal with. Nevertheless, we additionally discovered that monitoring blockchain networks and addresses is tough with out correct instruments, which is why we launched you to Moralis’ Streams API!
From there, we dove straight into our crypto pockets monitoring tutorial and confirmed you easy methods to monitor a pockets in 5 steps utilizing the Streams API:
Create a Moralis AccountSpin Up a Server Set Up a Moralis StreamRun the ScriptReceive Alerts
Consequently, when you’ve got adopted alongside this far, you now know easy methods to monitor any deal with on any blockchain community with Moralis. Together with your newly acquired abilities, you may seamlessly construct a real-time, on-chain pockets tracker utility in a heartbeat!
By combining the Streams API with our different industry-leading interfaces, you may seamlessly construct extra subtle initiatives. Some outstanding examples embody the NFT API, Token API, Pockets API, and lots of others.
For those who appreciated this tutorial on easy methods to construct an on-chain pockets tracker, take into account trying out extra Web3 content material. As an illustration, be taught all it is advisable to learn about meta transactions or take a look at our Base faucet information! Additionally, don’t neglect to hitch Moralis right this moment. You may create your account fully at no cost, and also you’ll achieve speedy entry to our industry-leading growth instruments!