Spruce Developer Update #28
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.
Last month, we released a product update covering the latest development efforts on SSX - you can check that out here:
Additionally, we've released the first of many developer tutorials to come, using SSX with RainbowKit and Alchemy to build your first token-gated dapp:
We've continued to work on ways developers can leverage user-controlled data, wider support for NextAuth and Auth.js, additional test coverage, and a big push for ETHDenver this year. Stay tuned for that upcoming release!
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 plan on moving EIP-4361 from
Review
toLast Call
this month to fully advance the standard toFinal
. - We are currently updating our ReCap library for extended compatibility with other specifications. We plan on updating EIP-5573 to reflect these changes (siwe-recap #14).
- Our next community call for Sign-In with Ethereum is this Wednesday - make sure to tune in to hear from us and our friends at Unlock Protocol!
- We're waiting for some additional external review of our changes to the
siwe
TypeScript library (#138 and #139).
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, all using your Web3 wallet.
- We've recently refactored Kepler to rely on
libp2p
, andlibipld
while removing therust-ipfs
dependency (kepler #132). - We've added support for a capability read function so clients can read capabilities delegated to them and others if authorized (kepler #134).
- We've updated the Kepler SDK to account for the changes in Kepler for the capability read function (kepler-sdk #53).
SpruceID
SpruceID is a decentralized identity toolkit that provides everything you need for signing, sharing, and verifying trusted information.
SSI
- We've updated our
ssi
library to use the latest version ofjson-ld
(ssi #500).
TreeLDR
TreeLDR is a schema definition language that aims to describe the structure and semantics of the defined schema in a comprehensible way. It lies at the intersection between RDF and structure-oriented schema definition frameworks such as JSON Schema.
- We optimized unification of non-recursive blank nodes. The unification phase now runs in
O(n)
time average instead ofO(n²)
(treeldr #101). - We've added type hierarchy support. TreeLDR now understands what a sub class is. (treeldr #105).
- We re-introduced RDF loader. This will allow the compiler to accept any RDF syntax as input in the future. For now, only N-Quads (besides the TreeLDR DSL) is supported. (treeldr #108).
- We relaxed ordering constraints on layout intersection. Intersecting two structure layouts sharing the same fields but in a different order will not raise an error anymore (treeldr #110).
- We minimalized the
rdfs:domain
andrdfs:range
relations. This simplifies a lot of internal reasoning about properties (treeldr #112).
Standards and Community
- We've contributed a holder-binding focused use-case to the W3C VC use cases (vc-use-cases #129).
Spruce lets users control their data across the web. Spruce provides an ecosystem of open-source tools and products 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, come chat with us in our Discord: