ENS on Spasm: a match made in heaven

Hey ENS community, we were referred to this forum and to the ENS Builder Grants program by good people, so we’re here.

We were planning to apply for a small public goods grant (2 ETH) for the ENS integration, and then for a larger one (50K USDC), but we hit a roadblock after reading your FAQ, so we decided to write this post instead.

So, let me first red pill on the current state of web3, then turn you into a Spasm maxi, then explain the ENS integration, outline potential collaboration routes, and finally ask for your suggestion. We can also move this post from ‘Public Goods’ to ‘ENS Ecosystem’ or to any other category that you think suits better.

The current state of web3

I can go on a very long rant explaining how most ‘web3’ stuff is absolutely fake and it’s usually VC-backed web2 slave tech dressed in web3 clothing, but to save our time, let’s just focus on one example, which is Discourse, the engine that powers all major forums in the DeFi/NFT/web3 ecosystem.

In order to create a post on a Discourse-powered forum I have to firstly create an account. My options are an email address with password, which is an outdated web2 authentication method, or slave tech platforms like Github/Discord, or sign a login message with an Ethereum key (EIP-4361), which is a good example of fake web3.

Let’s say that I logged in with Ethereum, which by the way didn’t work on my device, but whatever. Let’s assume that I’ve succeeded. What’s next? Well, I will simply get a token from a server, which will be stored in my browser cookies to authenticate all my actions, and so we’re back to exactly the same account-based slave tech architecture that powers web2.

All my messages are stored in a centralized database and cannot propagate across any network since they are not directly signed with my Ethereum key. And of course, I don’t have self-custody of my account and all my messages can be tampered.

Imagine doing exactly the same fiat-based centralized online banking as usual, but logging in with your Ethereum key instead of an email address and a phone number. Would you call that DeFi? No. Then why do we call a ‘sign-in with Ethereum’ a web3 experience? It’s not.

Here is a video that explains the problem with visuals and more details.

What’s the solution?

Spasm, the endgame of social media

Spasm is the most advanced generation of decentralized social media due to its unique agnostic architecture that relies on direct signing of all events and integrates existing solutions like ENS and EFP as modules.

Spasm has been in development for half a decade and currently supports multiple private keys, multiple data structures (messaging protocols), and multiple networks. It’s the only truly open ecosystem.

Spasm powers tools that allow people to unplug from slave tech. The Spasm-powered forum is available since 2021, and more tools will be built in the future.

Keep in mind that a Spasm-powered forum is just one app, but you can build anything you want with Spasm, so eventually everything gonna run on Spasm, from forums to social graph-based apps like Twitter, as well as messaging apps like Telegram, code-sharing platforms like Github, package managers like NPM, agent-to-agent communication protocols, and whatever else you can only imagine.

Basically, in the future all interactions on the internet will be directly signed with private keys, and Spasm is the most advanced protocol to support that transition. I’m not sure whether there will be a more advanced protocol in the future, but if that happens, it will probably be called Spasm V3.

In other words, think of Spasm as the ‘https’ of web3. No more fake ‘web3’ stuff like ‘sign in with Ethereum’. No more slave tech. Only direct signing. Only Spasm. Only freedom.

Here are a few examples of how Spasm forums can be used right now:

ENS-powered profiles

ENS is already a crucial part of the freedom tech stack, so let’s figure out how to merge ENS and Spasm ecosystems to amplify the impact of both tools.

The most easiest integration that comes to mind is using ENS domains as usernames and filling profiles with data fetched from ENS records.

At the moment, only Nostr profiles are filled with data. For example, this post was multi-signed with Ethereum and Nostr keys.

And if you open a Nostr profile of an author, you’ll see various data fetched from the Nostr network like a username, about, profile picture, and more data can be specified by signing a special metadata message.

However, if you open an Ethereum profile of the same author, you will see a boring page with no user-specified info, even though the Ethereum private key was integrated into Spasm in 2021, long before the Nostr private key.

Thus, we propose a proper ENS integration.

It’s worth noting that a few weeks ago we created a Spasm-powered forum for ETHGlobal to showcase it to the team and added a quick ENS integration. However, that was a very rough MVP-style implementation intended to be used on one instance only, because a proper integration of ENS into Spasm will definitely take move than a full week of work. Why so long?

Well, Spasm is the most libertarian solution that restores freedom of association, so by design we don’t push anything onto users or forum admins. Each community can customize the experience according to its needs, meaning that all features are optional. And we write many tests due to complexity of the architecture that supports different keys, protocols, and networks.

Thus, a proper ENS integration will require the following:

  • Many environment variables to configure the ENS module.
    • Enable ENS module
    • Enable ENS data fetching via user-provided RPC (e.g., Brave, MetaMask, Rabby, etc.)
    • Enable ENS data fetching via admin-provided RPC key
    • Enable ENS data fetching for a profile page
    • Enable ENS data fetching for a post page
    • Enable ENS data fetching for comments (bad for privacy, generates many API calls)
    • Enable ENS data fetching for feed items (bad for privacy, generates many API calls)
    • Enable whitelist for ENS data fetching
    • List of whitelisted pubkeys for ENS data fetching
  • An option to configure the ENS module via a web admin dashboard.
  • ENS usernames should be shown in many parts of the UI (post preview, comment cards, feed items, connect button).
  • ENS data should be cached on a client side to reduce the amount of API calls, especially during feed updates.
  • Fill a profile page with ENS data.
  • Many tests.

Grants

Why did we create this post instead of simply applying for a grant? Well, your FAQ says that your Public Goods program doesn’t fund projects that have native tokens. Spasm has been in development for five years without any funding, but about two months ago we finally issued a token in attempt to grow the ecosystem.

The SPASM token is not an utility token like ETH, nor is a governance token like ENS, but rather a pure memecoin like BTC.

SPASM is completely independent from the Spasm software, we don’t push it onto users, and anybody can run a Spasm forum and use the Spasm network without mentioning or touching a token.

The token has almost no liquidity at the moment, but we’ve launched an incentivization program that should help with getting adoption by distributing the token among early adopters.

That said, the SPASM token is amazing. It has a great vanity address, tons of Easter eggs, and a cool false-positive ‘impersonator’ flag from a web2 blockchain surveillance company BlockAid.

Thus, since we already issued a token, we decided to ask you what would be the best collaboration strategy. Should we apply for a Public Good grant or should we create a new post at the ENS Ecosystem category and get feedback there?

Further integration

After fully integrating ENS into Spasm, we’d like to further work with you, helping the ENS community unplug from slave tech. The Spasm-powered forum is just one app, but there will be other different apps. And we can also add more UI themes in order to better suit your needs. We can even recreated the Discourse UI, but with Spasm-powered web3 engine.

Contacts

Website: https://spasm.network

For private communication please send a message to degenrocket on Session.

You can also join zkpunks groups on Status and SimpleX and ask your questions there.

Unplug from slave tech! :metal:

3 Likes