Skip to content

Verifiable Credential Wallet SDK and Demo/Reference Wallet App (Go / GoMobile | Android | iOS)

License

Notifications You must be signed in to change notification settings

trustbloc/wallet-sdk

Repository files navigation

License Release Godocs

Build Status Go Report Card

Wallet SDK

The TrustBloc Wallet SDK repo contains APIs to receive and present W3C Verifiable Credentials(VCs) signed using W3C Decentralized Identifiers(DIDs). These APIs are useful for the holder role defined in the W3C VC Specification.

The project contains the following source code components and build scripts for SDKs.

The repo also has code to generate a Reference iOS and Android built using the Flutter framework.

Specifications

The TrustBloc Wallet SDK implements following specifications.

Build/Run

Library/Package

Android

The Wallet SDK Android package is available on GitHub Maven Repository. Please refer wallet-sdk maven packages for the latest releases.

<dependency>
  <groupId>dev.trustbloc</groupId>
  <artifactId>vc-wallet-sdk</artifactId>
  <version>1.0.0</version>
</dependency>

Refer here for using the android package in your project.

Gradle Config

Add the following GitHub maven repository to dependencyResolutionManagement.repositories

maven {
  url = $URL
  credentials {
    username = $GITHUB_USER
    password = $GITHUB_TOKEN
  }
 }

Use the following URL based on snapshot or release dependency: RELEASE_REPO_URL=https://maven.pkg.github.com/trustbloc/wallet-sdk

iOS

The Wallet SDK iOS xcframework packages are distributed through Swift Package Manager (SPM). Please refer wallet-sdk tags with the suffix -swift-pm (e.g., 1.0.0-swift-pm) for the latest releases.

Project structure

The Go SDK is defined in pkg. If you want to build a native Go application, then this is what you'd use.

The gomobile-compatible version of the aforementioned Go SDK is defined in cmd/wallet-sdk-gomobile. It's similar to the Go SDK, except that the various functions, methods, and interfaces only use a subset of Go types that are compatible with the gomobile tool. The gomobile-compatible SDK generally acts as a wrapper for the Go SDK. Internally, it converts between the gomobile-compatible types and the types used by the Go SDK as needed.

Contributing

Thank you for your interest in contributing. Please see our community contribution guidelines for more information.

License

Apache License, Version 2.0 (Apache-2.0). See the LICENSE file.