- Notifications
You must be signed in to change notification settings - Fork9
Digital wallet with eIDAS 2.0 compliancy, ISO 18013-5 mdocs, IETF SD-JWT VC, OID4VC, and W3C VCs.
License
procivis/one-wallet
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- How to use the Procivis One Wallet
- Getting started
- Background
- eIDAS 2.0
- Interoperability and conformance
- Supported standards
- Support
- License
TheProcivis One Wallet is a digital wallet solution for decentralized digitalidentities and credentials. The Wallet enables the secure storage, management, andsharing of identity data, credentials, and attributes as needed via a multitude oftechnologies and protocols.
TheProcivis One Wallet uses theProcivis One Core for all SSI functionalityvia theOne Core React Native SDK.
TheProcivis One Core is a complete solution capable of powering every elementof the digital identity credential lifecycle. See thekey features andcomplete solutionarchitecture.
- Use the Wallet for a free-standing solution that can be white-labeled
- Use theOne Core React Native SDK to embed wallet capabilities into an existing app
- Use theOne Core React Components library for UI elements for your digital wallet app
The fastest way to get started with the Procivis One Wallet is to download the appfrom the iOS or Android app stores andjoin our Trial Environment.In the trial environment, you are given control of an organization on our serversolution, the Procivis One Desk, and can quickly begin issuing and verifying credentials.
See our documentation:
Each flavor has a separate configuration script defined inpackage.json
file, namedrnuc:{flavor}
.
To build the app using one of flavors, configuration script needs to be called before starting the bundler and compiling the app. For example, to build Dev Wallet flavor for iOS, run:
yarn rnuc:devyarn build-ios
or to debug same flavor:
yarn rnuc:devyarn startyarn ios
- Install yalc:
yarn global add yalc
- Go to dep package and increase package version in package.json
- Run in dep package:
yalc publish --push
- Go to one-wallet and run:
yalc add my-package-name
There are .env files in theapp/config
folder of the project for each of the app flavors. For each flavor there is a separate config file inapp/config/flavors/{CONFIG_NAME}
defining the backend urls, and Aries connections. In the same folder, there is an assets configuration containing flavor-specific assets for some UI components like a splash screen, or credential cards. In addition, each flavor has a UI theme defined inapp/theme/flavors/{CONFIG_NAME}
i.e. a color scheme, and palette.
For each flavor, there is a separate set of icons and splashscreens in Android and iOS projects.
Splashscreen underandroid/app/src/main/res/values/styles.xml
Square icon underandroid/src/main/res/minimap-{screen-size}/ic_launcher_{CONFIG_NAME}.png
Round icon underandroid/src/main/res/minimap-{screen-size}/ic_launcher_{CONFIG_NAME}_round.png
Splashscreen image is added in assets folder underSplashscreen.{CONFIG_NAME}
image set, and in addition there is a separate Storyboard namedLaunchScreen.{CONFIG_NAME}.storyboard
for each flavor.Icons are in asstes folder underAppIcon.{CONFIG_NAME}
image set.
In order to run the E2E tests, one needs to build a proper detox app build first:
See the.detoxrc.js
for all possible configurations.
- build (once)
npx detox build --configuration android.emu.release
- run tests
npx detoxtest --configuration android.emu.release
npx detox build --configuration ios.sim.release
npx detoxtest --configuration ios.sim.release
- Restart adb server
adb kill-serveradb start-server
Source:
Installation:
- Install
cdxgen
npm install -g @cyclonedx/cdxgen
- Install
blint
(python) for generateandroid
SBOM (optional)
pip install blint
- Prepare env
export FETCH_LICENSE=true
- ReactNative SBOM
cdxgen --required-only -p -t js -o react-native-sbom.json
- Android (Java) SBOM
cdxgen --required-only -p -t java -o android-sbom.json
Decentralized digital identities and credentials is an approach to identity that relocatesdigital credentials from the possession and control of centralized authorities to thedigital wallet of the credentials holder. This architecture eliminates the need for theuser to "phone home" to use their credentials as well as the verifier to communicate tothe issuer via back-channels, keeping the wallet holder's interactions private between onlythose parties directly involved in each interaction. This model of digital identity isoften referred to as Self-Sovereign Identity, or SSI.
If you want to provide anEUDI Wallet,Procivis One provides production grade opensource components to get certified and connect your organization to the eIDAS 2.0 ecosystem.
For an EUDI Wallet, use theOne Core React Native SDK for embedding intoan existing app, or use theProcivis One Wallet with adaptations to fit yourneeds.
If you want to issue into an EUDI Wallet or offer services to an EUDI Wallet holder,use theProcivis One Core.
Procivis One is built usingopen standards and tested to ensureinteroperability with different software vendors and across different internationalregulatory ecosystems.
- W3C standards
- The W3C offers several test suites for standards conformance. Seethe latest test results forProcivis One atcanivc.com.
- ISO/IEC 18013-5 mDL
- Procivis One's implementation of the ISO mDL standard is compatible with theOpenWallet Foundation's verifier:Procivis One can successfully issue mDLcredentials to aProcivis One Wallet, and these credentials can successfullybe verified by the OpenWallet Foundation's verifier. See theOpenWallet Foundation libraries.
- eIDAS 2.0; EUDI Wallet
We continue to look for more opportunities for interoperability testing as the standardsand regulations mature and harden.
- W3C Verifiable Credentials Data Model 2.0 in the following variations:
Securing mechanism | Supported representations | Supported proof/signature types |
---|---|---|
W3C Data Integrity Proofs (embedded) | JSON-LD in Compacted Document Form | |
W3C VC-JOSE-COSE (enveloping) |
* CRYSTALS-DILITHIUM is a post-quantum resistant signature scheme, selected by NIST forPost-Quantum Cryptography Standardization.Support for the recently publishedFIPS-204 is planned for the near future.
- ISO/IEC 18013-5:2021 standard for mdoc credentials.
Standard | Supported representations | Supported proof/signature types |
---|---|---|
IETF SD-JWT VC | SD-JWT |
* CRYSTALS-DILITHIUM is a post-quantum resistant signature scheme, selected by NIST forPost-Quantum Cryptography Standardization.Support for the recently publishedFIPS-204 is planned for the near future.
- OpenID for Verifiable Credentials
- OID4VCI; ID-1
- OID4VP; ID-2
- OID4VP over BLE; optimized version of Draft 00
- OID4VP over MQTT; proprietary adaptation of "OID4VP over BLE" via MQTT channel
- ISO/IEC 18013
- Secure Enclave (iOS) and Android Keystore (TEE or Strongbox)
- Internal encrypted database
Need support or have feedback?Contact us.
Some rights reserved. This library is published under theApache LicenseVersion 2.0.
© Procivis AG,https://www.procivis.ch.
About
Digital wallet with eIDAS 2.0 compliancy, ISO 18013-5 mdocs, IETF SD-JWT VC, OID4VC, and W3C VCs.