Learner Credential Wallet is a cross-platform iOS and Android mobile application for storing and sharing digital learner credentials.
Install Learner Credential Wallet for your mobile!
The wallet is based on the learner credential wallet specification developed by the Digital Credentials Consortium. The learner credential wallet specification is based on the draft W3C Universal Wallet interoperability specification and the draft W3C Verifiable Credentials data model.
The app has been compiled for iOS and Android and allows users to add and share credentials, as well as manage the wallet.
This learner credential wallet includes the features and technical requirements ultimately enabling individuals to curate and present their learning and employment records to others—for example, as applicants to educational programs or to apply for jobs with employers—in an interoperable manner.
The Digital Credentials Consortium is working with a number of colleges and universities to pilot test the wallet.
If you encounter any issues, visit the Troubleshooting Page
Prerequisites:
See Installing on Linux on setting up the project on Linux.
git pull
npm i --legacy-peer-deps
to install the React Native dependencies.
npm i
or yarn
for exampleasdf
version manager run asdf install
to install - more info in asdf section below)npm run prebuild:ios
and npm run prebuild:android
to set up the ios
and android
folders. This step uses Expo prebuild.asdf install
to install the proper versions of the technologies used listed in the .tool-versions
file
asdf plugin add [plugin-name]
to add it to your local machine1) Run yarn start
in one terminal
2) In another terminal run yarn android
yarn ios
This project uses TypeScript and React Native with Expo. It would be best to use an
editor that can hook into the TypeScript language server (VSCode does this with
Intellisense, Vim does it with CoC). We also use eslint to catch common mistakes
and formatting errors. Most editors should support dynamic linting support while
editing. If your editor does not, you can manually lint by running npm run lint
in the project root.
This project also uses environment variables, which are stored in config.ts
.
These values can be overridden, but development values should not be committed to the repository.
├── app
│ ├── assets ← Image assets
│ ├── components ← React components
│ ├── hooks ← This is where custom hooks are defined (usually wraps lib methods)
│ ├── lib ← Location for utility methods
│ ├── mock ← Location for mock data, usually used for testing
│ ├── model ← Database access objects and connections
│ ├── navigation ← React Navigation structure
│ ├── screens ← Individual screen views
│ ├── store ← Redux and Redux Toolkit definitions
│ │ └── slices ← Redux Toolkit slices (add new Redux state here)
│ ├── styles ← All app style definitions
│ └── types ← General place for defining types (usually DCC types for Credential, Presentation, etc...)
├── android ← Auto-generated android build folder, can still be manually edited if needed
└── ios ← Same as android, except it also uses Cocoapods for dependency management
Overridable configuration lives in two places:
app.json
- created by Expo, contains app name, icon, splash
page color, etc.config.ts
- contains everything else,
including a list of Known DID Registries, deep link schemes, app website URLs,
and so on.Instructions for issuing a credential.
A custom display can be created for different credentials, to do so:
app/components/CredentialCard/YourNewTypeCard.tsx
app/components/CredentialCard/YourNewTypeCard.styles.tsx
credentialTypes
list defined in
app/components/CredentialCard/CredentialCard.tsx.
The function should return {component: YourNewCredentialCard, title: 'the title of the credential that should be used when listing it elsewhere'}
or null if the credential isn't the appropriate type for you custom displayWe have conducted a Voluntary Product Accessibility Test, please review the Learner Credential Wallet Accessibility Conformance Report, December 2021
For more information on accessibility please visit the MIT Accessibilty page.
This Privacy Policy explains how Learner Credential Wallet collects, uses, and processes personal information about our learners.
We do not collect any personal information.
We may change this Privacy Policy from time to time. If we make any significant changes in the way we treat your personal information we will make this clear on our website or by contacting you directly.
The controller for your personal information is the Learner Credential Wallet project at MIT. We can be contacted at lcw-support@mit.edu.
Learner Credential Wallet Terms and Conditions of Use
Initial development was supported by the U.S. Department of Education (Contract Number: 91990020C0105). The opinions expressed herein do not necessarily represent the positions or policies of the U.S. Department of Education, and no official endorsement by the U.S. Department of Education should be inferred.
Initial development was also supported by the Massachusetts Institute of Technology. Continued development is supported by members of the Digital Credentials Consortium.
MIT License Copyright (c) 2024 Massachusetts Institute of Technology
All files located in external directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above.