Launch Day
When I deployed the CryptOrchids contract yesterday I had 2 goals - first, to get at least a handful of folks who found the concept fun or interesting to start building a little community around the game. And second to hopefully sell enough seeds to cover the deployment costs and break even. I’m so happy to say that I think we’ve achieved both of those goals!
32 different owners bought 193 seeds, bringing in 7.58 eth. I’m blown away!
Finances
I’m all about transparency, so let’s talk finances first. Calculating break even is a little challenging due to my agreement with Chainlink. The project uses Chainlink VRF, an onchain way to generate verifiably random numbers, in order to determine your seed’s species. None of your species are determined yet - they will be determined on germination according to the n per 10k rarity described on the website. Chainlink charges the project contract 2 LINK tokens per random number request, with LINK trading right around $30USD. Chainlink uses this to cover the gas associated with making a call back to the project contract. I put a lot of effort in to making that callback use as little gas as possible, and the Chainlink agreement is that they will refund the equivalent LINK of the unused gas at the end of the month. So it’s a bit hard to predict, but in all likelihood eah germination will cost ~1.2LINK, but we need to send 2 and get refunded.
So early adopters all paid 0.04ETH per seed - I set that price to cover the 2 LINK plus a little profit for me to recoup the contract deployment costs. If we assume no LINK refund, then the project broke even at 152 seeds sold and we’re currently profitable (without accounting for my time).
That’s incredible! In 4-5 hours this project was already in the black. Thank you so much for being a part of that, and I promise to do everything in my power to help your CryptOrchids grow in value.
I am a little bit nervous still though. To be clear, everyone who has bought a seed will be able to germinate it on Monday the 12th, maybe even sooner. But over the next few days, I will be taking all of the ETH proceeds from the seed round and swapping it for LINK. Right now that gives us about a 40 seed margin - we’ll have enough LINK to germinate 40 more seeds than have been minted. It’s not a bad margin, but if we see a big uptick in interest when the early adopters start germinating, we might run in to a situation where I’m not able to quickly load the contract with enough LINK for new seed buyers to germinate. They won’t lose their seeds or anything, but we want everyone to have a great experience.
Really the only thing that can help increase this margin is selling more seeds. Especially if we can get up to the next pricing level in the bonding curve - that’s where we really start to build out a comfortable margin for LINK. So the best thing you could do to help the project, and to potentially open up germination sooner, is to help me promote the project! I’m also going to be making some purchases of LINK myself to increase the margin - I’ve seen enough interest in the project to be willing to put up some more capital to keep things moving smoothly.
Next steps
I also want to detail a bit about what I’ll be working on. I wasn’t sure where this project was going when I deployed the contract, but I’m not going anywhere. I’ve got a few short term things I want to knock out over the next couple of days before starting to work towards some longer term goals.
This morning I updated the website to have this blog section that you are reading. This was too much to stick in Discord, and I’m working on a blog post with Chainlink that will be co-promoted, and it’s better to have that on the website than someplace like Medium we think. So welcome to the CryptOrchids blog!
Next up there’s some things I want to set up to make your experience as owners better. The unique nature of our tokens means we need to run some scripts on regular intervals to keep things up to date.
OpenSea
The first is for OpenSea. OpenSea doesn’t regularly update token metadata AFAIK. So if a plant dies, OpenSea will still display the “Alive” version of the metadata, when we want it to show that the plant is in fact dead and cannot be sold. It would be frustrating to think you are buying a live orchid, only to find out that the transfer is rejected because it is in fact dead. So I’ve got a little script in the works that I’ll run maybe every hour that hits the OpenSea API to force a metadata refresh.
Subgraph
Another place where we’ve got some cached data is on our The Graph subgraph. The Graph is a service that indexes data on the ethereum blockchain, allows you to write mapping functions and create an entity schema for objects, and then provides a GraphQL API to query the data. You can play around with our subgraph here, although there aren’t any entities yet as we only index live flowers -https://thegraph.com/explorer/subgraph/sbauch/crypt-orchids?version=current
The subgraph ingests Events that the CryptOrchids contract emits. We emit events for Planted and Killed. But there’s no way to emit an event at a certain time, there’s no chron on the blockchain. So a plant could “die” from the simple passing of time. So we also want to force our subgraph to get the latest info on all of our living plants. I’m particularly proud of this one tbh - the contract has a function hearbeat that only I can call that will emit a Killed event if the plant is dead. Since we really only use the graph to build our leaderboard of the oldest living plants, I’ve got a script in the works that finds the 100 oldest living CryptOrchids and calls the heartbeat function for each - so if a leaderboard plant has died, the subgraph will get updated and that token will fall off of the leaderboard.
These things sort of violate the dectrentalized ethos, which I don’t love, but it’s the best I’ve come up with to balance a good experience with decentralization maximalism.
Discord
Finally, I’d also like to work on some more Discord related stuff. I wrote an open source bot for OpenSea sales, so I’ll get one hooked up to our server. But I also want to work on other bot related things I’ve seen on other servers. I want to do things like allow folks to use commands to look up metadata for a flower, to claim roles like “Ultra Rare Grower” if they’ve planted an ultra rare species. I’ve been granting roles manually, but I suppose there’s a way to use DMs with the bot to verify your assets? If anyone in the community has experience with this or ideas on how to accomplish let me know!
Long term
More long-term, my biggest goal is to get some CryptOrchids in a meta-verse game as 3D objects that you can water. I want the 3d renderings to match the look and feel of the particular meta-verse. I do think some of the popular platforms are getting to the point where this is feasible, but I think it’s going to have to be done as a partnership rather than something I can just run with.
If you particularly spend a lot of time in one meta-verse and would like to see your CryptOrchids there, or if you think there’s a meta-verse team that would be interested in working on something like this let me know!
Outside of that engineering work I also intend to keep pushing the marketing and PR side of things. If you have ideas of how to spread the word more please let me know - I’d love to talk about CryptOrchids on a podcast or something.