curl --request POST \
--url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/mfa/auth/recovery \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"code": "<string>",
"createMfaToken": {
"singleUse": true
}
}
'{
"user": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"format": "blockchain",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_provider": "browserExtension",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true,
"version": "V1",
"ecdsaProviderType": "zerodev_signer_to_ecdsa",
"entryPointVersion": "v6",
"kernelVersion": "v2_4"
},
"oauth_provider": "emailOnly",
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"type": "ordinals",
"publicKey": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"mfaBackupCodeAcknowledgement": "pending",
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"type": "standard",
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"validationType": "text",
"label": "<string>",
"position": 123
}
]
},
"expiresAt": "1715620310",
"mfaToken": "<string>",
"jwt": "jwt_value",
"minifiedJwt": "jwt_value"
}curl --request POST \
--url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/mfa/auth/recovery \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"code": "<string>",
"createMfaToken": {
"singleUse": true
}
}
'{
"user": {
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
"verifiedCredentials": [
{
"id": "95b11417-f18f-457f-8804-68e361f9164f",
"format": "blockchain",
"signInEnabled": true,
"address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
"chain": "<string>",
"refId": "95b11417-f18f-457f-8804-68e361f9164f",
"signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
"email": "jsmith@example.com",
"name_service": {
"avatar": "<string>",
"name": "<string>"
},
"public_identifier": "<string>",
"wallet_name": "<string>",
"wallet_provider": "browserExtension",
"wallet_properties": {
"turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
"turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
"isAuthenticatorAttached": true,
"turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
"isSessionKeyCompatible": true,
"version": "V1",
"ecdsaProviderType": "zerodev_signer_to_ecdsa",
"entryPointVersion": "v6",
"kernelVersion": "v2_4"
},
"oauth_provider": "emailOnly",
"oauth_username": "<string>",
"oauth_display_name": "<string>",
"oauth_account_id": "<string>",
"phoneNumber": "9171113333",
"phoneCountryCode": "1",
"isoCountryCode": "US",
"oauth_account_photos": [
"<string>"
],
"oauth_emails": [
"<string>"
],
"oauth_metadata": {},
"previous_users": [
"95b11417-f18f-457f-8804-68e361f9164f"
],
"embedded_wallet_id": "<string>",
"wallet_additional_addresses": [
{
"address": "<string>",
"type": "ordinals",
"publicKey": "<string>"
}
],
"lastSelectedAt": "2023-11-07T05:31:56Z"
}
],
"lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
"sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
"alias": "An example name",
"country": "US",
"email": "jsmith@example.com",
"firstName": "An example name",
"jobTitle": "An example name",
"lastName": "An example name",
"phoneNumber": "<string>",
"policiesConsent": true,
"tShirtSize": "An example name",
"team": "An example name",
"username": "An example name",
"firstVisit": "2023-11-07T05:31:56Z",
"lastVisit": "2023-11-07T05:31:56Z",
"newUser": true,
"metadata": {},
"mfaBackupCodeAcknowledgement": "pending",
"btcWallet": "<string>",
"kdaWallet": "<string>",
"ltcWallet": "<string>",
"ckbWallet": "<string>",
"kasWallet": "<string>",
"dogeWallet": "<string>",
"emailNotification": true,
"discordNotification": true,
"newsletterNotification": true,
"lists": [
"<string>"
],
"scope": "superuser marketing operations",
"missingFields": [
{
"name": "<string>",
"required": true,
"enabled": true,
"unique": true,
"verify": true,
"type": "standard",
"validationRules": {
"unique": true,
"regex": "^0x",
"validOptions": [
{
"label": "small"
},
{
"label": "medium"
},
{
"label": "large"
}
],
"checkboxText": "Agree to the terms and conditions"
},
"validationType": "text",
"label": "<string>",
"position": 123
}
]
},
"expiresAt": "1715620310",
"mfaToken": "<string>",
"jwt": "jwt_value",
"minifiedJwt": "jwt_value"
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
ID of the environment
36"95b11417-f18f-457f-8804-68e361f9164f"
totp code
Successful operation
Show child attributes
36"95b11417-f18f-457f-8804-68e361f9164f"
36"95b11417-f18f-457f-8804-68e361f9164f"
Show child attributes
36"95b11417-f18f-457f-8804-68e361f9164f"
blockchain, email, oauth, passkey, phoneNumber, externalUser This indicates if the user can sign in with this credential
Valid blockchain wallet address, must be an alphanumeric string without any special characters
255"0xbF394748301603f18d953C90F0b087CBEC0E1834"
36"95b11417-f18f-457f-8804-68e361f9164f"
36"95b11417-f18f-457f-8804-68e361f9164f"
This is used to publicly identify a verified credential in a human-friendly way. For example, this will be the email address if credential format=email.
browserExtension, custodialService, walletConnect, qrCode, deepLink, embeddedWallet, smartContractWallet Show child attributes
36"95b11417-f18f-457f-8804-68e361f9164f"
36"95b11417-f18f-457f-8804-68e361f9164f"
36"95b11417-f18f-457f-8804-68e361f9164f"
Whether or not the wallet has an authenticator (passkey, api key, etc) attached to it.
36"95b11417-f18f-457f-8804-68e361f9164f"
V1, V2, V3 zerodev_signer_to_ecdsa, zerodev_multi_chain v6, v7 v2_4, v3_0, v3_1, v3_2, v3_3 The 'turnkey' value is deprecated and will be removed in a future version.
emailOnly, magicLink, apple, bitbucket, coinbasesocial, discord, epicgames, facebook, farcaster, github, gitlab, google, instagram, linkedin, microsoft, twitch, twitter, blocto, banxa, coinbaseOnramp, cryptoDotCom, dynamic, alchemy, zerodev, telegram, turnkey, coinbaseWaas, sms, spotify, tiktok, line, steam, shopify, zksync, kraken, blockaid, passkey, okta, sendgrid, resend This field contains the phone number in the country. This could also contain the area code within a country.
"9171113333"
This field contains the phone international country code. See https://countrycode.org/
"1"
ISO-3166 two-character country code. See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
"US"
This object contains JSON metadata for a social-based verified credential. It may contain data about the user that does not fit into the other structured fields, and could include arbitrary fields about the user from the oauth provider's API.
This will only be provided in the responses for GET /users/{userId}.Previous user IDs that owned this verified credential and was tranfered to the current user ID.
36Show child attributes
An address associated with a wallet.
ordinals, payment, cosmos, evm The public key associated with the address.
This timestamp indicates the last time this verified wallet was either connected to the user account or selected to become the primary wallet on the account.
36"95b11417-f18f-457f-8804-68e361f9164f"
36"95b11417-f18f-457f-8804-68e361f9164f"
255"An example name"
Standard ISO 3166-1 alpha-2 two-letter country code
255"US"
255255"An example name"
255"An example name"
255"An example name"
255255"An example name"
255"An example name"
255"An example name"
pending, complete Access lists evaluated by Dynamic when considering access for the user.
A whitespace-separate list of permissions associated with the JWT token issued. This conforms to the JWT standard for scope claims: https://datatracker.ietf.org/doc/html/rfc8693#section-4.2
"superuser marketing operations"
Show child attributes
standard, custom Optional validation rules for the custom field
Show child attributes
If this field must be unique for every user in the environment
The regex pattern that the text field must match
255"^0x"
The dropdown options for the select field
[
{ "label": "small" },
{ "label": "medium" },
{ "label": "large" }
]The text that will be displayed for the checkbox field
255"Agree to the terms and conditions"
text, checkbox, select Format is a unix-based timestamp. When set, this will be the expiration timestamp on the JWT sent using either the jwt field or a response httpOnly cookie set by the server.
"1715620310"
Encoded JWT token. This will only be returned when cookie-based authentication is disabled in favor of standard Auth header based authentication.
"jwt_value"
Encoded JWT token. This will only be returned when cookie-based authentication is disabled in favor of standard Auth header based authentication.
"jwt_value"
Was this page helpful?