Skip to main content
POST
/
v2
/
end-users
curl --request POST \
  --url https://api.cdp.coinbase.com/platform/v2/end-users \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Wallet-Auth: <x-wallet-auth>' \
  --data '
{
  "authenticationMethods": [
    {
      "type": "email",
      "email": "[email protected]"
    }
  ]
}
'
{
"userId": "user-001",
"authenticationMethods": [
{
"type": "email",
"email": "[email protected]"
}
],
"evmAccounts": [],
"evmAccountObjects": [],
"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
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]"
}
]
userId
string

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.

If userId is not provided in the request, the server will generate a random UUID.

Example:

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

evmAccount
object

Configuration for creating an EVM account for the end user.

solanaAccount
object

Configuration for creating a Solana account for the end user.

Response

Successfully created end user.

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"
]
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"
]
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"
]
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"