2 min read
Streams is our next-generation blockchain data product, offering robust filtering, access to real-time and historical data, reorg handling, and expanded destination options.
With Streams, you can create similar solutions and enhance them with advanced features. Check out our guide: Stream Blockchain Data to Discord
In this video, our friend Hashlips demonstrates how to create a bot to get real-time NFT Transfer notifications in Discord with the help of QuickAlerts, Node.js, and Discord.js.
The following code example includes the QuickAlerts expression for Sketchy Ape Book Club NFT Transfers, as seen in the video. In your deployment, replace the tx_logs_address
with the address of the NFT contract you want to monitor.
1tx_logs_address == '0xaDC28cac9c1d53cC7457b11CC9423903dc09DDDc'
The tx_from
part of the expression shown in the video has been removed from the example above, as it is not necessary unless you only want your bot to send messages when a particular wallet sends the NFTs.
Following are the code files shown in the video.
const Discord = require('discord.js');
const dotenv = require('dotenv');
const express = require('express');
dotenv.config();
const app = express();
const port = process.env.PORT || 3000;
const webhookClient = new Discord.WebhookClient({
url: process.env.WEBHOOK_URL,
});
app.use(express.json());
app.get('/', (req, res) => {
res.send('Welcome');
});
app.post('/', (req, res) => {
const bodyData = req.body;
webhookClient.send(
'Wow looks like address ${
bodyData[0].from
} just transferred token ID: ${Number.parseInt(
bodyData[0].logs[0].topics.[3],
16
)}
});
console.log(json.stringify(bodyData));
res.send(json.stringify(bodyData));
});
app.listen(port, () => {console.log('Server is running');});
web: node index.js
WEBHOOK_URL=your-discord-webhook-url
We ❤️ Feedback!
Let us know if you have any feedback or requests for new topics. We'd love to hear from you.