MATTR mDocs Holder React Native - v6.0.0

MATTR mDocs Holder React Native

Table of Contents

Licensing

Request or download the MATTR Pi SDK Trial License Agreement and the MATTR Customer Agreement and review these terms.

Features

  • Interface with an issuer to obtain an mDoc as per OpenID4VCI (OpenID for Verifiable Credential Issuance).
  • Interface with a verifier and present an issued mDoc for verification/inspection:
  • Generate, store and manage access to:
    • mDocs issued to an application integrating the SDK.
    • Device keys which are bound to issued mDocs.
  • Manage lists of:
    • Trusted issuer certificates which issued mDocs can be validated against.
    • Trusted verifier certificates which are used to validate OID4VP (OpenID for Verifiable Presentations) authorization requests fetched as part of an mDoc retrieval flow.
  • Use referenced Status lists to to check mDocs’ revocation status.

System requirements

iOS

Technology Version
Xcode 16.2 or higher
iOS 15(*) or higher
iPhone iPhone 6S or higher
  • Although the SDK features require iOS 15 or higher, the minimum deployment target is set to iOS 13. This allows the app to launch on iOS 13 devices without crashing, provided that the SDK is not initialized.

Android

Technology Version
Android Gradle Plugin 8.3.0
Gradle 8.3
Kotlin 1.9.0
JDK 17
Android min API level 24
Android target API level 34

React Native

Technology Version
Node v18 or higher
React Native 0.73.x, 0.77.x, 0.78.x and 0.79.x

The SDK was tested with react-native 0.73.10.

Getting started

Get access

Refer to our SDK Docs landing page for step-by-step instructions to gain access to any of our SDKs.

Please reach out in case you need any assistance.

Install dependencies

  1. Add the SDK as a dependency to your React Native app:
yarn add @mattrglobal/mobile-credential-holder-react-native

Linking the package manually is not required from React Native 0.60 and higher that supports Autolinking.

Install pods (iOS)

Install the pods (via Cocoapods) to complete the linking.

npx pod-install ios

Register local Maven repository (Android)

The precompiled MATTR Mobile Credential Holder Android Native SDK is provided in the published NPM package.

To bundle the native libraries, append the following changes to the android/build.gradle script:

 allprojects {
repositories {

google()
+ maven {
+ url = "$rootDir/../node_modules/@mattrglobal/mobile-credential-holder-react-native/android/frameworks"
+ }
}
}

Configure the SDK (Android)

Add the following manifest placeholders to your app's build.gradle file:

android {
defaultConfig {
// Add the next line
manifestPlaceholders = [mattrDomain: "credentials", mattrScheme: "io.mattrlabs.sample.mobilecredentialtutorialholderapp"]
}
...
}

This configuration allows your Android app to receive authentication results from the browser. The specified values are used to construct the URI that the SDK will use to redirect the user back to your app after they complete authentication with the issuer:

  • mattrScheme : Can be any path that is handled by your application and registered with the issuer.
  • mattrDomain : Can be any path, however our best practice recommendation is to configure this to be credentials, as the standard format for the redirect URI is {redirect.scheme}://credentials/callback.

The combination of these values ({mattrScheme}://{mattrDomain}/*) must exactly match a redirect URI that has been whitelisted for the OAuth client used to authenticate the holder. This is required for the SDK to successfully retrieve credentials.

Using with compatible MATTR SDKs

This SDK can be used alongside the mDocs Verifier SDK (mobile-credential-verifier-react-native) within a single app. To ensure compatibility, always use the latest version of both SDKs. If you're using different version combinations, please contact us to confirm compatibility.

When combining both SDKs in the same application, add the following activity to your app's android manifest:

    <application>
...
+ <activity
+ android:name="global.mattr.mobilecredential.common.webcallback.WebCallbackActivity"
+ android:exported="true"
+ android:label="@string/web_callback_activity_label"
+ android:launchMode="singleTask" >
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <data android:scheme="${mattrScheme}"
+ android:host="${mattrDomain}" />
+ </intent-filter>
+ </activity>
...
</application>

Change Log

6.0.0

Features

First GA release as a standalone SDK.

Previous versions of this SDK were only available as an extension. For a detailed list of previous changes to this SDK please refer to the React Native Holder SDK changelog under the Mobile Credential category.

Generated using TypeDoc