Fido2 Credential (also known as “Passkeys” or “WebauthN credential”). This type of credential is the recommended one for any human user. It’s relies on the WebauthN standard. Most recent devices (laptop, phones, browsers, password managers etc…) support passkeys nowadays. Your device will handle creating a passkey and storing it securely so the user can re-use it later on this same device. Passkeys are tied to a domain name, And you will need to whitelist this domain on Dfns dashboard first (by default, in your organisation, localhost is a whitelisted passkey domain, as well as app.dfns.io, so you can use your passkey on Dfns dashboard).Key Credential. This is a “raw” public/private keypair, mostly meant to be used by Service Accounts (aka “machine Users”). You are responsible for storing it securely, so that for example your Service Account can perform some API actions from your server. See Generate a Key Pair.PasswordProtectedKey Credential. This is like a Key Credential expect that the private key is kept by Dfns in an encrypted way. Dfns does not have access to the password to decrypt it, only the customer or the end user does. You are responsible for implementing the routine to encrypt and decrypt the key (this should be done on the frontend side for delegated wallet so that you never have access to the decrypted private key). With this kind of credential you will send to Dfns an encryptedPrivateKey string during the registration containing the encrypted version of the private key. During the login and action signing flow the API will return this field that you will be able to decrypt to have access to the private key and perform the required signature.RecoveryKey Credential. This is essentially like a Key Credential, but wrapped in a way where the User can just safekeep an intelligible human-readable recovery code. Users can print it and store it securely, or save this recovery code in some password manager, etc…www.app-1.com cannot be used inside the app www.app-2.com)
Key credentials give extra flexibilty over WebAuthn to design signing to meet your needs. For example, you could choose to have a key without a passphrase (disabling MFA), to support scenarios where you don’t want the user to have to interact with your application to sign a transaction. Or, as another example, you could build an integration with an authentication device that is not supported by WebAuthn.
Personal Access Token in your user’s account, rather than registering a credential (in your control) for your user. This allows the user to restrict the actions you are allowed to perform, and they can time-bound your access.
Fido2, Key, Password, Totp, RecoveryKey, PasswordProtectedKey