About BC Wallet

BC Wallet is a smartphone app available for iOS and Android devices. It lets you receive, store and present digital credentials such as permits, identities, and licenses. 

The focus of BC Wallet is to keep your information secure and confidential. Digital Credentials in BC Wallet are highly tamper-resistant and are only stored on your smartphone. The government is not told when, where or how you use this digital wallet. 

Four screenshots of BC Wallet in action

BC Wallet only sends or receives information over secure, confidential connections.  

Most people will not have a use for BC Wallet right now. BC Wallet is in the app stores as an exploration of the technology. It does not support credentials that work in Apple Wallet or Google Wallet. 

Screenshot of BC Wallet Showcase website

To see BC Wallet in action, we recommend the BC Wallet Showcase.  

BC Wallet, and the technologies it uses, are built with open-source code that anyone can review.  


A long-term objective of BC Wallet is to help British Columbians feel more confident when they interact online. 

Here are some of the benefits of BC Wallet. 

  • Confidentiality: No one, other than the party you’re interacting with, knows when or how you’re using BC Wallet.  This confidentiality is a core part of the technology behind BC Wallet. The code is available for anyone to review and explore.
  • Instant verification: No one can tamper with your information in the wallet. The place accepting your digital credentials can be confident that your information is legitimate. They can trust it came from the right organization without having to contact them. This could dramatically reduce the time to complete processes and forms.
  • Ease of adoption: Digital credential technology is open for anyone or any organization to use. This makes it easier for services within B.C. to start using it. The technology is designed to focus on interoperability. No single centralized service is required.
  • More control over personal information: With BC Wallet, you approve every use of your digital credentials. You provide only the information from a digital credential that’s needed for a situation. It’s possible to prove things about your information without providing the information itself. For example, you could prove you’re over 19 without providing your actual date of birth.


BC Wallet allows a person to receive, store (hold), and use (present) Digital Credentials in the Verifiable Credentials (VC) format. It is positioned at level 3 of the Trust Over IP Stack.  

The four-layer, two-stack Trust Over IP Model

There is also a mediator service, based on Aries Cloud Agent Python (ACA-Py) and again using open-source code. This service passes requests to and from the wallet. This is necessary given the potential unavailability of a mobile wallet agent due to the device being powered off or having no Internet access. Note that the mediator cannot read the encrypted messages that it routes.  

The BC Wallet technology diagram, showing issuers, BC Wallet, verifiers, and the registry

Because of the technology of Verifiable Credentials and the Trust Over IP stack, verifiers never need to contact the issuer to validate a Verifiable Credential. This trust is instead assured through cryptographically protected information in the Verifiable Credential, and by using a decentralized Trust Registry. This gives BC Wallet users a high degree of confidentiality when they present their credentials. 

BC Wallet’s code is open source. It uses the core of Bifold, a mobile wallet app written in React Native. Bifold, in turn, uses Aries Framework JavaScript (AFJ) as its Verifiable Credentials agent.  

Aries Framework Javascript inside a box called Bifold core functionality, which is inside a box called BC Wallet

See also