Progress Update - July 2022
While the market has been doing it's thing, the Lunar team has been heads down and laser focused...
To the Lunar Community,
The past month has been one of the most eventful to date. We could not be more excited to share the recent progress we've made, milestones we've hit, and more.
Let's get started.
As we’ve talked about previously, we recently received confirmation that Lunar will be listed on a highly-selective exchange with over $5B in daily volume. Along with this, we will be working closely with their team on co-marketing opportunities and a launchpool campaign to increase visibility around LNR. This listing was originally targeted to launch in early May, however they had to make some changes to their back-end platform to support Lunar, and we expect those changes to be completed in the next few weeks.
Time and Lunar waits for no one, so we’re working closely with a few other large exchanges to discuss and determine official listing timelines and marketing efforts. We have been focusing on one of these exchanges in particular over the past few months, and based on recent discussions with their team, we are more confident than ever that we will be confirming a listing date in the near future.
Top-tier exchanges have not been our only focus, though. We’re also listing on a handful of very large “medium tier” exchanges as well (similar statistics to Bitmart) in order to maximize our exposure. We’ve already had an impressive listing pace compared to other projects so far, and we expect to beat that by a significant margin in the months ahead.
Hey everyone, MasterJedi here. As you are probably aware, we had a couple aborted launch attempts in the last few weeks. I’m going to take some time today to break down what happened, what we learned, and the adjustments we’re making moving forward to ensure that the third time’s the charm.
But first off, I want to express our gratitude for just how patient and supportive the overwhelming majority of the community has been throughout this process. You folks are the reason we get up every day to build this platform, and we appreciate you.
Second, I want to acknowledge the rest of the Lunar team and the hard work they put into this project. I feel terrible that they haven’t been able to show off their efforts to their fullest yet, and we will correct that very soon.
Now, we’ve been hinting for some time that the NFTs themselves, as incredible as the art is, are only a single component of a much bigger picture. We had hoped to show you the experience first, and then peel back the layers and explain it after the fact… but given the challenges we experienced with the rollout, it’s time to peel back the curtain:
The Lunar Genesis Crystals launch on BSC is the first public beta test of the Lunar Plexus platform, powered by the world’s first .NET blockchain.
That’s right. Lunar has its own blockchain. It’s immutable, lightning-fast, cross-chain compatible, and it is already processing transactions. This is a major milestone for the company that we are delivering much earlier than planned.
Originally, the first Lunar beta was going to be a Web 2.0 app that leveraged Web 3.0 APIs to query your wallet and let you better understand your portfolio… and delivering that sooner would buy us time to figure out how to build Plexus.
Now, everything we’re building stems from capabilities on our own chain. As we move forward, you’ll see this basic progression of features natively on our platform:
Lunar Plexus is powered by Microsoft’s latest and greatest cross-platform runtime. Why .NET? Let’s break it down:
This means there is a gigantic, untapped market out there for developers and businesses that want to build Web 3 solutions but also want to leverage the things that are still great about Web 2, like RESTful APIs, relational databases, and cross-platform app development.
Fortunately, we don’t have to start from scratch, like other projects would have. Our execution engine is built on technology I’ve been refining for the better part of a decade. It was already designed to process transactions out-of-band from web applications, and we found it was perfectly suited for blockchain environments.
Hopefully by this point you’re as excited as we are, which means your next question might be “So, when can I use it?”
Well, when we deploy updates to the Minting app and Plexus 1.1 here soon (more on that in the next section), you’ll get to experience the power and simplicity we’ve brought to the table. It’s going to stay deployed as a private chain for a while, as we continue to grow the featureset and work out kinks with our future releases.
Later this year, Microsoft will ship .NET 7.0, and with it will come support for the Web Assembly System Interface: a version of Web Assembly that you can think of as an ultra-powerful Docker container. Between now and then, we’ll be building out the Plexus consensus protocol for running multiple parallel instances simultaneously, as well as the EVM-compatible smart contract framework for running external code on the chain.
We’ll keep you posted as that work progresses. Let’s shift gears now and talk about how that fits into our updated plans, and what happened when we tried to launch our first Plexus beta last week.
Between November and March, we realized we could leverage the NFT launch, which required a new contract anyway, as a jumping off point to highly-focus the initial Plexus release on powering the NFT minting experience. It was a particular moment of clarity for the team, because the .NET team needed to get up to speed on Solidity development, and building the ERC-721 contract first would let us build out all the infrastructure we needed to release our Web 3 tech without affecting the current token contract.
The strategy is simple, but powerful. If we did a little extra work to have generic, reusable ERC-721 and ERC-20 contracts, then we could deploy them on whatever EVM-compatible blockchains we wanted. Then Plexus would coordinate the work between blockchains, storing the data in its own immutable ledger.
We would then be able to leverage Plexus not only to move Lunar assets between chains, but to support our BEP-20 token migration as well. At the end of the day, we’d be a LOT closer to having a full-fledged DEX ready by the end of the year if we went this route vs our original plan. So off we went.
In building out Plexus, we had three main tenets we wanted to adhere to at all times:
We settled into weekly sprints, tackling a ton of really great work as we laid out our architecture. In scheduling, we always attempt to pad our timelines to account for the unknown, but along the way we ran into a few issues that I didn’t properly adjust the schedule for.
We’re C# devs at heart, and we are used to having command of a powerful language at our disposal. Solidity presented some new challenges for us, especially around error handling.
C# has a concept called “try/catch”, where you attempt to do some work (the “try”), and if it fails, you grab the failure (“catch” it) and try to recover from it. Solidity only recently added this feature, but only did it for public-facing code. Apparently, internal methods never have problems!
Whatever this reason, this created a major problem for us. It is highlighted by an analogy I call “The Hyper-Specific Husband” which goes like this:
A wife sends her husband to the store to get three candy bars. Upon arriving, he sees that there are only two candy bars left, so he returns home empty handed. Angry, the wife asks “Why didn't you just buy the two candy bars?!?” To which the husband replies “because, that’s not what you asked me for. You asked for 3.”
Whether or not the husband was later suffocated in his sleep is beside the point: “smart contracts” are pretty freakin stupid sometimes, because they don’t allow you catch failures from base contract libraries like OpenZeppelin and do the next right thing. As an end user, if I want three NFTs and you can only mint me two, I’m going to be MUCH happier with two than zero.
We ultimately came up with a solution that we didn’t absolutely hate, but at the cost of several days’ research, prototyping, and testing. At that point, we should have added at least another 10 days to the schedule, but we decided to power through and make up the time by working harder… that was my mistake #1.
When you’re building a platform with such a wide target audience, you want as many people to be able to use it as possible. So it only made sense to start with WalletConnect and their $11M in new venture funding, and build in native wallet implementations later.
Tenet #3 meant that we needed a WalletConnect solution built on .NET, and that’s where WalletConnectSharp came in. We plugged it into our Blazor client, and were able to make connections fairly quickly. That gave us confidence to proceed. Our design was to sign the transactions “locally”, and then forward them to Plexus for processing.
As we were lining up the Plexus transaction processing with Blazor, when we discovered that the transaction signing process in WalletConnectSharp wasn’t implemented to support ERC-155 or ERC-1559. There were methods stubbed out for developers to use, but the code in the library wasn’t actually tested for that codepath, and there was no documentation about it working one way or the other,
That’s when we found out that the official WalletConnect library on .NET isn’t maintained by WalletConnect at all, but some intrepid OSS developers that work loosely with the WalletConnect team, who just wanted to lend a hand to the ecosystem. They jumped in immediately to help when we asked, and got right to work on implementing what we needed. But what we thought was going to be a quick fix turned into a much bigger deal.
At this point, we had to push back our first launch, and we planned two approaches for solving the problem:
We would build both plans in tandem, on separate branches in our source control, and merge down whichever plan “won”. After a couple days, it became clear that Plan A was not going to be done in time, and we focused our efforts on Plan B.
Now, at this point, I should have totally reset the release process back from the beginning, had the team re-spec out the new work, and built in more time for testing. Frankly, I was embarrassed that I let everyone down, and the Dev Team and I wanted to build our “redemption arc” and get everything up and running ASAP. That was my second mistake.
We put in a ton of hours, but everything was starting to look good. We got successful transactions going end-to-end through the system, and we figured the occasional instability we saw was due to WalletConnect’s poor reliability in certain situations (I’ve used it for a long time, and it constantly has issues for me on other platforms).
The day that was supposed to be our crowning achievement quickly headed south. Everything was deployed, configured, lined up, and working. There were some minor quirks still in the UI, but we were going to push some additional fixes up before the public sale, based on data we captured during the Whitelist sale.
We had a short initial delay due to forgetting to check some configuration settings, but once we put the contract in the right mode, we flipped the switch, and put out the announcement for you folks to get started.
It was amazing to watch how quickly traffic spiked. Things looked good initially, and we started to autoscale the servers to handle the load. Aside from some missed Auth0 settings (which you folks reported quickly, thanks for that!), for the first couple minutes it looked like we were going to be OK.
Then we started getting reports that people were getting stuck on the WalletConnect QR code, or on checking their balance. Transactions were coming in, but not nearly as quickly as we anticipated.
Then, they just about stopped entirely.
We spent hours trying to figure out what happened. We knew WalletConnect was the culprit pretty quickly, as both Spaceman and Moonshot noticed that it seemed like only 1 or 2 people could get through the process at any given time.
We would find out on Friday that, due to the nature of our design, a high number of WalletConnect requests were being funneled through a limited number of IP addresses… which appeared to trigger their DDoS protections in their system.
While we were diagnosing the issue, Spaceman found a tweet from someone on the WalletConnect team from March 2021 that stated their v1 protocol was not scalable, and to move to v2 ASAP. That would have been great and something we could have switched to quickly, except WalletConnectSharp doesn’t support their V2 protocol yet.
We captured a TON of data from the launch, and together with discussions from the team, have a list of things we will be focusing on improving moving forward.
I feel like I’ve been saying this a lot lately, but once again we all appreciate your patience and support. We look forward to finally launching this thing right in the days ahead, and being able to share more with you on the Plexus architecture, and how it will power our FluidToken and FluidNFT technology. Until next time, Jedi out.
Hello everyone, Spaceman here. This past month has been extremely eventful, and I want to provide some additional context on what’s going on behind the scenes.
While much of our community is excited about Lunar Crystal NFTs and the benefits they unlock for them as holders, we have yet to share the full picture of what they mean for the ecosystem as a whole.
As we roll out our Plexus technology to each new blockchain, we will release a batch of Lunar Crystal NFTs on that blockchain. There are a number of benefits to this strategy including:
While the aforementioned benefits do help, they are not the primary reason for our strategy around the NFTs.
The main driver behind our NFT strategy is that by launching an NFT collection on each new blockchain we support, we can use the proceeds from that launch to seed liquidity on each new blockchain.
This allows us to support trading on each new chain quickly out of the gate, rather than having to slowly attract a critical mass of LP providers or rely on institutional funding to accomplish this.
For the portion of our token holders who don’t care about NFTs and have wondered how Lunar Crystals benefit them, I hope you can now understand how they directly contribute to the growth of the ecosystem and token.
And for the majority of our community members who are excited about Lunar Crystal NFTs, I hope you notice that there is a large incentive for us to maintain and improve the desirability of our NFTs and the benefits they unlock for holders.
First off, regardless of whether this was a result of 3rd party software or not, on our last NFT launch, we did not deliver the experience we always strive to deliver. This is something I feel personally embarrassed by, and I want to make sure it never happens again.
The irony here is that this came as a result of us trying to make the community happy. We set dates that were largely based on wanting to please the community, and figured that if any unforeseen issues came up, we could make up the difference by pulling all-nighters.
Because of this, we did not have the time to properly test the full system in production, or fix the issues that could’ve come up during testing.
What this demonstrates is that we need to make a choice between satiating short timeline expectations and staying true to our core product philosophy.
We love you folks, and want to make you happy. But just like anything in life, short term satisfaction comes at the expense of long-term prosperity.
Anything that is going to drive this ecosystem forward in a significant, lasting way will be the product of months and years of development, not weeks. And the more time we spend trying to satiate people in the short term, the less time we have for the things that matter in the long term.
With that, I have an ask for people in the community who feel uncomfortable waiting for things:
Please be patient with us on timelines. We need the time to be able to develop our technology the right way, make it amazing, and not be pressured into cutting corners.
If you are here because you believe in what we’re building and want to see it come to fruition, strap in and remember that this is a multi-year journey. We’re going to do incredible things as an ecosystem, we just need the time to do it.
With all of this being said, most of our community has been amazingly patient and understanding with us throughout this process. Thank you all for your continued support.
As we continue to grow, now is the time to embody the blockchain technology company we’ve been building. This applies to every facet of our business and brand which includes:
Our messaging will be maturing to focus more on the technology we’re building and how it benefits users. We’re already working with an ultra-talented agency to help us refine our brand voice, conventions, and messaging.
Our brand design is currently undergoing a full refresh so we can have a much more polished, consistent visual presence across all of our channels. This includes a full website redesign.
In the early stages of a startup, you need to operate on the fly to validate your idea and see what works. As you grow, you need to implement scalable systems. We have begun a massive push internally to build out our internal systems, processes, and policies to have our org run like a well-oiled machine.
Over the past several weeks, we’ve continued to scale our marketing efforts across the board:
You may not know this, but it’s virtually impossible to have a three-letter Twitter handle anymore. You can’t create one during signup, so if you want one, you need to find other means. Well, we did.
Our new Twitter home will help us get Verified much sooner, which will unlock Verification for us on other social platforms like Discord and Telegram.
Our current Twitter handle will remain active for a period of time but will likely be transitioned over to support our NFTs or Lunar Academy. If you haven’t already, head over to the new page and follow us! Stay tuned for further updates on this new space over the next few weeks.
Congratulations to our Sr. Moderators!
Telegram YTD Statistics
Discord Monthly Statistics
Discord Features Implemented
Role icons and colors have been completely overhauled!
Organization and navigation has been completely overhauled!
Additional Channels Within ‘The Space Bar’
Introducing: Genesis Factions on Discord
In celebration of the Lunar Genesis Crystals release, we’ve introduced Genesis Factions into our Discord. Where community members can team up and compete to win prizes. There are 4 total Factions that represent the 8 Lunar Genesis Crystals!
Lunite: Controls Matter
Omnicite: Controls Dimension
Kronocite: Controls Time
Xenite: Controls Space
Zorene: Controls Life
Lucidium: Controls Consciousness
Aurium: Controls Gravity
Solite: Controls Energy
Our first competition launched where the winning Faction will receive $5,000 worth of LNR! You can participate by joining our Discord: https://discord.gg/lnr
This month has been massive for the Lunar Ecosystem, and we are extremely excited for the months ahead. Thank you all for being a part of this journey with us.
To infinity & beyond,
The Lunar Team
While the market has been doing it's thing, the Lunar team has been heads down and laser focused...
We're giving the team an additional 24 hours for additional set up and testing.