So in case you've been living under a rock, or maybe you actually do live in a Castle in Transylvania without Internet so missed all the excitement this week, there's a new NFT project called Sneaky Vampire Syndicate, and it's minting this weekend.
I discovered this project myself last weekend, joined the Discord, and was totally blown away - the energy was incredible and I was so excited I wrote this article about it on Tuesday. Today there are over 35,000 people in the Discord, and with minting coming up on Sunday it's safe to say this is going to be one heck of a launch.
Of course with an NFT project with this much momentum it's safe to say the bots will be coming out to play. And, it turns out the team at SVS has been expecting this and decided to build some pretty slick tech to thwart bots and hopefully make this a better minting experience for all.
I asked if someone from the SVS team would be willing to do a little text interview, woof, their awesome Lead Dev said yes, and here we are. I think this interview is pretty darn fascinating, thanks to SVS for sharing, what you'll read about below I think will likely set a new standard.
🙋♂️ [MORGAN] Before we dive into all the cool stuff to streamline the minting process, can you share a bit about the inspiration behind the project?
🧛♂️ [SVS] The inspiration behind the SVS project came from the idea that there are many profile picture projects already around; you have apes, dogs, cats and rats for example. We noticed that there was a gap in the NFT space: Vampires, the team couldn't believe that there wasn't a proper vampire NFT released yet, so much lore revolves around vampires and it has had a big influence in pop culture over the years. Other than that, the artist we teamed up with is a big fan of vampire movies and the deep lore behind them.
🙋♂️ [MORGAN] Minting has been a mess in the NFT world, what are some of the things you've been doing to make your minting process more streamlined?
🧛♂️ [SVS] Minting is quite straightforward in the NFT space, it is all done through smart contracts through most of the time. There have been some projects that have done it on their own platforms but we have seen that those launches just get eaten by bots when they open up their sale.
Our website UI makes it extremely easy to mint especially for the amount of new entrants to the space that we are experiencing! We believe in the smart contract approach the most as it is the standard but do understand the relevance of these NFT launches are plagued by bots so we decided to do something a little different. We have coded in an anti-bot system so that it is as fair as possible for all our members to get in!
🙋♂️ [MORGAN] Okay, now let's get to the good stuff, you have some pretty interesting anti-bot mechanisms in place, can you share more about what you're doing here to prevent bots from minting?
🧛♂️ [SVS] So our system is simple, but very effective. I'll explain a little bit about how a user will be forced through our flow on the website to call the buy function on the contract. Once a user heads over to our website, connects their web3 wallet, enters the amount of SVS they want (Maxed at 5), the purchasing process serves you a simple challenge, it wont take a long time to solve, neither will it be an existing captcha solution. After the challenge is completed, a request is sent to our API containing data, like address, amount to mint and result. If the challenge was solved correctly, our server will hash a message using keccak256, containing the address, token quantity and a randomly generated nonce to avoid clashes. The hash is signed by our private key, creating a signature. Then these values are sent back to the frontend and the user is prompted to send a transaction through their wallet invoking the buy function with the signature, hash, nonce and amount of tokens.
On the smart contract side we execute a similar process; we use the OpenZeppelin ECDSA library to recover the public key from the signature, then match it to an address set in the contract which is derived from our private key; this way we can verify whether the function invoke came from our website, and not a direct contract call. We also verify whether a hash calculated in the same manner matches against the hash input by the user, so it isn't possible to reuse someone elses signature and opportunity to mint, and then the nonce is stored in a mapping in the contract so a signature/hash combination can't be reused. In our eyes, this way we can prevent flashbot types of attacks, or what happened to the 777 drop as the values are uniquely required per transaction.
🙋♂️ [MORGAN] Do you think more projects will deploy similar anti-bot mechanisms going forward?
🧛♂️ [SVS] Definitely, I think it should be a standard process from now on to try and prevent flashbot attacks or even entirely purchased blocks.
🙋♂️ [MORGAN] Gas prices are a hot topic with mintings, and given how popular SVS already is do you think there's any way to avoid high gas prices or will this just be a reality people need to live with?
🧛♂️ [SVS] Unfortunately, we can't do much about the gas price; our system already slows you down a little bit forcing you through the website and blocking direct contract calls, but anyone can still put the gas to whatever they please. The challenged served will also make it harder for people try and send multiple transactions at the same time, as they will have to solve it every single time. It's just how the network works, like an auction house; the highest bidder gets in first.
🙋♂️ [MORGAN] I always like to end interviews asking for one fun fact about you or the project that people might not know, anything fun/interesting you can share?
🧛♂️ [SVS] So initially, we approached Mig, the artist of the project with the idea of Vampires for an NFT, just as a partnership to work on a project together. But after working with Mig and spending time brainstorming with him, everyone on team considers each other more as a friend than just business partners.
Thanks again to woof from Sneaky Vampire Syndicate for doing this interview and good luck with the launch this weekend! 🚀