If you’re questioning the best way to arrange automated Web3 notification emails however need assistance determining the place to start out, this text is for you! Even when you’re a whole newbie in blockchain growth, we’ll show you how to catch up. In spite of everything, we’ll begin by explaining what Python and Flask are. As soon as we be sure to’re all up to the mark, we’ll tackle an instance challenge the place you’ll have an opportunity to arrange automated Web3 notification emails with Python and Web3 webhooks.
Moralis is the final word Web3 supplier of blockchain APIs. As such, it’s an indispensable instrument if you wish to create decentralized purposes (dapps) rapidly and simply. Moreover, Moralis’ cross-chain interoperability allows you to create multi-chain dapps. You solely have to tweak a single line of code to focus on one other chain. As well as, Moralis allows you to be a part of the Web3 revolution utilizing the legacy instruments you might be aware of. Whereas we’ll give attention to utilizing Python on this article, Moralis helps all main legacy dev platforms, frameworks, and languages. Basically, Moralis allows you to construct sooner and smarter with APIs that bridge the event hole between Web2 and Web3.
Other than its Streams API, which we’ll use to arrange automated Web3 notification emails, Moralis affords a full scope of Web3 APIs. This consists of the final word NFT API, Web3 Auth API, Token API, and extra. So, create your free Moralis account and observe our lead!
What’s Python and Flask?
Python is a transparent and highly effective object-oriented programming language. In some ways, it’s secure to check Python to a number of different coding languages. These embrace Ruby, Scheme, Perl, and Java.
Flask is an online framework, a Python module that allows you to develop internet purposes simply. Additional, Flask has a small and easy-to-extend core. In spite of everything, it’s a microframework that doesn’t embrace an ORM (object relational supervisor) or options associated to ORM. Nonetheless, Flask has many glorious options. As an example, it consists of URL routing and a template engine. As well as, word that Flask is an online server gateway interface (WSGI) internet app framework. Furthermore, this Python framework was developed by Armin Ronacher, who led Poocco – a workforce of worldwide Python lovers. Therefore, it’s not stunning that Flask is predicated on two different Poocco initiatives – the Werkzeg WSGI toolkit and the Jinja2 template engine.
Set Up Automated Web3 Notification Emails with Python and Moralis’ Streams API – Instance Challenge
Now that you understand what Python and Flask are, it’s time we present you the automated Web3 notification electronic mail setup course of. Nonetheless, we imagine it’s only truthful when you first see the tip results of utilizing Python and Moralis for this objective. Therefore, let’s do a fast demo of our instance backend dapp earlier than illustrating the best way to arrange automated Web3 notification emails!
Setup of Automated Web3 Notification Emails – Demo
To exhibit the outcomes of automated Web3 notification emails, we’ll use a Gmail account, a blockchain explorer (PolygonScan), and the preferred Web3 pockets – MetaMask.
First, let’s take a look at the next screenshot, which demonstrates that we’re beginning with an empty electronic mail inbox:
We open the PolygonScan (for the Mumbai testnet) explorer since Mumbai is the testnet the place our good contract lives. As you might know, blockchain explorers additionally allow you to work together with deployed good contracts. Therefore, we open the web page for our instance good contract’s deal with and choose the “Write Contract” possibility contained in the “Contract” tab:
Then, as you may see within the above screenshot, we enter “2” (this may very well be any quantity our stability can cowl) within the “newDonation” subject and hit the “Write” button. This button triggers our MetaMask extension, which is related to the Polygon Mumbai testnet. As you may see above, we have to affirm the transaction notification by clicking on the “Verify” button. After this motion, our terminal notifies us that an electronic mail has been despatched:
After we return to our electronic mail inbox, we are able to see the “New Donation” electronic mail:
Lastly, let’s additionally verify the small print of this instance notification electronic mail:
Trying on the above screenshot, you may see that we’ve arrange automated Web3 notification emails that embrace donors’ pockets addresses and the quantity they donated in MATIC (native forex for the Polygon chain).
When you’d prefer to arrange this type of electronic mail notification automation for on-chain occasions, be sure that to roll up your sleeves and observe our lead all through the sections under.
Learn how to Set Up Automated Web3 Notification Emails with Python and Moralis’ Streams API – Step-by-Step Tutorial
On this a part of in the present day’s article, you’ll have an opportunity to observe our lead as we information you thru the next 4 phases:
Set Up FlaskInitial Setup of Moralis and the Streams APIReceive Web3 WebhooksAutomate Emails
We’ll offer you screenshots that can assist you correctly full every of the above 4 phases. Nonetheless, on the backside of this text, you may as well discover a detailed video tutorial on the best way to arrange automated Web3 notification emails. Be aware that we’ll sometimes consult with particular timestamps of that video transferring ahead.
Set Up Flask
For readability, we encourage you to observe our instance and use Visible Studio Code (VSC). Subsequent, create the “automateEmails” folder and open it in VSC. Then, you can begin your Python digital setting by coming into the next command:
python3 -m venv venv
The above command will create a “venv” folder contained in the “automateEmails” folder:
Transferring on, you need to run this command line:
As a affirmation that you just’ve efficiently activated your digital setting, it’s best to see “(venv)” in your terminal:
Along with your digital setting operating, proceed by putting in the most recent model of “pip” with the next command:
pip set up –upgrade pip
Subsequent, it’s time to put in all dependencies. Therefore, enter this command:
pip set up flask flask_cors
With the dependencies put in, go to your challenge tree and create a brand new Python file. Be at liberty to name it as you please. Nonetheless, to keep away from any confusion, it is perhaps safer to make use of the identical title as we – “backend.py”:
Then, import a pattern Flask app utilizing the next traces of code:
from flask import Flask
from flask import request
from flask import jsonify
from flask_cors import CORS
app = Flask(__name__)
if __name__ == “__main__”:
app.run(host=”127.0.0.1″, port=3000, debug=True)
The above template code consists of an endpoint you need to use as a webhook URL. As such, you may ship blockchain occasions as webhooks to that endpoint utilizing Moralis’ Streams API. By this level, you understand that the latter is the important thing to setup automated Web3 notification emails the straightforward manner.
Preliminary Setup of Moralis and the Streams API
Transferring on, you’ll want so as to add correct performance to deal with the Web3 webhook you’ll obtain from Moralis. As such, you’ll be including a lot of the further code inside “@app.route” (see above). Nonetheless, first, it’s good to full the preliminary Moralis setup. Thus, be sure to have your Moralis account up and operating. In case you haven’t created it but, you need to use the hyperlink said on the outset or click on on the “Begin for Free” button on Moralis’ homepage:
Along with your Moralis account prepared, you’ll be capable of entry your admin space. There, you’ll need to choose the “Streams” tab from the aspect menu. As soon as on the “Streams” web page, you need to click on on the “New Stream” button:
Within the subsequent step, you get to pick one of many stream templates or create one from scratch, which is what we’ll do to arrange automated Web3 notification emails. Therefore, be sure that to click on on the “Create From Scratch” button:
Subsequent, you’ll have to enter the small print for the good contract in query. After all, you need to use any good contract you would like. Nonetheless, for the sake of this instance challenge, we suggest you give attention to the above-presented “donationExample” good contract (4:39). You may receive all the small print concerning this good contract by utilizing the above-seen PolygonScan web page. On the prime, it’s good to paste the contract’s deal with:
As you may see above, you additionally want to provide your stream an outline. Then, you additionally want to offer your webhook URL, add a tag, and choose networks. With all the small print in place, you’ll be capable of hit the “Create Stream” button. For extra particulars, use the video under, beginning at 5:26.
Obtain Web3 Webhooks
With the above stream created, you’ll be capable of begin receiving Web3 webhooks mechanically. To see this in motion, be sure that to observe the video under (9:12) and execute an instance donation. If you wish to do that, you’ll want a MetaMask extension and a few check MATIC, which you will get utilizing the Polygon faucet. Basically, you’ll get to execute the identical steps as offered within the above demonstration.
Because you haven’t arrange automated Web3 notification emails but, you’ll solely view the ends in your terminal. Nonetheless, you’ll see that you just get all the knowledge you want. Therefore, you solely have to set off “electronic mail sending” and embrace the specified particulars (donor’s deal with and donated quantity) in these notification emails.
At 11:57 of the video, you may as well learn to pause your streams whereas nonetheless growing your dapp:
Automate Emails: The Setup of Automated Web3 Notification Emails
To finish the ultimate stage of in the present day’s tutorial, it’s good to refocus on the “backend.py” script. First, it’s good to import “EmailMessage“, “ssl“, and “smtlib” on the prime. Subsequent, you have to initialize some key variables. In the end, that is how the highest twelve traces of “backend.py” ought to appear to be:
from flask import Flask
from flask import request
from flask import jsonify
from flask_cors import CORS
from electronic mail.message import EmailMessage
emailPass = “”
electronic mail = “”
emailReceiver = “”
Trying on the traces of code above, you may see that it’s good to present your electronic mail deal with subsequent to “electronic mail” and “emailReceiver”, like so:
After all, you could possibly ship notification emails to any electronic mail deal with (or record of addresses) you need. Nonetheless, be sure that to make use of the video under, beginning at 13:13, and learn to receive your “emailPass” from Gmail.
Lastly, it’s time so as to add the required traces of code inside “@app.route”:
particulars = request.json[“txs”]
for donation in particulars:
quantity = int(donation[‘value’])/1000000000000000000
em = EmailMessage()
em[‘From’] = electronic mail
em[‘To’] = emailReceiver
em[‘Subject’] = topic
em.set_content(donation[‘fromAddress’] + ” has simply despatched you ” + str(quantity) + ” in MATIC!”)
context = ssl.create_default_context()
with smtplib.SMTP_SSL(‘smtp.gmail.com’, 465, context=context) as smtp:
smtp.login(electronic mail, emailPass)
smtp.sendmail(electronic mail, emailReceiver, em.as_string())
Once more, we suggest you employ the video under for a extra detailed code walkthrough. Furthermore, you may entry the ultimate code on GitHub. Final however not least, right here’s the video tutorial containing all the small print required to efficiently arrange automated Web3 notification emails:
Learn how to Set Up Automated Web3 Notification Emails with Python – Abstract
We lined fairly a distance in in the present day’s article. Beginning with the fundamentals, we answered the “what’s Python and Flask?” query. Then, we dove proper into the method of establishing automated Web3 notification emails. As such, you noticed that an electronic mail is shipped informing us about that on-chain occasion as quickly as an on-chain transaction is executed. Lastly, we additionally took you thru the 4 primary phases it’s good to full to arrange automated Web3 notification emails. Consequently, you now know the best way to simply take heed to good contract occasions and make sure that these occasions set off notification emails.
If , use the Web3 Python SDK documentation, our blockchain-development movies, and our crypto weblog to increase your data of blockchain growth additional. These retailers offer you numerous tutorials and blockchain growth subjects. As an example, a number of the newest articles cowl Web3 Python growth, blockchain infrastructure corporations, blockchain infrastructure as a service, and far more. Plus, the weblog additionally covers newly launched blockchain networks. With newly launched blockchain networks, many are questioning if one other chain will push Ethereum off the leaderboard amongst programmable blockchains. If you’re a kind of, try our articles exploring the Palm community and the next-gen L2 blockchain for Ethereum – Optimism. You may as well enroll in Moralis Academy to develop into blockchain licensed. You can begin with blockchain fundamentals on the academy or give attention to extra superior programs, similar to Ethereum dapp programming.