Skip to main content
POST
/
v2
/
end-users
/
import
curl --request POST \
  --url https://api.cdp.coinbase.com/platform/v2/end-users/import \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Wallet-Auth: <x-wallet-auth>' \
  --data '
{
  "userId": "user-001",
  "authenticationMethods": [
    {
      "type": "email",
      "email": "[email protected]"
    }
  ],
  "encryptedPrivateKey": "U2FsdGVkX1+vupppZksvRf5X5YgHq4+da+Q4qf51+Q4=",
  "keyType": "evm"
}
'
{
"userId": "user-001",
"authenticationMethods": [
{
"type": "email",
"email": "[email protected]"
}
],
"evmAccounts": [
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
],
"evmAccountObjects": [
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"createdAt": "2025-11-17T10:00:00Z"
}
],
"evmSmartAccounts": [],
"evmSmartAccountObjects": [],
"solanaAccounts": [],
"solanaAccountObjects": [],
"createdAt": "2025-11-17T10:00:00Z"
}

Authorizations

Authorization
string
header
required

A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.

Headers

X-Wallet-Auth
string
required

A JWT signed using your Wallet Secret, encoded in base64. Refer to the Generate Wallet Token section of our Authentication docs for more details on how to generate your Wallet Token.

X-Idempotency-Key
string

An optional UUID v4 request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.

Required string length: 36

Body

application/json
userId
string
required

A stable, unique identifier for the end user. The userId must be unique across all end users in the developer's CDP Project. It must be between 1 and 100 characters long and can only contain alphanumeric characters and hyphens.

Example:

"e051beeb-7163-4527-a5b6-35e301529ff2"

authenticationMethods
(EmailAuthentication · object | SmsAuthentication · object | DeveloperJWTAuthentication · object | OAuth2Authentication · object)[]
required

The list of valid authentication methods linked to the end user.

Information about how the end user is authenticated.

Example:
[
{
"type": "email",
"email": "[email protected]"
},
{
"type": "sms",
"phoneNumber": "+12055555555"
},
{
"type": "jwt",
"sub": "e051beeb-7163-4527-a5b6-35e301529ff2",
"kid": "NjVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg"
},
{
"type": "google",
"sub": "115346410074741490243",
"email": "[email protected]"
}
]
encryptedPrivateKey
string
required

The base64-encoded, encrypted private key to import. The private key must be encrypted using the CDP SDK's encryption scheme. This is a 32-byte raw private key.

Example:

"U2FsdGVkX1+vupppZksvRf5X5YgHq4+da+Q4qf51+Q4="

keyType
enum<string>
required

The type of key being imported. Determines what type of account will be associated for the end user.

Available options:
evm,
solana
Example:

"evm"

Response

Successfully imported key and created end user with the associated account.

Information about the end user.

userId
string
required

A stable, unique identifier for the end user. The userId must be unique across all end users in the developer's CDP Project. It must be between 1 and 100 characters long and can only contain alphanumeric characters and hyphens.

Example:

"e051beeb-7163-4527-a5b6-35e301529ff2"

authenticationMethods
(EmailAuthentication · object | SmsAuthentication · object | DeveloperJWTAuthentication · object | OAuth2Authentication · object)[]
required

The list of valid authentication methods linked to the end user.

Information about how the end user is authenticated.

Example:
[
{
"type": "email",
"email": "[email protected]"
},
{
"type": "sms",
"phoneNumber": "+12055555555"
},
{
"type": "jwt",
"sub": "e051beeb-7163-4527-a5b6-35e301529ff2",
"kid": "NjVBRjY5MDlCMUIwNzU4RTA2QzZFMDQ4QzQ2MDAyQjVDNjk1RTM2Qg"
},
{
"type": "google",
"sub": "115346410074741490243",
"email": "[email protected]"
}
]
evmAccounts
string[]
required
deprecated

DEPRECATED: Use evmAccountObjects instead for richer account information. The list of EVM account addresses associated with the end user. End users can have up to 10 EVM accounts.

The address of the EVM account associated with the end user.

Example:
[
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
]
evmAccountObjects
object[]
required

The list of EVM accounts associated with the end user. End users can have up to 10 EVM accounts.

Example:
[
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"address": "0x1234567890abcdef1234567890abcdef12345678",
"createdAt": "2025-01-15T11:00:00Z"
}
]
evmSmartAccounts
string[]
required
deprecated

DEPRECATED: Use evmSmartAccountObjects instead for richer account information including owner relationships. The list of EVM smart account addresses associated with the end user. Each EVM EOA can own one smart account.

The address of the EVM smart account associated with the end user.

Example:
[
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
]
evmSmartAccountObjects
object[]
required

The list of EVM smart accounts associated with the end user. Each EVM EOA can own one smart account.

Example:
[
{
"address": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"ownerAddresses": [
"0x1234567890abcdef1234567890abcdef12345678",
"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
],
"createdAt": "2025-01-15T12:00:00Z"
}
]
solanaAccounts
string[]
required
deprecated

DEPRECATED: Use solanaAccountObjects instead for richer account information. The list of Solana account addresses associated with the end user. End users can have up to 10 Solana accounts.

The base58 encoded address of the Solana account associated with the end user.

Example:
[
"HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT"
]
solanaAccountObjects
object[]
required

The list of Solana accounts associated with the end user. End users can have up to 10 Solana accounts.

Example:
[
{
"address": "HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"address": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"createdAt": "2025-01-15T11:30:00Z"
}
]
createdAt
string<date-time>
required

The date and time when the end user was created, in ISO 8601 format.

Example:

"2025-01-15T10:30:00Z"

mfaMethods
object

Information about the end user's MFA enrollments.

Example:
{
"enrollmentPromptedAt": "2025-01-15T10:30:00Z",
"totp": { "enrolledAt": "2025-01-15T10:30:00Z" },
"sms": { "enrolledAt": "2025-01-15T10:30:00Z" }
}