Spruce Developer Update #21

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

Spruce Developer Update #21

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

with Ethereum

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.

  • We're currently in the process of designing and implementing a method of delegating object capabilities to a session key using a SIWE message. For more on session keys, check out:
From Sign-In with Ethereum to Session Keys
Session keys let users root all their digital interactions to their keys.
  • We are currently working various fixes across our libraries such as an update for our Discourse plugin, updating some of our examples, and are in the process of releasing v2.0.4 of our SIWE core library.
  • As mentioned in our previous update, our community run identity server via the ENS DAO has had a witnessed deployment and is currently set up on Cloudflare along with relevant access for witnesses. Additionally, the Sign-In with Ethereum documentation has been updated to point to this new server.
  • We are currently finishing work with a major wallet on a direct Sign-In with Ethereum integration, and are currently working on how Sign-In with Ethereum can support non-standard verification methods.
  • We're currently working on a new, ergonomic way to use Sign-In with Ethereum and session management for applications, and are currently in the process of setting up beta testing. If you're interested in trying this out, please get in touch.


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 Web3 wallet.

  • We've rewrote the core SDK functionality in Rust, refactored out some core definitions from kepler to kepler-lib, and added support for CACAO-ZCAPs (kepler #116)
  • We've implemented better bundling of the Wasm SDK dependency to improve developer experience, removing the need for specific configuration downstream. (kepler-sdk #40)


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


  • We've added a basic UCAN implementation that takes advantage of ssi's JWT/JWS and DID tools. (ssi#447).
  • Various minor improvements and fixes.


  • We have deployed the first demo example of a Rebase frontend that allows users to go through various workflows that result in the user receiving a valid Verifiable Credential.
  • The demo features credential workflows for Twitter accounts, GitHub accounts, DNS ownership, and demonstrating ownership over two Ethereum wallets.
  • We've fully documented the architecture, and have added guides on implementing new signers, witness flows, and schemas. This information will also be added to the core SpruceID documentation.
  • Our next step here is to contribute this codebase to the Rebase community initiative, allowing any organization to issue Rebase credentials.

Standards and Community

  • We congratulate the Decentralized Identity community on the DID-core specification moving forward to become a W3C recommendation.

Spruce lets users control their data across the web. Through SpruceID and Kepler, Spruce provides an ecosystem of open source tools for developers that let users collect their data in one place that 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: