Spruce Developer Update #16

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 #16

At Spruce, we’re letting users control their identity and data across the web. Here’s 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.

with Ethereum - January Updates
Sign-In with Ethereum offers a new self-custodial option for users who wish to assume more control and responsibility over their own digital identity.
From Sign-In with Ethereum to Session Keys
Session keys let users root all their digital interactions to their keys.
  • We've released our Sign-In with Ethereum developer portal, complete with quickstart guide, installation instructions for a number of our libraries, and additional information to help any builder leverage Sign-In with Ethereum.
  • We redesigned the login.xyz portal and added additional sections for the latest updates, supporter highlights, and more.
  • We released a Python library for Sign-In with Ethereum, complete with a pypi package.
  • We've added documentation for our Ruby library, to enable anyone using SIWE in their Ruby project to quickly get started.
  • We've deployed a demo version of our OIDC server, and we're currently going for OpenID Connect certification. This would add additional certainty around the integrity and guarantees of the server, and enable anyone to comfortably rely on the implementation. Additionally, we're in the process of packaging our efforts into integrations in the Auth0 marketplace.
  • We are currently working on additional documentation covering how to resolve a user's ENS profile, NFT holdings, and leveraging token-gated access, other libraries including Go and PHP, a NextAuth integration, and more.


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. Kepler is not ready to test out just yet, but please stay tuned for its upcoming release.

  • Sign-in with Ethereum-based key delegation support has been merged into Kepler and the Kepler-SDK, allowing any Ethereum dapp to use Kepler with a non-invasive UX.
  • We're currently in the process of switching dependencies from ipfs-embed to rust-ipfs, and we're currently patching some changes which we'll be raising as PRs upstream.
  • We're working on getting more information on Kepler out to the developer community interested in user-controlled data. Stay tuned this month for some updates here!


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


  • Implemented EIP-55 “mixed-case account address checksum” verification. (ssi #370)
  • Added DID resolution function to Node.js package.
  • RSA did:key support merged.
  • Improve compatibility with DIF Sidetree DID resolution results. (ssi #372)
  • Add Universal Wallet JSON-LD context. Updated other JSON-LD contexts. (ssi #383)
  • Enable VC-JWT issuer claims.
  • Fixed typos; improved documentation.
  • (In progress) OpenPGP key and signature support with did:webkey:gpg (ssi #373)
  • (In progress) DIF Sidetree and did:ion client implementation. (didkit #255)
  • (In progress) Implementing DID update, recover, and deactivate commands.

Standards and Community

  • did:pkh work item calls ongoing.
  • Fixed typos in specifications: DIF DID Registration, DIF Sidetree, W3C DID Core.

Spruce lets users control their data across the web. Through our products, 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: