Sign-In with Ethereum to SSX: Expanding Decentralized Identity

Sign-In with Ethereum (SIWE) has become the dominant standard for web3 login. It empowers any user to begin the journey to control their own identity not rely on "Big Login," or centralized identity providers that have incentives to extract value from users. At Spruce, we authored the Sign-In with Ethereum standard, provided multiple libraries to simplify integrations, and led community support for any developer interested in integrating SIWE.

Back in November, we released SSX to further our mission to build a future where users control their identity across all their digital interactions:

Announcing SSX: Self-Sovereign Anything
We’re happy to announce the release of SSX: Self-Sovereign Anything - the easiest way to get started with decentralized identity and install Sign-In with Ethereum

After talking to a number of developers about SIWE, one of the largest problems we heard was that it's difficult to integrate with just the core libraries. We built a number of basic libraries to make it possible across multiple languages, but it made sense to give developers an even easier way to integrate it into their applications.

The other problem we found was a lack of additional tools that truly made SIWE an experience for users, rather than just a signing operation. We started to explore additional ways we could build something where users could bring their identity and data across applications, with SIWE as the first necessary touchpoint.

We can revisit our friend Steve from a previous post on decentralized identity.

Decentralized Identity and Web3
Decentralized identity is the continual catalyst that will unlock a new host of use-cases on top of those existing paradigms.

Steve is now a web3 developer, building a dapp exclusively for people who own the paintings of Steve created by Alice. He's interested in adding Sign-In with Ethereum to his dapp, but there are other functionalities he is looking to add to his dapp as well.

SIWE: Batteries Not Included

Steve, in this case, has manually configured everything from the Sign-In with Ethereum library to all the other bespoke functionality derived from a few packages he found on the internet. He spends time carefully adding Sign-In with Ethereum through a library, and has to figure out how to add each additional feature he wants, such as his desired web3 provider, ENS resolution, and credentialing. Throughout this process, he's encountering endless documentation and joining endless Discord servers to find answers and get help troubleshooting.

With SSX, this gets a lot easier.

SSX is the functional equivalent of a Sign-In with Ethereum: Special Edition that includes the base game plus all downloadable content, add-ons, optional cosmetics, and more. For example, do you want to enable DAO logins or ENS resolution? Instead of doing the full configuration in your app from a number of disparate guides, just enable a feature flag – for example:

const ssx = new SSX({
      enableDaoLogin: true,
    });

We also never wish to limit developers in either flexibility in their code or the functionality they're interested in. Going back to our previous analogy, SSX doesn't just become Sign-In with Ethereum: Special Edition, but it also opens the door to modifications via extensions.

At Spruce, we're an open-source first organization that welcomes developers to have access to our code and also extend it as they please. There's no limit to what can be added regarding decentralized identity and data functionality with SSX.

For example, Steve would be able to add any functionality to SSX that wasn't available yet, such as imbuing users with decentralized chat functionality after they Sign-In with Ethereum.

Big closed-source software HATES this. Find out how Steve went from developer to contributor with this easy trick.

The core purpose of SSX is to be the foundation for what's possible with decentralized identity in web3. It doesn't just end with authentication; it's only the start of an entire journey for a user to own and control their identity and data across the web.

Getting Started

Interested in getting started with SSX? Check out our documentation:

SSX - SSX
Self-Sovereign Anything

Want to chat about new features in SSX, extending SSX, and more? Join us in our Discord:

Join the Spruce Discord Server!
Check out the Spruce community on Discord - hang out with 12,015 other members and enjoy free voice and text chat.