Are you searching for a seamless strategy to create a NodeJS Telegram bot? If that’s the case, you might be exactly the place you should be! This NodeJS Telegram bot tutorial will present you learn how to create one for relaying real-time blockchain switch occasions! Due to Moralis, it is possible for you to to construct this NodeJS Telegram bot in solely three steps:
Making a Backend ServerSetting Up a Moralis StreamBuilding the NodeJS Telegram Bot
If you want to leap straight into the code, take a look at the NodeJS Telegram bot GitHub repository beneath:
Full NodeJS Telegram Bot GitHub Repo – https://github.com/MoralisWeb3/youtube-tutorials/tree/predominant/automated-telegram-nft-transfer-bot
Overview
We’ll begin off this text by diving into the intricacies of Telegram bots. From there, we are going to briefly look at the instruments and sources required for constructing a NodeJS Telegram bot. As such, we’ll concentrate on Moralis and the Web3 Streams API. Subsequent, we soar straight into the NodeJS Telegram bot tutorial, protecting the method of constructing one from begin to end. So, if you wish to create your very personal NodeJS Telegram bot, observe alongside all through this text!
If in case you have additional curiosity within the Web3 improvement house, we suggest exploring Moralis additional. The Streams API is just one device that may help your improvement endeavors. One other instance is the NodeJS EVM API, which may turn out to be useful at any time when creating EVM-compatible initiatives. Together with its Web3 APIs, Moralis presents further Web3 sources, equivalent to glorious blockchain improvement content material. If this pursuits you, take a look at our guides on the Verse programming language or find out how Web3 get occasion logs to work!
Earlier than persevering with, enroll with Moralis, as you want an account to observe alongside on this NodeJS Telegram bot tutorial. Creating an account is free, and you’ll instantly leverage the facility of blockchain know-how!
What’s a Telegram Bot?
Earlier than displaying you learn how to create a NodeJS Telegram bot, the article will initially discover the ins and outs of those bots. So, what precisely is a Telegram bot?
In brief, a Telegram bot is a program that acts like a standard chat associate however comes outfitted with further features. Bots can carry out predefined duties with none consumer involvement. Moreover, a Telegram bot can do all the things a human chat associate does both robotically or on explicit requests. This consists of fundamental performance equivalent to relaying info like textual content messages, movies, photos, or another information.
Consequently, with a Telegram bot, it’s attainable to automate real-time alerts to inform customers when one thing of curiosity occurs, which is strictly what we are going to present you learn how to do on this article!
How Can You Construct a Telegram Bot?
With a short introduction to Telegram bots, you would possibly ask your self, ”can I construct a Telegram bot with JavaScript?”. Effectively, the reply to this query is sure! To point out you ways that is executed, we are going to show learn how to create a simple NodeJS Telegram bot that listens to and relays real-time information relating to blockchain occasions utilizing Moralis!
With a purpose to get the knowledge regarding the on-chain occasions, we are going to use the Web3 Streams API. With this improvement device, you may stream blockchain information straight into your backend server by way of Web3 webhooks. From there, we are going to educate you learn how to ship notifications about these occasions via a Telegram bot!
So, if you wish to learn to create a Telegram bot, be part of us within the following NodeJS Web3 tutorial as we break down the method from begin to end!
Tutorial: Construct a NodeJS Telegram Bot
With a extra complete understanding of Moralis’ Streams API, this part will dive into the central a part of this text. The NodeJS Telegram bot we’re about to construct makes use of a Web3 stream to watch EVM occasions and autonomously ship messages to your Telegram channel. Furthermore, on this tutorial, we are going to present you learn how to take heed to all transfers of the “Doodles NFT” good contract.
Due to the accessibility of Moralis, the Streams API, and the NodeJS SDK for Web3, you can be to construct this Telegram bot in three simple steps:
Making a Backend ServerSetting Up a Moralis StreamBuilding the NodeJS Telegram Bot
By following alongside on this NodeJS Telegram bot tutorial and finishing the aforementioned steps, you’ll learn to monitor blockchain occasions and obtain messages associated to on-chain occurrences. From there, you may observe the identical workflow to watch any good contract occasions on all blockchain networks!
Nonetheless, when you want watching movies to teach your self, you too can take a look at the clip beneath from Moralis’ YouTube channel. On this video, one among Moralis’ proficient software program engineers takes you thru your complete course of from begin to end:
Now, earlier than leaping into step one of this NodeJS Telegram bot tutorial, the following part briefly covers the tip outcomes. Doing so provides you a extra profound understanding of what you might be working in the direction of, making it simpler to visualise what the code does!
Construct a NodeJS Telegram Bot – What Are You Working Towards?
Earlier than displaying you learn how to arrange the backend for the NodeJS Telegram bot, we are going to initially present you the way it works. As such, allow us to instantly take a better have a look at the tip consequence:
Because the picture above illustrates, you’ll arrange a brand new Doodle NFT bot channel, to which the bot returns the response from the Web3 stream. You may as well see a few transactions despatched to the channel. These responses comprise from/to addresses, a token merchandise, and a transaction hash. Nevertheless, that is solely a number of information returned from the Web3 stream. As such, you may select from the response to customise the messages as you see match.
Nonetheless, that covers the tip outcomes, and also you now know what you might be working towards. Should you discovered this attention-grabbing and need to create your personal NodeJS Telegram bot, be part of us as we soar straight into step one of the tutorial!
Step 1: Making a Backend Server
To kickstart this NodeJS Telegram bot tutorial, begin by launching your most popular built-in improvement surroundings (IDE), arrange a brand new NodeJS undertaking, and create a folder referred to as ”backend”. You possibly can then add a brand new file referred to as ”index.js” to the aforementioned folder and enter the next contents:
require(“dotenv”).config();
const specific = require(“specific”);
const app = specific();
const port = 5001;
app.use(specific.json());
app.put up(“/webhook”, async (req, res) => {
const webhook = req.physique;
console.log(webhook);
return res.standing(200).json();
});
app.pay attention(port, () => {
console.log(`Listening for NFT Transfers`);
});
With this code, we initially require the required dependencies and specify that your Categorical server will run on “localhost 5001“. What’s extra, the code on the far finish additionally ensures that we take heed to this server by calling the ”app.pay attention()” operate whereas passing the ”port” variable as an argument. The code additionally introduces the ”/webhook” endpoint, which you should begin in your system. Nevertheless, earlier than doing so, we should guarantee we will put up to this webhook. You possibly can accomplish this through the use of “ngrok” to create a tunnel to your native machine, which means anybody can entry the endpoint over the web.
To take action, you initially want to put in ngrok, which you are able to do by opening a brand new terminal and operating the next command:
brew set up ngrok/ngrok/ngrok
From there, it’s essential to additionally set up the ngrok dependencies in your ”backend” folder. As such, ”cd” into ”backend”, enter this command, and hit enter:
npm i ngrok
With the dependencies put in, the following factor you should do is run the next command utilizing port 5001:
ngrok http 5001
It will return a URL, which you should copy and save for the following step:
Nevertheless, earlier than concluding this preliminary step of the NodeJS Telegram bot tutorial, it’s essential to run the Categorical server. As such, open a brand new terminal, ”cd” into the backend folder, and begin by putting in the required dependencies utilizing this command:
npm i dotenv specific node-telegram-bot-api nodemon
Subsequent, all that is still is so that you can launch the server by inputting the next and hitting enter:
npm run begin
Step 2: Setting Up a Moralis Stream
With the server up and operating, the following step is to create a brand new Moralis stream. As such, you probably have not already, enroll with Moralis instantly and log in to the admin panel. You possibly can then click on on the ”Streams” tab and choose ”Create a brand new stream”:
Subsequent, decide the ”Create it from Admin” choice and enter the deal with of the good contract you wish to monitor (in our case, we fetch the Doodles contract deal with from Etherscan):
From there, progress to the ”Stream Configurations” half and fill within the enter fields. To start with, add the ngrok URL from the earlier step to the ”Webhook URL” area and embody the ”/webhook” endpoint. Subsequent, add an outline and tag of your alternative:
When you end the stream configurations, select the community you want to monitor. On this case, we are going to go for the Ethereum mainnet:
After you have chosen the community you have an interest in, transfer on to the fourth step, and verify the ”Contract interactions (logs)” field for the deal with exercise:
Lastly, for the final step, it’s essential to add the ABI of your contract. Should you need assistance fetching this info, you may go to Etherscan, navigate to the contract you have an interest in, click on on the ”Contract” tab, and scroll all the way down to the ”Contract ABI” half:
When you paste the ABI, Moralis will autonomously present you the subjects you may stream. On this case, because you need to monitor the transfers of the Doodles contract, verify the ”Transfers(deal with,deal with,uint256)” field:
That’s it for the stream! As quickly as you launch it, you may transfer again your IDE, open a brand new terminal, and you need to shortly be receiving responses consisting of assorted switch occasions:
Step 3: Constructing the NodeJS Telegram Bot
With the responses trickling into the backend server by way of the Moralis stream, it’s time to arrange the NodeJS Telegram bot. This third step of this tutorial is split into two sections:
Creating the Bot Connecting it with the Code
As such, with out additional ado, allow us to soar straight into the method of organising the bot!
Creating the Bot
The very first thing it’s essential to do is open Telegram, seek for ”Bot Father”, and begin a dialog. As quickly as you begin the dialog, you need to discover a begin button on the backside of the interface. When you hit this button, it ought to end in an interface just like the one proven beneath:
From there, you may create a brand new bot by hitting ”/newbot” and selecting an acceptable identify:
Subsequent, ”Bot Father” will question you for a username, and it wants to finish with ”_bot”:
You’ll instantly discover a token API once you hit enter and create the bot. Copy this worth and put it aside for later:
Lastly, create a brand new Telegram channel and add the bot as an administrator. You are able to do so by clicking on the three dots on the high, hitting ”Data”, choosing ”Administrator”, and lastly, hitting ”Add Admin”:
That’s it for the bot itself! All that is still from right here is connecting it with the code and the Web3 stream!
Connecting it with the Code
Now that you’ve the bot at your disposal, it’s essential to additionally add it to the code. To take action, begin by creating a brand new ”.env” file and including the entry token as an surroundings variable. It ought to look one thing like this:
TELEGRAM_BOT_TOKEN = “589017050…”
From there, change the contents of ”index.js” with the next code snippet:
require(“dotenv”).config();
const specific = require(“specific”);
const TelegramBot = require(“node-telegram-bot-api”);
const app = specific();
const port = 5001;
const TELEGRAM_BOT_TOKEN = course of.env.TELEGRAM_BOT_TOKEN;
const bot = new TelegramBot(TELEGRAM_BOT_TOKEN, { polling: true });
app.use(specific.json());
app.put up(“/webhook”, async (req, res) => {
const webhook = req.physique;
for (const nftTransfer of webhook.nftTransfers) {
const fromAddress = `From deal with: ${nftTransfer.from.slice(
0,
4
)}…${nftTransfer.from.slice(38)}`;
const toAddress = `To handle: ${nftTransfer.to.slice(
0,
4
)}…${nftTransfer.to.slice(38)}`;
const tokenItem = `Token Merchandise: ${nftTransfer.tokenName} #${nftTransfer.tokenId}`;
const transactionHash = `Transaction Hash: ${nftTransfer.transactionHash}`;
const chatId = “REPLACE_ME”;
const textual content = `${fromAddress}, ${toAddress}, ${tokenItem}, ${transactionHash}`;
bot.sendMessage(chatId, textual content);
}
return res.standing(200).json();
});
app.pay attention(port, () => {
console.log(`Listening for NFT Transfers`);
});
Lastly, the ultimate step is changing ”REPLACE_ME” on line 29 along with your chat ID. To get this ID, go to the endpoint down beneath:
https://api.telegram.org/botTOKEN_API/getUpdates
Nevertheless, make certain to exchange ”TOKEN_API” along with your precise token API. Doing so ought to take you to a web page wanting one thing like this:
As such, all you should do from there’s copy the chat ID, enter it into the code, and begin the server as soon as once more with the next terminal enter:
npm run begin
Congratulations! You now know learn how to arrange a NodeJS Telegram bot from scratch! If all the things works as supposed, all switch occasions ought to be relayed and despatched to the Telegram channel.
Should you had bother at any level throughout this information, please take a look at the video from the ”Tutorial: Construct a NodeJS Telegram Bot” part. This video breaks down the code in additional element, hopefully answering any of your queries. You may as well discover the entire NodeJS Telegram bot GitHub code down beneath:
Full NodeJS Telegram Bot GitHub Repository – https://github.com/MoralisWeb3/youtube-tutorials/tree/predominant/automated-telegram-nft-transfer-bot
Abstract – How you can Construct a Telegram Bot Utilizing NodeJS
On this article, we started by protecting the ins and outs of Telegram bots. From there, we explored Moralis and the Streams API, as this is among the instruments used all through this tutorial. From there, we dove straight into the NodeJS Telegram bot tutorial, the place we demonstrated learn how to create one in solely three steps:
Making a Backend ServerSetting Up a Moralis StreamBuilding the NodeJS Telegram Bot
As such, you probably have adopted alongside this far, you now know learn how to create a NodeJS Telegram bot relaying info relating to blockchain occasions! What’s extra, if you wish to take a look at the complete code, go to the NodeJS Telegram bot GitHub repository!
Should you discovered this tutorial instructive, be happy to study Web3 programming additional right here at Moralis’ Web3 weblog. For example, take a look at our articles on learn how to create a blockchain Discord bot or learn concerning the intricacies of danksharding.
Nonetheless, it doesn’t matter if you’re seeking to construct a NodeJS Telegram bot or another Web3 initiatives; enroll with Moralis now! You possibly can create your account without spending a dime, and it solely takes a few seconds!