Spruce Developer Update #30

At Spruce, we’re letting users control their identity and data across the web. Here’s the latest from our development efforts.

Spruce Developer Update #30

In case you missed it, check out our previous update here:

Spruce Developer Update #29
At Spruce, we’re letting users control their identity and data across the web. Here’s the latest from our development efforts.

At Spruce, we’re letting users control their identity and data across the web. Here’s the latest from our development efforts:


SSX (Self-Sovereign Anything), is the easiest way to integrate Sign-In with Ethereum, enable DAO logins, resolve ENS names, and more. It is the go-to library for developers in web3 to get started with decentralized identity.

  • Currently, we're working on adding support for working with user-controlled data in SSX. If you're curious about this work, message us in our Discord! We hope to have more announcements about changes to the library later this quarter.
  • We released a new package supporting Auth.js, NextAuth's spiritual successor. We've also updated our tutorials to reflect the new changes and plan on creating additional guides around its usage (ssx #76).
  • We've added an update to revalidate sessions when users change accounts using their wallet to ensure that the currently selected wallet is attempting to establish a session with a given application (ssx #88).
  • We've pushed numerous fixes to our Gnosis Safe login extension, including a fix for the modal flashing when there's no active delegation for a multisig, a fix for the SSX instance freezing if the modal is closed during the sign-in process, and some additional housekeeping (ssx #98, 100, and 103).
  • Additionally, we've added a fix for any login failures if resolveEns is set to true and a user is on a network that isn't supported by ENS (ssx #102).
  • We've added callbacks on SSX server middleware routes to increase flexibility for executing additional code during the authentication process (ssx #105).
  • Finally, we made several additions and updates to our documentation and a few fixes for our end-to-end tests for the library.

We would also like to thank everyone who beta-tested SSX Quest, a credential issuer built on SSX and Kepler during ETHDenver.

Plant a Tree and Control Your Data with SSX At ETHDenver
We’re happy to announce that we are demoing an app called SSX Quest that shows how Sign-In with Ethereum can extend user control into interactions with user-controlled data, beyond just identity.

We're happy to announce that we'll be planting 100 trees for all the folks who obtained and presented credentials within the application. To learn more about SSX Quest, check out the article above.

with Ethereum Core Libraries

Sign-In with Ethereum is a new form of authentication that enables users to control their digital identity with their Ethereum account and ENS profile instead of relying on a traditional intermediary.

Spruce Integrates Sign-In with Ethereum Into MetaMask for Better User Experience and Safety
We’re now happy to announce a significant step forward in Sign-In with Ethereum adoption with a direct integration into MetaMask.
  • We're extremely excited to announce our collaboration with MetaMask to bring native Sign-In with Ethereum support to the MetaMask extension wallet! Now, when a user signs in with Ethereum using MetaMask, they will be presented with a neatly formatted "sign-in" request along with domain binding which protects users from phishing attacks. For more information on this integration, check out the article above.
  • We're in the process of making numerous updates and security improvements to our siwe core TypeScript library. Stay tuned for more information on these changes.
  • The ReCap specification (ERC-5573) has been updated to reflect new developments in the distributed capabilities space (EIPs #6654, siwe-recap #14), bringing it in line with the UCAN specification to enable integration between SIWE-based applications and applications using UCANs and CACAOs.


Kepler is a decentralized storage network organized around data overlays called Orbits. Kepler allows users to Securely share their digital credentials, private files, and sensitive media to blockchain accounts, all using your existing keys.

  • CORS support has been improved and made configurable via a simple boolean, making testing and deployment easier for those not using a load balancer (#138)
  • We're currently working on replication in Kepler and configurable storage limits in orbits. If you're curious about our work on Kepler, please reach out to the team.


SpruceID is a decentralized identity toolkit that provides everything you need for signing, sharing, and verifying trusted information.


TreeLDR is a schema definition language that aims at describing both the structure and semantics of the defined schema in a comprehensible way. It lies at the intersection between RDF and structure-oriented schema definition frameworks such as JSON Schema.

  • We are currently working on TreeLDR being able to define a trait definition for each RDF class (treeldr #124).


  • In Rebase, we've now added PRs for a finalized version of flows for credentials that attest ownership of NFTs and POAPs (rebase #53, 54).
  • Additionally, we've added several PRs that simplify integration times, and we're currently adding TypeScript bindings to its client for a much better developer experience in the frontend (rebase #56, #57, #58).

Spruce lets users control their data across the web. Spruce provides an ecosystem of open-source tools and products for developers that let users collect their data in one place they control, and show their cards however they want.

If you're curious about integrating Spruce's technology into your project, come chat with us in our Discord: