- Generate
- Backup
- Recover
- Sign
Generate
Creates new signing shares from randomly generated values.This only affects signing shares.
Steps
When you callportal.createWallet()
two steps happen under the hood.
- Create Signing Shares - After this completes the custodian signing share will have been successfully stored in Portal’s database and the client signing share is stored on the Portal client’s device. This updates the signing share status to
STORED_DATABASE
. - Store Client Signing Share to Keychain - After the WebSocket successfully closes the client signing share is written to the device keychain and the SDK notifies the server that it succeeded. This updates the signing shares status to
STORED_CLIENT
.
Backup
Creates new backup shares using the signing shares.This only affects backup shares.
Steps
These are the steps of what happens when you callportal.backupWallet()
.
- Create Backup Shares - After this completes the custodian backup share is saved in Portal’s backend (if you are using Self-Managed Backups, the custodian backup share is then saved in your backend via the configured webhook). This updates the backup share pair’s status to
STORED_CUSTODIAN_BACKUP_SHARE
. - Encrypt Client Backup Share - The client backup share is encrypted on the client-side and the encryption key is uploaded to the client’s cloud storage.
- Store Client Backup Share - By default, Portal will store the encrypted client backup share for you. (If you are using Self-Managed Backups, you are required to store the encrypted client backup share and, if successful, call
portal.api.storedClientBackupShare()
to notify our backend that the client backup share was successfully stored.) This updates the backup shares status toSTORED_CLIENT_BACKUP_SHARE
.
If backup fails you are expected to handle the error (see the Error Reference) and re-run backup after handling it. Recover cannot be run until Backup succeeds.
Recover
Creates new signing shares using the backup shares.This only affects signing shares.
Steps
These are the steps of what happens when you callportal.recoverWallet()
.
- Create Signing Shares - After this completes the custodian signing share will have been successfully updated in Portal’s database and the client signing share is available on the client’s device.
- Store Client Signing Share to Keychain - After the WebSocket successfully closes the client signing share is written to the client’s device’s keychain. The SDK notifies the server that it succeeded. This updates the signing shares status to
STORED_CLIENT
.
If recovery fails you are expected to handle the error (see the Error Reference) and re-run recovery after handling it. Signing functionality will not work until a successful recover on a device that does not have a signing share in its keychain.