SpruceKit
SpruceID
  • 🌲SpruceKit Introduction
    • Decentralized Identity Overview
    • Glossary
  • ⚡Quickstart
  • SpruceKit Mobile
    • SpruceKit Showcase App
      • Installation
      • Getting Started
      • Issue a Showcase Credential
      • Present a Showcase Credential
    • SpruceKit Mobile SDK
      • Introduction
      • Core Components
        • StorageManager
        • KeyManager
        • CredentialPack
        • Card
        • IsoMdlPresentation
        • mDocReader/IsomDLReader
        • Document Scanner
      • SpruceKit iOS SDK
        • Installation
        • Build a Wallet
          • Accept a W3C VC
          • Present a W3C VC
          • Present mDL in-person/offline
          • Present an mDL over the internet
        • Build a Verifier
          • Verify a W3C VC
          • Verify an mDL in-person/offline
          • Verify an mDL over the internet
      • SpruceKit Android SDK
        • Installation
        • Build a Wallet
          • Accept a W3C VC
          • Present a W3C VC
          • Present an mDL in-person/offline
          • Present an mDL over the internet
        • Build a Verifier
          • Verify a W3C VC
          • Verify an mDL in-person/offline
          • Verify an mDL over the internet
  • Verifiable Digital Credentials
    • ⚙️DIDKit
      • Installation
      • Core Concepts
      • DID Methods
      • Runtime Configuration
      • Specifications and Dependencies
      • Quickstart
      • DIDKit Packages
        • Command Line Interface
        • HTTP Server
        • Rust Crate
        • C Interface
        • Java and Android
        • Python
        • Javascript
      • DIDKit Examples
        • Core Functions (CLI)
        • Core Functions (HTTP)
        • did-web in minutes
        • Batch Generation & Verification
    • 🪪ISO mDL
      • Quickstart
      • Core Concepts
      • User Guide
  • Schema Definition Language
    • 🔗TreeLDR
      • TreeLDR Quickstart
        • First Schema
        • Compilation into JSON Schema
        • Compilation into JSON-LD Context
        • Writing a Layout
        • Simple Rust Integration
      • Types
        • Literal Types
      • Layouts
        • Primitive Layouts
        • Literal Layouts
        • Enumeration
        • Array Layout
        • References
      • Compiling
        • Schema Definition Formats
          • JSON Schema
          • JSON-LD Context
          • Resource Description Framework (RDF)
        • Programming Languages
          • Compiling to Rust
      • RDF Vocabulary
      • 💡TreeLDR Basics
        • Types and Layouts
        • Properties
        • Syntax
  • Witness for Credential Claims
    • 🔭Rebase
      • Core Library
      • Rust Client/Witness SDK
      • WASM Client SDK
      • Simple "Basic Post" Schema
      • DNS Witness Flow Schema
  • References
    • Contributing
    • Code of Conduct
Powered by GitBook
On this page

Was this helpful?

  1. Witness for Credential Claims

Rebase

PreviousSyntaxNextCore Library

Last updated 10 months ago

Was this helpful?

Rebase - Map Identities to Cryptographic Keys

is a library for handling the witnessing of cryptographically verifiable claims, and the issuance of Verifiable Credentials (VC) based on this programmatic witnessing. It is based on several layered abstractions defined with Rust traits. In particular, Rebase abstracts schemas that can be wrapped inside VCs using the SchemaType trait. This trait provides the required pieces of a VC:

  • a JSON-LD context to interpret the VC serialized as a JSON-LD document,

  • the types of the VC,

  • the subjects of the VC, and

  • the evidence of the VC.

Defining the necessary JSON-LD context introduces a lot of redundancies with the schema definition, and depending on the schema size, can be very tedious. This section shows a few examples on how TreeLDR can be used to simplify the definition of types and the conception of JSON-LD contexts when implementing Rebase flows.

Projects

Several projects are hosted in the .

  • The written in Rust supports the creation of VCs from simpler structs, the signing of VCs using an Issuer abstraction, and witness flows for public issuers of VCs (along with their consuming clients).

  • The also written in Rust which supports specifically applications seeking to act as Issuer Witnesses or clients of Issuer Witnesses. Creates an opinionated implementation of the main library allowing users to build on top of it quickly.

  • The published to NPM using Rust->WASM compilation, allowing in browser usage of the witness/client library.

  • The which is open-source code base of the SpruceID Rebase Witness and serves as a working example / demo of the witness library.

Examples

There's an existing which is the built version of the demo/dapp site, and makes use of a deployed witness service which in turn is the built version of the rebase_cf_worker codebase.

Rebase
Rebase GitHub repo
main library
witness library
client library
Witness CloudFlare worker
credential faucet
🔭
Page cover image