It has been 91 days since the launch of Hive Punks.
I have had a lot of time to think of what went wrong, what went right, and what I would do differently. While I expected to have a good turn out since most people know me here on Hive and the announcement just prior to Hivefest, I did not expect it to sell out in 36 hours.
This was of course the best possible outcome, but it did create a unique situation where I had to baby sit the launch while hanging out at Hivefest and some third party technical issues cropped up that caused a lot of delays.
Now that around 3 months have passed, I have had time to think about things and work on some improvements for Hive Punks.
When I originally came up with the idea of Hive Punks, I planned on knocking it out in 1-2 days. It was a proof of concept to show that Hive can do large scale NFT projects and to break the mold. Within the first day of developing I came up with more and more ideas to provide a better experience.
Some of these were great ideas, and some I regret. One of the ones that took a large portion of my time was what I called Real-Time Rarity, something I have never seen attempted. With this, every Punk's rarity updated in real time as new Punks were minted. This was really cool from a user standpoint as well as technology point of view. It didn't come without side effects.
While Real-Time Rarity worked really well in my tests with well over 10,000 NFTs being speed minted, at launch it possed problems. The third party system I used to handle this started to choke causing the metadata process to fall behind.
During the launch there were two processes running in parallel, the first was the minting. This process monitored the Hive blockchain for Hive transfers to @punksonhive. It would validate the transfer and then mint the NFTs on Hive Engine.
Due to the fact I had no guarantee what the next NFT ID was, I created a second process to run after the minting process. This process would monitor the Hive Engine blockchain for new PUNK nfts and collect the metadata via IPFS. Doing things this way assured I knew the correct NFT IDs to insert into my database. This database maintained all the NFT ids and their metadata to calculate rarity and provide fast access to NFT details. Without this, everything would depend on IPFS which would have caused a lot of performance problems.
The main reason to have a second process was because the minting process did not return an NFT ID that was minted. In fact, it didn't even guarantee anything got minted. This is due to the fact everything on Hive Engine is a custom JSON that then gets validated and then processed if the criteria is met. This second process was necessary to know without a shadow of a doubt, what the NFT ID is. I could have just used the next ID in line, but this created a risk of data becoming de-syncronized, the risk was microscopic, but it was there.
I don't think I would have done this differently going forward, it worked really well. The Real-Time Rarity though required a lot of clever design and programming and ultimately didn't matter since all Punks were sold out and ultimately stammped with their final rarity within 36 hours.
In addition to Rare-Time Rarity, another unique thing I did was guarantee every single NFT was provably fair and no one got an unfair advantage. I couldn't even tell what was going to happen until a Punk was minted on the blockchain. While my primary reason for doing this was to provide trust, I also wanted to prove a point that it could be done where almost all NFT projects don't have this level of trust and validation.
Data integrity was critical to me, I wanted to make sure every NFT minted properly and all metadata was accounted for properly. I am extremely happy with the results, while there were a few problems most came out perfect. These "problems" actually turn into collectables as people love to have unique defects.
There are a couple unique "glitches" that happened due to oversights on my part.
One of them for example is Punk #1773. You can see here the "spots" blemish leaked through the hat. This is due to the order the layers were stacked to create the final image. I did a lot of testing to come up with the best way to layer images to prevent overlaps. I messed up with blemishes, and in some combinations you get artifacts like this.
There is one NFT that the image didn't generate, and it is just a white square. I'm not going to tell you which one, but there is one. The IPFS data property for the NFTs is set to write once (I chose this) and these "defects" can't be "corrected". To some, this makes them more valuable.
As I said, this project was originally 1-2 days, to build a clone of Crypto Punks for Hive since we were one of the few blockchains that have not done it yet. After I started, I really wanted to build more and make it better than the original idea. The scope of the project grew quickly so I had to focus on what was most critical for launch so I can have it done by Hivefest.
One thing that proved to be very difficult is image hosting. Hive Punks are 2.5KB images, very tiny images compared to most and shouldn't pose any problem, even with 10,000 of them. The backend I used (Supabase) had a lot of problems though and during launch I was getting constant data outages that I could never get an answer to. I ended up having to make some real-time shifts to move image hosting multiple times to come up with a stable solution. Because these images were initially fetched from IPFS, this was a slow process. I did a few work arounds to resolve this and the problem went away. Shortly later I made some tweaks to eliminate image hosting costs.
Believe it or not, Hive Punks was created with zero costs. This was important to me, not to be cheap but to prevent a lifetime dependency of reoccuring fees. While I wanted to prevent any reoccuring costs, performance degration was not acceptable. Many things were done to assure fantastic performance and reliability, all without introducing reoccuring fees.
One of the problems I ran into is a Hive Engine testnet. There is was only one publicly available testnet for Hive Engine. This was critical for me as I had no clue what I was doing and I had to learn during this short 2-3 period as well as knock out a working system. After making a lot of progress the testnet was taken down and I was left in the dark. I had to scramble and find a solution so I can continue to make progress and test. I managed to figure out how to get my own testnet up and running and remove my dependency on third party nodes. This was difficult, but was a great learning experience.
During launch my biggest problem was my dependency on Supabase. This repeatedly slowed down the 2nd process that monitored for new NFTs and copied over the metadata. Many attempts to find and solve the solution was unsuccessful and I spent most of my time just waiting for it to come back online. It was shuttin down for 5-10 minutes at a time. Moving image hosting from Supabase helped a lot and reduced how often it would crash, but it was still happening. The amount of concurrent users using the app, viewing their Punks, and minting new ones was too much to bear.
This was a problem unique to me, because I was truly minting Punks on demand and not just handing out the next pre-generated NFT like 99%+ of the NFT projects do. If I pregenerated all 10,000 Punks with metadata and just handed out a random ID, the process would have been instant, but highly corruptible.
During launch I started to work on a Discord bot that allows people to get details of Hive Punks right from Discord. I think this was a critical step I should have done prior to launch. Never underestimate social aspects. These are what keep people interested and bring the most entertainment. Juggling doing this while having all the technical issues was as challenge.
I could go on for another hour, but I wanted to share some thoughts of the process and experiences behind Hive Punks.
I have a lot of ideas for Hive Punks and many more projects I am working on.
Be sure to hop on our Discord if you want to get involved.
Posted Using LeoFinance Beta
This was an interesting read, even though most of the stuff is too technical for me. It's good to know the insights.
All I can say regarding the launch is that for us users, it was a lot of fun. The hype and the waiting for the punks to be minted made the whole project launch memorable. I love my punks and love checking the market from time to time. Thanks you for creating it.
Posted Using LeoFinance Beta
Please, can you share a link to the market where I can check out some Hive Punk ?
Sure, here it is https://punks.usehive.com/market
Posted Using LeoFinance Beta
Thanks Buddy.
You're welcome.
Posted Using LeoFinance Beta
These are a long term hodl for me. I love knowing I won't have to worry that I'll lose my Hive punks password. As long as I have my keys, I have my punks.
The punks were fun, the timing with both mood and Hivefest happening really helped launch them and I expect like most NFT projects there will be interest and attention that flairs up and calms down.
Interesting look into your thought process as well.
Posted Using LeoFinance Beta
Looking forward to seeing whether some of the money is reinvested into building more features for Hive Punks, rather than in launching new projects.
I've seen a ton of ideas thrown about from you and the community that I'd love to see potentially developed out.
The value is already here, capitalise on it! :)
Posted Using LeoFinance Beta
I've been adding features since launch.
It is pretty cool to see that Punks on HIVE is growing yay! 😉👏👏
🥦 !PIZZA 🥦
I know that "Real-Time Rarity" created a lot of issues on your end. I think it is the most blockchain way to do this.
Thank you for your witness vote!
Have a !BEER on me!
To Opt-Out of my witness beer program just comment !STOP below
View or trade
BEER
.Hey @bluerobo, here is a little bit of
BEER
from @isnochys for you. Enjoy it!Learn how to earn FREE BEER each day by staking your
BEER
.Thank you for your witness vote!
Have a !BEER on me!
To Opt-Out of my witness beer program just comment !STOP below
View or trade
BEER
.Hey @bluerobo, here is a little bit of
BEER
from @isnochys for you. Enjoy it!Learn how to earn FREE BEER each day by staking your
BEER
.Nice to see some insight and behind the scene thoughts of what went down and also fun to read you created it with zero costs.
I'm really looking forward to the next step, hoping you will create something where we can use the hivepunks or maybe a new project?
I had a lot of fun with the backstories, should try to find inspiration for another one, to keep the story alive :)
Posted Using LeoFinance Beta
Out of everything in this post… this is what interests me the most about your process.
As someone who has used Photoshop daily for many years, the idea of making these randomly generated images with so many possible traits turn out perfectly after they are minted just seems mad to me. When a layer is out of place, it can throw everything off so easily. The fact that the only major issues was with a few blemishes here and there is crazy. I cannot imagine taking the time to design such a large collection of images and then watching as some of the things that were worked on never actually come to exist due to how nothing is guaranteed. Or believing that everything was good to go and then something totally random happens and caused an imagine you seem more rare to some people since it is the only one with that error.
One of the cool things in the process was the images were created in ram and never hit disk. So attributes were calculated, then the image was done in ram and dumped right into IPFS. It was kind of a cool process I was really happy with how it turned out.
There was ultimately over 65B combinations that could have happened.
Quite the process indeed.
I can think of billions of other swimmers who could have potentially turned out to be something great that never came to be thanks to the slim chances of being actualized.
The funny thing about the "create a NFT and put it on OpenSea" videos that I've seen is they barely talk about the cost of setting up an OpenSea account and then the Gas fees for those who purchase the NFTs. The one thing I like about Steem/Hive over others is not having the fee to do business.
When minting the NFT did you use a standardized template for the contract properties to show how the NFT was unique?
I'm not sure what you mean by this. There were hundreds of attributes all randomly chosen, and even how many attributes on a Punk was randomized as well.
On this video, the application he uses takes the layers and creates JSON objects to build the attributes and makes it part of the "NFT Contract". ERC-721 standard.
Did you do something like this?
There is no standard on Hive, in fact it was never done before. But I followed a similar system you would see on ETH.
Okay. I was thinking it was a general standard that they were trying to do with NFT collections to show the attributes match the image.
I found the NFT Marketplace wiki that was made by the guys who do Splinterlands.
Now I understand what that guy meant in the video, it is the format for the Etherum token. Hive/Steem has its own format for handling the data.
I'm just waiting for Punk Punker to be released. You may as well just go ahead and take my money at that point! :)
Posted Using LeoFinance Beta
What's this?
Well, I am assuming it would be your next project. Kind of like Farm Farmer. What a classic!
Ahh, didn't get the reference.
No worries, I knew it was a stretch. I just felt like I had to try knowing your disdain for said project.
IMO really successful project. Some easy-to-use minting feature would be really cool. Even if NFT´s are premade, let a random component decide which one you get.
I still hold my 3 punks, all are bad, not rare 😃
Still a tiny bit in doubt about the whole "It's just a digital image, where's the value, the raison d'être". But still, I love reading about the process.
I don't remember the pricing for Hive-Punk NFT's, but I would have loved to try and make one.
well, next time perhaps.
/miko
Posted Using LeoFinance Beta
Well done on achieving what you did in a limit time frame.
I wish you success in the other projects you are working on.🙂
I love my punks on HIVE! Still am very grateful for this project!
I've always wondered, how do I acquire or rather, how do I create my own NFT?
how much of a pain in the dick is taxes going to be with 10,000 NFT transactions in 36h?
It is pretty straight forward. I just send 37% to the IRS in December.
Uncle Sam appreciates your creativeness in giving him more money to waste.
Not very happy about it,
Next step NFTfi? Or maybe a game where we can use our punks? HivePunks vs HiveFolks? Fight. !1UP
I am really excited whats coming up for hivepunks. I think we can look at the minting of the punks as a milestone in hive history.
!LUV
!PIZZA
!PUNK (this could generate a comment showing a random hive punk and its attributes possible hive commentbot?)
@solymi(1/1) gave you LUV. H-E tools | connect | <><
You're invited! - LUV's 1st birthday celebration!
You did a wonderful job bro. I'm impressed
Regret missing out on the minting. Great project
Very good prices now
Yay, this is an inrest8ng development so hivers can showcase their artworks and some other stuff for minting
great job.. wait for new punks.. HivePunks <3
Except for your time, isn't it? ;) In any case, this was a great launch, and this will stay a memorable project for some time. Thanks for the effort Marky!
Yeah it took time, but no reoccuring costs. But I did have to turn on a reoccuring cost of $20/m today for a new service coming.
$20/m is not a crazy cost either. I am looking forward to read about this service ^^
PIZZA Holders sent $PIZZA tips in this post's comments:
@mizuosemla(4/10) tipped @themarkymark (x1)
solymi tipped themarkymark (x1)
curation-cartel tipped themarkymark (x1)
Please vote for pizza.witness!
Hello @themarkymark,
I'm still pretty new here on Hive and stumbled across the art form "pixel art". This has inspired me to make this analog. So with paper and crayons. Now I came today by chance on your post about Hive Punks. First of all I would like to thank you for sharing this interesting fakts. It would be a great pleasure for me to draw one of your Hive Punks on paper. Are you okay with that?
Many greetings
kvinna
~~~ embed:1492206018276831232 twitter metadata:ZGl2aWRlbmRlbmNhc2h8fGh0dHBzOi8vdHdpdHRlci5jb20vZGl2aWRlbmRlbmNhc2gvc3RhdHVzLzE0OTIyMDYwMTgyNzY4MzEyMzJ8 ~~~
The rewards earned on this comment will go directly to the person sharing the post on Twitter as long as they are registered with @poshtoken. Sign up at https://hiveposh.com.
Now my Disk Jockey will be famous! hehehe
#HivePunks 🤘🤘
It was really interesting to take a small peak behind the curtains of a project like this. The fact it was zero-cost, provably fair and had a real time rarity system is incredible!
I can't wait to hear about what else you have in store for hive!
!1UP
You have received a 1UP from @trashyomen!
@oneup-curator, @leo-curator, @ctp-curator, @neoxag-curator, @pal-curator, @pob-curator, @vyb-curator, @stem-curator
And they will bring !PIZZA 🍕
Learn more about our delegation service to earn daily rewards. Join the family on Discord.
Hive punks give the hive ecosystem a new outlook,it was fun all the way.
Cheers to 91 days of reign.
I'll be keeping my punk until I can sell it for a Tesla
#HODL
Very interesting to read about the experience from the creator's point of view in regards to what you felt was successful and what problems you encountered.
I think you had fun with this 🙌 It led to a lot of loss of sleep I'm sure, but you broke new ground! Well done on a successful project :)
Punksonhive is my fav project love IT!
Nice one, it is a very cool project! It is a lot of fun and looking forward to what you do with it next!