Introducing Janus – A Open-Source Domain Specific Language for Allowlists

We do some things well at The Memes and some things need improvement.

One area where I think we (the team) and we (the community) have spent more time on than just about anyone else is Allowlists
In the case where demand for an NFT drop exceeds supply, you have three options:

✅Raise prices (directly or through dutch auctions)
✅Gas wars
✅Allowlists

Each of these options have tradeoffs. You just have to pick which tradeoffs you prefer.
For us:

✅Given the nature of The Memes, we do not want to raise prices.

✅Gas wars are dumb – the worst solution of all. Gas wars are a price increase, but with the proceeds going to the miners, instead of the artists.

So that leaves allowlists as our approach
I will write a different thread on “learnings from allowlists” – that is not for today.

Today we are going to talk (briefly) about Janus.

Right now, we make the allowlists through a mix of internal tools and Excel.
It is a quite involved process.

For every artist, we collate all their contracts/tokens. We snapshot them and The Memes collectors.

We then have to decide: “how many phases”, “how many people in each phase”, “what are the criteria”

Then lots of addresses moving around.
To put this in context: Doing this the way we are doing it is between a half-time and full-time job for @teexels for three drops a week.

And this is with some internal automation.

So, in famous last words, I said “let’s fully automate, how hard can it be?”
That was several months ago, there is a team of developers working on this for all those months and it turns out it is “harder than it looks”

Now to be clear, it is not “solve room temperature superconducting” hard – it is “5 months of work” hard
Next week (fingers crossed) we will release version 1 of a web-based tool that allows us to make these allowlists faster, more complex and with fewer possibilities for manual error.

It is quite slick and I look forward to sharing it.

But that is also not today’s topic.
Today’s topic is Janus and Janus is both a niche and a slick idea.

As the team was building the software code for the tool, we starting thinking about what operations do you need to make an allowlist.

And the team said: “let’s abstract them out to a domain specific language”
What is a domain Specific language?

To be clear, Janus does not do anything directly.

✅It is not code

✅It does not create allowlists

✅It is a set of naming conventions (more or less) about the operations involved in creating an allowlist (like SQL is for a database)

So, why did we make Janus?

✅ It helps us think more clearly about the underlying allowlist operations

✅ It allows others to make tools that are interoperable with us by following the conventions

✅Anyone can contribute allowlist operations without reading code
Janus is released under an Apache 2 open-source license.

You can use it freely for commercial or non-commercial use.


Stay informed about the latest updates and developments in the gaming and blockchain space. Join our community of and blockchain enthusiasts to be part of the exciting journey ahead.

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *