Progress Update - May 2022

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.

General Updates

Milestones

  • Plexus V1.0 is here
  • We’ve created the world’s first .NET blockchain 
  • First production launch
  • New Twitter account acquisition @LNR
  • Top exchange listing confirmed
  • Twitter campaign with over 2M impressions
  • 1000% engagement increase across community channels

Exchange Listings

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.

Lunar Crystal NFTs

Timeline

  • The Manual Sale will stay online until we re-launch the Minting site + Plexus v1.1.
  • All current manual orders have been fulfilled as of 6:30pm EDT 9 May 2022. We will fulfill new orders daily.
  • We will restart the 24 hour clock on the Whitelist Sale after the Minting site is live again.
  • The Lunar Meteorites will break out of their casings seven (7) days after the Whitelist Sale restarts.

CTO’s Corner 

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:

Plexus Is Here, Today

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: 

  • Acquiring Lunar assets
  • Moving Lunar assets between chains
  • Converting Lunar assets into other crypto assets
  • Converting any crypto asset into any other asset

Powered by .NET 6.0

Lunar Plexus is powered by Microsoft’s latest and greatest cross-platform runtime. Why .NET? Let’s break it down:

  • Microsoft invests tens of millions into the .NET ecosystem every year. The rate of progress on C# runtime features vs Solidity doesn’t even compare, even on a 20 year old platform like .NET.
  • .NET has a vastly more mature ecosystem and toolchain. Anything powered by Javascript is typically slow and a gigantic pain to compile and deploy. This has only gotten marginally better in the last decade. Since many Web 3 toolchains use Javascript, their power is limited by their weakest link.
  • .NET is FAST. It’s 40X faster than Python, on par with Go, and is the platform of choice for virtually every Wall Street high-frequency trading platform.
  • .NET has reach. Nearly 30% of all developers worldwide use it, and it has a significant presence in most Fortune 500 companies.

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.

How We Got Here So Fast

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.

Looking Forward

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.

The Master Plan

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.

Engineering Simplicity

In building out Plexus, we had three main tenets we wanted to adhere to at all times:

  • Help the user understand what is happening in real time
  • Make it as secure as possible
  • Only use Javascript as a last resort

Tenets two and three are somewhat interrelated, because the security issues with Web 3 tend to happen either at the contract level or the Javascript level. By using Blazor & having our blockchain do as much of the work as possible, we could create a simple, secure experience that would rival some of the biggest crypto companies on the planet.

Encountering Roadblocks

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.

Solidity Weaknesses

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.

WalletConnect Woes

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:

  • Plan A: Continue to use the original design and wait for the transaction signing code to get fixed
  • Plan B: Use WalletConnect the way everyone else does, and send the transaction to the blockchain directly from the Blazor app. Plexus would watch the blockchain for Deposit transactions, and finish the mint process the way we had originally designed.

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).

Launch Day

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.

It’s important to note here that our existing processes would not have caught this issue before you all used the system, no matter how perfect the rest of the code was. WalletConnect has no documentation about how they protect their network, and there are no paid subscription plans that would reduce rate-limiting or unblock IPs. Like damn near every other Web 3 platform out there, the WalletConnect service is just Javascript running on Node, which makes it VERY limited in what it is capable of.

What We Learned

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.

  • We can't be so dependent on technology we don't control. We took a lot of time to document the Web 3 stuff we didn’t have experience with on the Blockchain side, do the research, and make decisions. But on the .NET side, I expected the quality level to match most of the other tools we use in the space.. I was wrong. Moving forward, we will rigorously evaluate the codebases of our dependencies, add time to contribute whatever OSS fixes are necessary to get them to our standards, and build fully-functional prototypes before we approve any permanent dependencies.
  • We need to include more time for testing things that can't be automated. You simply can't unit test a human scanning a QR code, or easily script clicking the “Approve” button in MetaMask. There are elements of Web 3 that require human interaction to test… which means we have to dramatically increase our testing cycles.
  • We need to implement "beta testing rings" where we roll code out to more and more people until we're comfortable at scale. Because parts of Web 3 can’t be unit tested, it’s really tough to create automated load tests either. To compensate, we’re going to have to move up our plans to include more of you in our testing process. We’ll have more details on that in the days ahead.
  • We need to shift our beta test infrastructure to the MainNet. The TestNet is not a reliable means of understanding real blockchain behavior, and we simply didn’t know that before.. That means our final Production checks can’t be our first go-around on the MainNet, we have to deploy there sooner so we can see “real world” issues using contracts designed to minimize our use of real money for testing.
  • Testing schedules need to include more time for remediation. Just like we can’t only code against the happy path, we can’t schedule against it either. We need to drop in more time for remediation with the anticipation that stuff will fail, vs the optimism that it won’t.
  • We will no longer announce launch dates until the code has cleared production readiness checks. Our goal must be to create an assembly line of features that ship often, so that the team always has something new to announce. Announcing dates before something is done just creates situations that require us to compromise first principles or cut corners, and that ends now.

