Certain functionality might not be available yet
The Sphereon Wallet is a new breed of open standards, open-source, privacy-preserving applications, that gives you full and sole control over your own information. It enables you to manage your own data.
Your data is stored nowhere else but on your phone. Nobody else will have access unless you decide to share it with them. Only you decide if you want to share your data with someone else.
The Sphereon Wallet is build around W3C Decentralized Identifiers and can receive W3C Verifiable Credentials from Issuers and present them to Verifiers.
The wallet is build using our Apache2 open-source licensed SSI-SDK and its key/DID extensions, which you can use to create Issuer and Verifier agents as well as mobile and web wallets.
The wallet supports or soon (*) will the following features:
Since the Wallet is a so-called Self Sovereign Identity Wallet, no information you provide during the onboarding will be shared with any external. That includes the developer (Sphereon) of the Wallet. You will always be asked when receiving or sharing data with external systems. The user details you provide during the onboarding are used for personalization, supporting multiple profiles and future features of the Wallet. There is no e-mail validation or external system involved.
You can receive Verifiable Credential from so called issuers. The wallet has support for multiple open standards to get these Credentials. Currently on the OpenID for Verifiable Credential Issuance standard is enabled.
The current wallet only supports the new OID4VCI specification for receipt of credentials. To get a credential issued to the wallet, using OpenID for Verifiable Credential Issuance (OpenID4VCI) the following steps can be followed. The below issuer systems were part of the JFF/W3C-EDU plugfest 2 to show interop for OpenID4VCI. Please note that the Verifiable Credentials issued by the below list are just for demo/testing purposes.
These 4 links are Sphereon demo issuers, branded differently
Other issuers:
Please note that you have to press the Accept button and make sure the checkbox is enabled
Depending on whether the issuer supports issuing multiple credentials or not, you will have to make a selection. Note that the current wallet can only accept one credential at a time!
You can share Verifiable Credentials with so called Verifiers or Relying Parties. The wallet has support for multiple open standards to share these Credentials. Currently on the OpenID for Verifiable Presentations standard is enabled.
The current wallet supports the new OID4VP specification for sharing credentials. To share a credential from the wallet with the Verifier, using OpenID for Verifiable Presentations (OID4VP) the following steps can be followed. Please note that the Verifiable Credentials shared with the below list should only be used for demo/testing purposes.
Launch the wallet
Navigate to the QR reader at the bottom left.
Scan one of the QR codes of the following verifiers:
"uri": "<CREDENTIAL_TYPE>"
to "uri": "SphereonWalletIdentityCredential"
)The first time you encounter an Issuer or Verifier system a Contact needs to be created. The Wallet will pre-fill a suggest name:
Please note that you have to press the Accept button and make sure the checkbox is enabled
You will now go to the overview screen from where you will have to select the required Verifiable Credentials from your wallet. An error will be displayed if the Verifier is asking information not present in your wallet
Please note that this wallet is licensed as Apache2.0. Sphereon also offers commercial licenses.
There are several other utility scripts that help with development.
yarn fix:lint
- runs eslint --fix
to fix code style.yarn fix:prettier
- runs prettier --write
to fix code style.SSI Wallet uses Expo SDK v48 and React-Native v0.71.
Use a nvm (Node Version Manager) or directly install a LTS version of NodeJS. The version of NodeJS should be 18.x.x which is required for RN 0.71 to work. The app is not guaranteed to work with higher Node versions and it will certainly not work with lower Node versions.
Use nvm list available
to list the available versions of Node.
Then install and make it the default. Please ensure you have proper permissions. On Windows this can mean running the command prompt or powershell as administrator!
Example:
nvm install 20
nvm use 20
You can use the following command to check the node version.
nvm current
NOTE: After installation be sure to close the terminal window. If installed from your IDE, be sure to close the IDE and start it (do not restart, as it might not pick up the latest environment variables)
We use Yarn as package manager. Install it with the following command:
npm install --global yarn
NOTE: After installation be sure to close the terminal window. If installed from your IDE, be sure to close the IDE and start it (do not restart, as it might not pick up the latest environment variables)
The SSI-Wallet can be started by running one of the following commands.
expo android:start
For Android you need to make sure that your wallet is connect using a USB cable and that developer options are enabled. If you do not connect the phone using USB it will start the Android emulator instead
By default, it uses port 8081.
You will have to use Xcode directly for now. We will work on getting the below command working.
expo ios:start // Please note this command currently doesn't work
Run the below commands on the command line to update all dependencies.
yarn install
cd ios
pod install
In XCode select the Product -> Run
option from the menu. (If you want to create a archive for instance for TestFlight,
you can choose Product -> Archive
).
It will take some time for the app to start. In some circumstances you might not get directly to the app. If that is the
case lookup whether the Sphereon Wallet application can be found in you apps. If so start it from there. You should see
the bundler starting.