Onboarding screen with wallet connect and bot setup buttons.
A listing notification in discord with the NFT details.
User profile page and private key setup for purchases from discord and auto sniping.
List of discord commands.
Notification/Sniping settings for collections being watched.
Collections stats and predictive metrics are displayed on all the collection cards.
Buying the NFT directly from discord using the Buy Now button.
Our team has been roaming the Solana NFT space long enough to know that NFT tools are a necessity in being successful. While the grind, manual mints and snipes are novel for a few months, in the long run it can become taxing. To mitigate this and remain fully active, we decided to dive deeper and develop our own collection watching and sniping tool that seamlessly integrates with the leading NFT space communication tool - Discord.
What it does
Solset.io uses the Magic Eden API to allow users to add a watchlist of specific collections from Magic Eden onto their dashboard in it's webapp.
The user can then set different variables (floor price, sol budget, number of snipes, rarity) to each distinct collection. The user can then choose whether to be notified or whether to auto-snipe the asset that fulfills the rules set for that collection.
In order to maximize the efficacity of the tool it was essential to integrate it with Discord. As a communication tool it is the core of NFT projects and allows users to operate from a single point instead of having to open a browser to initiate critical actions. The tool is designed to take on the role of a discord bot with all notifications appearing within the selected channel on the Discord server.
We've done our best to make onboarding as effortless as possible, with the Discord bot doing the basic setup automatically.
If the user sets the tool to auto-snipe they will be notified of the snipe and if they set to only notify they will have access to a “BUY” button within discord where they can manually initiate the purchase.
How we built it
With blood, sweat, and lots of caffeine!
We started off with a vision based on what we identified to be needs for tooling in the NFT market space, and added on (in a reasonable manner) different wants that we gleaned from talking to other people in the Solanaverse.
We opted for a simple web3 enabled SPA coupled with Discord notifications and interactions through a custom bot. As a programming language and frontend framework we picked node.js and React.js out of familiarity, as well as for the fact that they are hands down the easiest coupling of technologies to get from 0 – MVP for web3 development.
For our backend we opted for mongoDB and redis, one for flexibility and scalability, and the other for speed (caching, pub/sub, and fast querying over indexed hashes and timeseries).
The platform is based on a microservice architecture, with each critical operation separated out into it's own service. This made it possible to scale each service as required by spawning them in cluster mode. We used redis pub/sub as a quick and dirty messaging system between the services.
We leveraged express.js to build a simple but powerful API to serve all the queries coming from the frontend, splitting requests between mongoDB database calls and redis queries.
Challenges we ran into
One of the major challenges we ran into was pulling data from the ME APIs in a timely manner while still respecting the rate limits! Even with an increased limit of 300 requests/min we were far from reaching enough throughput to reliably get listing information within 10 seconds of a token being listed, let alone at scale.
We ended up resorting to proxying our way out of this conundrum, and can now reasonably scale up the number of collections being watched at a time while staying within 10 seconds from listing to notification.
Secondary to the rate limits, we spent a long time figuring out how to wrangle all the data from the ME API and fill in the missing data from other sources. We went from setting up puppeteer servers to make XHR requests on the ME pages to pull rankings, to looping over API requests to get listing counts. We finally settled for getting NFT rankings and metadata straight from Howrare.is and Moonrank.app, which we now store locally for collections being watched.
Needless to say, the time crunch with respect to the scope of the project we decided to undertake was one heck of another challenge, with just one developer working on the project.
Accomplishments that we're proud of
We've succeeded in building a team that is passionate about the Solana NFT space, with each bringing their own expertise and attributes to the table in building new tools that are aimed at bringing value to all Solana users.
We've developed a tool that was first meant for personal use, but as we see it there is value in enhancing it and building upon these foundations so that it can ultimately be accessible to the whole of the Solana space.
What is more, participating in the hackathon was a benchmark for our team! It has solidified our conviction to keep building in the Solanaverse and has solidified our ambition in being successful in doing so - this has been a catalyst for us to keep working towards leaving our own mark in the metaverse.
What we learned
We discovered that building a team to develop a Web3 interface is challenging but extremely rewarding. It took the skills of each and every member to develop a product that we were all satisfied with and proud to showcase. Of course, this will only be the beginning of the journey and we know that there is a lot more learning to be done, first in terms of Web3 development but also in terms of collaborating with the community and channeling the creative magic it can trigger. We look forward to more adventures ahead.
What's next for Solset.io
Development for Solset.io is only beginning. The current version is only an Alpha, and we have defined a set of goals for what we aim to achieve in terms of building upon this iteration. The next steps are:
Increase the efficiency of our system by building directly on websocket RPCs. This will allow us to increase the accuracy and throughput of our data, with immediate updates on transactions on the Solana blockchain with regards to NFTs. Doing so will make it possible to cut down on resource consumption as well as streamline our data models. Needless to say, this will also reduce our time delta from list to notification to purchase, making us competitive in the market against other bots and sniping tools.
Implement a non-custodial model for performing transactions on behalf of our users without having to store any private keys, increasing trust and allowing us to reach a wider audience. We still have much to learn when it comes to web3 transactions on Solana and this will probably be the most challenging aspect of the roadmap.
Design a suite of analytics tools for Solana NFTs with a clean and simple user interface for users to more easily follow their investments and keep track of up and coming projects. Using the websocket RPC will allow us to crunch numbers and apply machine learning models in near real time, making it possible to bring market signals to our users as fast as we can find them.
Create tools aimed at underlining the variables (doxxing, launchpad used, mint price, quantity, mint period etc…) that make a collection more likely to succeed in order to statistically predict the success or failure of new projects.
Grow the team and community around Solset.io to bring in like minded, goal oriented human beings with a good dose of humor to keep pushing forward and building Solset.io into a product that fulfils the needs of NFT enthusiasts in the Solanaverse.
We'd like to thank the team at MagicEden and Devpost for the opportunity to participate in this Hackathon. It has been the impetus that we needed to get this project off the ground and into the metaverse, and although it has been a grind, every minute has been a fantastic a learning experience.
We'd also like to stress once again that Solset.io is at a very early stage of development, and should you have any issues getting onboarded, please give us a shout on telegram at https://t.me/irwynks.
Log in or sign up for Devpost to join the conversation.