Portal-Managed Backups
Portal lets you securely back up your users’ MPC wallets so they can recover their wallets even if their device is lost or damaged. By default, Portal encrypts and stores both backup shares (“Portal-Managed Backups”):- The client backup share is encrypted on the user’s device, with the encryption key stored using their chosen backup method (Google Drive, iCloud, Password, or Passkey). The encrypted share is then stored by Portal.
- The custodian backup share is encrypted and stored by Portal, with the encryption key stored in our KMS infrastructure.
By default, Portal manages storing both the encrypted client backup share and the custodian backup share for you. If you prefer to store and manage the backup shares in your own infrastructure instead of using Portal-Managed Backups, see our Self-Managed Backups guide.
Backup Methods
You can choose one or more backup methods for storing the encryption key for the client backup share.Password/PIN
Allow customers to create a password/pin. Customers can either remember the password or store it in a password storage manager.Implementation Requirements
- Create a UI for password input.
- Enforce password requirements. Customer can choose between password, PIN code, passcode, or any other text-based input.
- If user forgets password there are no additional recovery options.
Passkey + Enclave
Allow customers to create a native passkey on their device that is used to authenticate into a secure enclave that holds the encryption key for the user. Customer’s passkeys are backed up to the native cloud storage for their device.Implementation Requirements
- Configure passkey storage with a relying party.
- Set up your associated domain correctly in your app.
Use Portal as your relying party
- Add
portalhq.ioas a web credential domain in your app. - Share your app bundle id with the Portal Team.
Use your own domain as the relying party
Ensure you have set up your associate domain correctly in your app and that you are serving an aasa file from whatever your relying party domain is set to.Google Drive
Google Drive backup stores the encryption key in the user’s Google Drive account. This method is available on both Android and iOS.Implementation Requirements
- Configure your Google OAuth client ID.
- Set up Google Sign-In in your app.
iCloud
iCloud backup stores the encryption key in the user’s iCloud Keychain. This method is only available on iOS. See the docs on how to configure iCloud.iCloud backup is only available on iOS devices. On Android, use Google Drive or Passkey backup instead.
Checking Backup Status
You can check if a wallet has been backed up:Platform Support Matrix
| Backup Method | Android | iOS |
|---|---|---|
| Password | ✓ | ✓ |
| Passkey | ✓ | ✓ |
| Google Drive | ✓ | ✓ |
| iCloud | - | ✓ |