The (Rough) Updated Timeline

  • We’re moving up our Metamask native integration from June to now. We were originally going to take this month to work on our ERC-20 contracts and build out the Lunar Token Migration in Plexus, and release our Metamask native implementation with our ETH NFTs in June.
  • We’re in the process of prototyping our Metamask integration now. Within the next couple days we will have spec’d out the changes needed for Metamask, and to address other issues identified from the launch, and will implement them as quickly as possible.
  • We will keep everyone in the loop on how these changes are progressing through the updated release cycle, and should be able to announce updated sale dates before the end of the month.
  • We will reintroduce WalletConnect integration at a later date, once we have had time to work with both the WalletConnect and WalletConnectSharp teams to make sure they have a fully-tested, battle-hardened V2 

In Closing

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.

CEO’s Corner

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.

How NFTs Drive the Ecosystem

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:

  • It provides a vehicle to advertise the Lunar Ecosystem on channels where DeFi is prohibited. 
  • It provides a vehicle to introduce the Lunar Ecosystem to the new audiences on each new blockchain ecosystem. 
  • It allows us to establish a secondary market presence on the chains that our NFTs can be transferred to. Without a secondary market presence on a given chain, there is little reason to transfer NFTs to that chain. 

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.

A Note About the NFT Launch

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.

Long-Term Growth Focus

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.

Transitioning From a Token Project to a Blockchain Technology Company.

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:

Messaging

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.

Brand

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. 

Internal Processes

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.

Marketing

Over the past several weeks, we’ve continued to scale our marketing efforts across the board:

  • Features on Seafloor NFT, Cryptoslam, Rarity.tools, and CoinMarketCap NFT
  • Hosted an Telegram AMA with Binance NFT answering thousands of questions
  • NFT driven content with notable YouTube/Twitter creators
  • Various Discord contests which have resulted in 1000% increases in engagement
  • Twitter ads which have totaled over 2,159,581 impressions

Upcoming Campaigns

  • Twitter Ads
  • Treasureland Banners
  • Binance NFT Top/Recommended Collections
  • YouTube Influencers
  • A truly mind blowing CMC Airdrop alongside NFT Expoverse & The Planetary Society
  • Discord Contests

Our New Twitter Home: @LNR

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.

Community Growth & Engagement

Congratulations to our Sr. Moderators!

  • We have promoted a set of extraordinary Moderators to a Sr. Moderator position!
  • We will continue to empower our platform Moderators, to help them grow and flourish within our community and ecosystem!

Telegram YTD Statistics

  • 818k Messages Sent
  • 25.1k Members
  • 4.7k Viewing Members
  • 700 Posting Members

Discord Monthly Statistics

  • 1,405 Communicators (261% Increase)
  • 995 New Communicators (525% Increase)
  • 5,564 Visitors (152% Increase)
  • 124,000 Messages Sent (1,000% Increase)
  • 2,235 Voice Minutes Spent (20% Increase)

Discord Features Implemented

Events Bot

  • Easily RSVP to any Lunar event and get notified 15-minutes before it goes live!

Buy Bot

  • Track all LNR buys, biggest buys get sent to our General channel for hype!

Verify Bot

  • Connect your wallet to unlock unique roles, role icons, and permissions!
  • We will never ask you for your seed phrase or direct message you!

Poll Bot

  • Be a part of making the Lunar Ecosystem greater by voting on particular topics!

NFT Channels

  • We now have a plethora of channels regarding the Lunar Genesis Crystals!

Social Feeds

  • You can now see our Instagram and Twitter feeds in one place! 

Role icons and colors have been completely overhauled!

Organization and navigation has been completely overhauled!

Additional Channels Within ‘The Space Bar’

  • Sports
  • Cinema
  • Foodies
  • Memes

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!

  • Each Faction gets a private chat to strategize
  • Competitions include additional objectives
  • Moderators join community members in each Faction
  • Obtain Faction items to gain an advantage
  • Prizes are split evenly amongst all team members
  • Top Faction members are eligible for bonuses
  • Each Faction will be granted unique abilities over time

Factions Include:

Nova Faction

Lunite: Controls Matter

Omnicite: Controls Dimension

Atlas Faction

Kronocite: Controls Time

Xenite: Controls Space

Titan Faction

Zorene: Controls Life

Lucidium: Controls Consciousness

Solaris Faction

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

In Conclusion

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

About the Author

MasterJedi
CTO

MasterJedi is a software architect with over 20 years experience building enterprise-grade apps for companies and governments. His open source work has over 500M downloads.