Spruce Developer Update #31
At Spruce, we’re letting users control their identity and data across the web. Here’s the latest from our development efforts:
In case you missed it, check out our previous update here:
At Spruce, we’re letting users control their identity and data across the web. Here’s the latest from our development efforts:
SSX
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.
- As mentioned in our previous update, there is ongoing work to add support for working with user-controlled data in SSX. If you're curious about this work, message us on Discord!
- We recently released a tutorial on quickly getting started with using SSX in your Next.js application - check that out here:
- We've reviewed and updated all existing examples to be sure they are working correctly with recent package changes. We also added all examples to the workspace to make testing any SSX updates easier (#114, #117, #123).
- We've added a few optimizations to SSX by reducing CI time to verify PRs faster, updating unit test providers to avoid timeouts, and more (#112, #118).
- We've updated our
ssx-authjs
library and corresponding examples to support Next 13 (#120). - We've enabled forwarding
siweConfig
overwrites to extensions (#129).
Sign-In 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.
- We have now moved
v2.0
out ofbeta
and it is now tagged aslatest
. We encourage anyone usingv1.1.6
to update to the latest version. For more information on changes, check out the following guide:
- We have now released
v2.1.4
with support for both ethersv5
orv6
, and added some additional improvements (#146, #147). - We will be working on adding additional updates to our
siwe
library which will be tagged asv3-experimental
. For more information on upcoming changes to the library, get in touch via our Discord!
Kepler
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 using your existing keys.
- Our implementation of a libp2p-based synchronization protocol is progressing (#141, #142).
- A configurable base storage limit has been added for deployments wishing to provide and limit storage for users (#140).
- We have commenced work on moving the capabilities model implementation into SQL, allowing much more flexible and performant access and authorization checks (#143).
SpruceID
SpruceID is a decentralized identity toolkit that provides everything you need for signing, sharing, and verifying trusted information.
DIDKit / ssi
- We rewrote our VC API implementation in Axum (didkit #351) and added it to the W3C-CCG interoperability test suites (#64).
- We made the DIDKit CLI trim input JWTs to avoid verification failure on correct JWTs (didkit #350).
- We've added the VM JWK algorithm to unsigned JWT VCs, fixing the verification of such VCs (ssi #511).
- We've serialized
NumericDate
asint
if it doesn't have fractional seconds to improve interoperability with most JWT libraries (ssi #507). - We've fixed context map retrieval, and added various improvements, including to our CI pipelines and releases (ssi #506).
TreeLDR
TreeLDR is a schema definition language that aims to describe the structure and semantics of the defined schema comprehensibly. It lies at the intersection between RDF and structure-oriented schema definition frameworks such as JSON Schema.
We've made various improvements to the Rust code generator including:
- Generating and implementing traits for each RDF class (#124).
- Generating RDF quads iterators for all types (#122).
- Allowing the import of extern modules, allowing modular code generation (#130).
...and finally, we've improved our JSON-LD serializer (#132), and improved error messages for the JSON-LD context and JSON Schema generators (#126).
Rebase
- We're continuing our work to add robust Typescript types to
rebase-client
. - We're investigating adding self-issuance features to
rebase-client
, built on a previous Proof-of-Concept that allowed self-issuance with Solana keys – which we now hope to support any ed25519 key by using thedid:key
method. Soon, simple “Witnessed” self-attested credentials will be added for flows for keys that cannot sign VCs. (#61).
Spruce lets users control their data across the web. Spruce provides an ecosystem of open-source tools 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, chat with us in our Discord.