Spruce Developer Update #20

Spruce Developer Update #20

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

with Ethereum

  • We have released our streamlined SIWE Core packages across all supported programming languages to have unified handling of message creation, parsing, and verification. Additionally, we released a v2.0 beta of our TypeScript library.
Sign-In with Ethereum - API Harmonization and TypeScript v2.0 Beta Release
In our continued updates on Sign-In with Ethereum support, we’re pleased to announce that we’ve harmonized the behavior of our SIWE Core APIs across different languages, added a number of optimizations, and have released a new beta of our TypeScript library with the included changes.
  • We've set up a release pipeline and had our first witnessed deployment for the ENS Community-Maintained OIDC IdP. For more information on this initiative, check out this post:
with Ethereum - Decentralizing an Identity Provider Server
While digging deeper on Sign-In with Ethereum adoption vectors for Web2, we found that many traditional services wanted to integrate Sign-In with Ethereum. Most already supported OpenID Connect (OIDC) and were open to adding a new Identity Provider (IdP) that supported the workflow. While we encoura…
  • We are still working on additional integrations with partners and frameworks. If you're interested in a specific integration, 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 a Web3 wallet.

  • We've added basic tracing to Kepler kepler#114.
  • We've expanded the Authorization Capabilities tracking subsystem functionality, making the authorization graph the attestation root of the service graphs.
  • We've moved our core Kepler SDK functionality into Rust to more easily use SSI functionality and to enable building SDKs for other languages in the future.
  • We've implemented support for CACAO-ZCAPs, improved the `put` function to make it easier to store objects of different types, and added support for listing objects by prefix: kepler-sdk#40 kepler#115.
  • On cryptoscript, we've merged Rustdoc documentation for the stack-based language and JSON query support (cryptoscript#2). Additionally, we've implemented an experimental front-end syntax for the language which supports variables, assignments, and more (cryptoscript#4).


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


  • Enabled ES384 JWS algorithm (ssi#431).
  • Added runtime-configurable context loader (ssi#432, didkit#298) (Thanks vdods/LedgerDomain!)
  • (In progress) Add CACAO-ZCAP integration (ssi#436).
  • Added JFF VC-EDU Plugfest 2022 context (ssi#440), (ssi#443) (Thanks TaylorBeeston/WeLibrary!).

Standards and Community


  • The initial library demonstrating the creation of VCs from witness flows is complete, with additional work on a self-serve UI currently ongoing.

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: