Build your first discord bot to fetch polygon NFTs without writing code

Build your first discord bot to fetch polygon NFTs without writing code

Overview

Hey there! Welcome to the awesome tutorial on how to integrate your cool Polygon NFTs with Discord and showcase your incredible nfts!

Don't worry; it's super easy to follow the steps in this guide. Once you're done, you'll be able to proudly display your NFTs directly on Discord!

Our goal is to make the whole process enjoyable and user-friendly. We want you to have a blast while sharing your unique NFTs with the awesome Discord community.

So, whether you're a passionate collector, a talented artist, or just curious about NFTs, this tutorial is here to help you exhibit your digital treasures in a fun and visually stunning way on Discord.

Let's get started and show off your masterpieces to the world! 🎨🌟

What We Will Do

  • Configuring our bot service to retrieve data from QuickNode.

What You Will Need

What is QuickNode?

Dive into the vast realm of blockchain networks with QuickNode, where the possibilities are endless. Immerse yourself in the world of:

For developers and businesses seeking to navigate this intricate landscape, QuickNode serves as your guiding light. Gone are the days of grappling with the complexities of infrastructure maintenance. With us, setting up and managing your blockchain nodes becomes a breeze.

Reliability and top-tier performance are the hallmarks of our nodes, perpetually updated with the latest software versions. Our commitment to seamless integration extends beyond node operations; it encompasses a suite of invaluable services.

Embrace the convenience of our infrastructure monitoring and management tools. Unleash the potential of your decentralized applications with our purpose-built APIs. And let our arsenal of web3 tools propel you on an enriching journey.

QuickNode grants developers the freedom to unleash their creativity, liberating them from the burden of underlying infrastructure concerns. So take the plunge and witness the limitless possibilities that await with QuickNode at your side.

What is Discord?

A super popular communication platform where you can chat through voice, video, and text.

People of all ages, 13 and above, love using it to connect with their communities and friends. Whether you're up for some casual chitchat, planning gaming sessions, working on projects together, or just hanging out with like-minded folks, Discord is the perfect place for all kinds of communication and social fun. 🎉💬

Creation of our discord bot

To activate your Discord bot, you will need two specific values: CLIENT_PUBLIC_KEY and BOT_TOKEN, please save these values, we will need them in this section: "Creating a service to retrieve information for our Discord bot".

Here are the steps to obtain these values:

  1. Go to the Discord Developer Portal website. You can access it by visiting discord.com/developers/applications and logging in with your Discord account.

  2. Once you are logged in, click on the "New Application" button to create a new application for your bot. Give your application a name that represents your bot.

    Creating a discord bot

  3. In the left sidebar, select "Bot" under the settings for your application.

  4. Under the "Token" section, you will find your BOT_TOKEN.

  5. Click on the "Reset Token" button.

  6. This token acts as your bot's authentication to the Discord API. Keep this token secure and do not share it publicly.

    Discord Bot Token

  7. To obtain the CLIENT_PUBLIC_KEY, you need to go to the General Information setting. Search for "Public Key" and copy the value.

    Discord Public Key

  8. After that, you need to invite your bot to your discord, to get the invitation, go to the "OAuth2" section and search for the "URL Generator" sub-section.

  9. In this section, you need to check the "bot" and "applications.commands" options. After that, you can see the Bot Permissions, and check the "Administrator" option.

    Generating an invitation to invite our Discord bot to our community

  10. At the bottom, you need to copy this invitation URL.

  11. Discord invitation URL

    In consequence, you need to copy the generated URL and paste it into your browser, and press enter:

    Adding our discord bot to our community

    Granting permission to our bot

  12. You will see a similar screen to the previous image and finally, you can see your bot on your community.

    Bot as Member in our community

  13. To retrieve the information from our discord bot, you need to create these two commands:

    1. /info <address>

      1. You can retrieve the information to retrieve the NFTs associated with your wallet.

        Results of the info command

    2. /retrieve <address> <page>

      1. You can retrieve the information from your nfts with the next parameters:

        1. address: The address you would like to retrieve your nfts.

        2. page: Each page has a limit to seeing 10 nfts, because discord has some limitations on returning messages.

          Results of the retrieve command

  14. To create the commands, you need to go to:
    https://www.site24x7.com/tools/restapi-tester.html

    1. Creating the command "/info":

      Creating the command "/info" on https://www.site24x7.com/tools/restapi-tester.html

      1. In "Method", you need to change the option to "POST"

      2. In "Rest API Endpoint", you need to copy this URL and change the "Application ID" for the parameter returned in the following steps above:

        1. [discord.com/api/v8/applications/[APPLICATIO.. ID]/commands
      3. In "Post Data" you need to check the "JSON" parameter.

        1. Verify if the "raw" option is selected.

        2. Copy this code and paste it as in the image above.

           {
               "name": "info",
               "description": "Get information about the items from your address",
               "options": [
                   {
                       "name": "address",
                       "description": "Address",
                       "type": 3,
                       "required": true
                   }
               ]
           }
          
      4. In "Custom Headers" you need to check the "Yes" parameter.

        1. You will see two fields "Name" and "Value".

          1. In Name, write "Authorization".

          2. In Value, Bot <Token>.

            1. You need to change it with the parameter returned in the steps mentioned above.
      5. Click on the "Test again" button.

      6. To view the response to this petition, you can scroll down.

        Response body from "/info" command

    2. Creating the command "/retrieve":

      Creating the command "/retrieve" on https://www.site24x7.com/tools/restapi-tester.html

      1. In "Method", you need to change the option to "POST"

      2. In "Rest API Endpoint", you need to copy this URL and change the "Application ID" for the parameter returned in the following steps above:

        1. [discord.com/api/v8/applications/[APPLICATIO.. ID]/commands
      3. In "Post Data" you need to check the "JSON" parameter.

        1. Verify if the "raw" option is selected.

        2. Copy this code and paste it as in the image above.

           {
               "name": "retrieve",
               "description": "Retrieve your nfts from Polygon",
               "options": [
                   {
                       "name": "address",
                       "description": "Address",
                       "type": 3,
                       "required": true
                   },
                           {
                       "name": "page",
                       "description": "Set the number of page",
                       "type": 3,
                       "required": true
                   }
               ]
           }
          
      4. In "Custom Headers" you need to check the "Yes" parameter.

        1. You will see two fields "Name" and "Value".

          1. In Name, write "Authorization".

          2. In Value, Bot <Token>.

            1. You need to change it with the parameter returned in the steps mentioned above.
      5. Click on the "Test again" button.

      6. To view the response to this petition, you can scroll down.

        Response body from "/retrieve" command

Obtaining information from QuickNode

Obtaining QUICKNODE_RPC_URL value:

Screenshot of the QuickNode platform for creating your RPC endpoint

- Screenshot of the QuickNode platform to select the desired blockchain to obtain our RPC

Screenshot of the QuickNode platform to select the desired version of the blockchain

Screenshot of the QuickNode platform where we activate the nft api v2 bundle to retrieve the information from our nfts

Screenshot of the QuickNode platform where we install the nft plugin

Screenshot of the QuickNode platform to copy our RPC from the desired blockchain

Creating a service to retrieve information for our Discord bot

You need to go to Render:

Render Dashboard

Afterward, you need to click on "New". In the subsequent steps, you will need to click on the 'Web Service' option.

WebService option on render.com

You will see this dashboard:

Dashboard from render.com to obtain the code from the bot, and subsequently, perform the necessary configuration tasks

In the Public Git Repository section, you can find a white box where you need to paste this code and click on the "Continue" button:

https://github.com/irwingtello/NFTDiscordPolygonBot

Configuring environment variables on render.com

You need to change these values:

  • In Name, you need to write a name for the service.

  • In Build Command, you need to write the next command "npm install".

After defining the above values, we need to scroll down and click on the "Advanced" button.

You need to add the following environment variables:

  • QUICKNODE_RPC_URL.

  • CLIENT_PUBLIC_KEY.

  • BOT_TOKEN.

    Configuring our bot environment variables

Afterward, click on the "Create Web Service" button and you will see the next screen.

Deploying bot service on render.com

Congratulations!. You now have your first bot service online. We need to copy the URL for this bot and paste it into our bot configuration on Discord.

In my case, this is my URL:

https://polygonbot.onrender.com

Setting up our service on Discord

I will save you time!, you need to go to the Discord Developer Portal:

https://discord.com/developers/applications/

Click on the name of your Bot.

Discord Developer Portal

After that, you need to go to the "General Information" section and change the "Interactions Endpoint URL".

You need to paste the URL generated by render.com and add the path "/interactions"

Example:
https://polygonbot.onrender.com/interactions

Discord Developer Portal, General Information

In the consequent step, you need to click the button "Save changes".

After that, you can use your bot in your community!

Exploring your first NFT Discord Bot on your community

Go to any channel on your discord and write this first command: /info, to know how many nfts you have.

/info command from our Discord Bot

After that, you will see this result:

Results from our /info command

Now you have the total pages where you can find your nft data, then you can use this command /retrieve:

/retrieve command from our Discord Bot

As a result, you will be able to see your NFTs:

Results from our /retrieve command

Conclusion

As you explore your first NFT Discord Bot, remember that your creativity is the limit.

Feel free to customize the commands and interactions to further enhance the experience for your community!

We ❤️ Feedback!

If you have any feedback or questions on this guide, let us know. Or, feel free to reach out to us via Twitter or our Discord community server.

We’d love to hear from you!

Author: Irwing Tello
Discord: discord.com/invite/ADjtsHVreT
Twitter: twitter.com/irwingtello
LinkedIn: linkedin.com/in/irwingtello
Email:
Website: dfhcommunity.com
Youtube: youtube.com/@irwingtellomx

You can support my work here:
buymeacoffee.com/irwingtello

BTC: 34kXK9CpTJP1PyHKw2kUD2bt6rtGcG5CHY
EVM Address: 0x8B98F8Ff69d2A720120eD6C71A9Bc5072b8Eb46D
Solana: Ey9oVFHW79giacRZaKxigYjeihMsY7ox8jxc7Hp1sJmS

Did you find this article valuable?

Support Irwing Tello by becoming a sponsor. Any amount is appreciated!