Spruce Developer Update #14

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

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.

  • We released the first public Sign-In with Ethereum example on login.xyz for users to try out and view the presented message format. It involved signing in and voting on a poll between a rainbow or unicorn emoji which is saved even after disconnecting. All of this demonstrates an established session with a user.
  • We released the SIWE library and an example to help kickstart its adoption. The example runs a local server that authenticates the user using their Ethereum account, via EIP-4631. The server presents to the user a dapp that uses SIWE to interact with the server. We encourage anyone that wishes to integrate Sign-In with Ethereum to check out the library and chat with us in our Discord for any questions.
  • As part of our research for SIWE, we needed to compare signing methods to decide which would be best to leverage for the specification. We recently released some public research comparing EIP-191 vs EIP-712, and why we chose EIP-191 for the first version of the specification.
  • We have released all of the visual assets associated with SIWE under CC0 in the Sign-In with Ethereum library repository. These assets include the logo, logomark, icon, and example button.
GitHub - spruceid/siwe: Sign-In with Ethereum library and example app
Sign-In with Ethereum library and example app. Contribute to spruceid/siwe development by creating an account on GitHub.


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.

  • Implemented an S3-like HTTP API for decentralized object storage, suitable for hosting and serving web content (kepler#61).
  • Updated the Kepler-SDK with support for object storage (kepler-sdk#29).
  • Implemented experimental support for using Ceramic Streams as Orbit Manifests (kepler#60).


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


  • Added limit to request body sizes in DIDKit HTTP (didkit#229).
  • Added CLI proof type option (didkit#230).
  • Fixed compilation warnings (ssi#305).
  • Improved credential revocation list error handling (ssi#314).
  • Improved JsonWebSignature2020 support (ssi#322)
  • Added bundled JSON-LD context files for Ed25519Signature2020, BBS+ Signatures 2020, DIF Presentation Exchange, and Blockchain Vocabulary v1 2021.
  • Improved handling of private key material (ssi#327, ssi#328).
  • Updated for changes in EthereumEip712Signature2021 (ssi#336).
  • Added Ed25519Signature2020 implementation (ssi#341).
  • Enable parsing NZCP issuer DID document (ssi#349).
  • Support Tezos test networks in did:tz (ssi#350).
  • Tested JsonWebSignature2020 implementation in DIF JWS-Test-Suite (JWS-Test-Suite#14)
  • Many more minor improvements and bug fixes.


  • We're still currently in the process of refactoring our workflows from Tezos Profiles into a library that will be able to work with any supported blockchain in DIDKit and should have more news about an initial release soon!

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: