---
title: "Create User Wallet"
method: POST
path: "/v1/wallets/user"
tags: ["Wallets"]
---

# Create User Wallet

`POST /v1/wallets/user`

Create a user wallet with a wallet based on their authentication strategy. This endpoint creates a wallet in advance that can be claimed later when the user authenticates.

**Authentication**: This endpoint requires backend authentication using the `x-secret-key` header. The secret key should never be exposed publicly.

## Request body

- object — Request body for pre-generating a wallet
  - `type` 'google' | 'apple' | 'facebook' | 'discord' | 'email' | 'phone' | 'custom_auth_endpoint' | 'custom_jwt' | 'siwe', required
  - `walletAddress` string — A valid Ethereum address (0x-prefixed hex string) or ENS name (e.g., vitalik.eth).
  - `email` string
  - `phone` string
  - `userId` string

## Response `200`

Successfully created a user wallet with wallet.

- object
  - `result` object, required
    - `userId` string — Unique identifier for the user wallet within the thirdweb auth system.
    - `address` string — The EOA (Externally Owned Wallet) address of the wallet. This is the traditional wallet address.
    - `createdAt` string — The date and time the wallet was created
    - `profiles` union[], required — The profiles linked to the wallet, can be email, phone, google etc, or backend for developer created wallets
      - union — Authentication provider details with type-based discrimination
        - object — Google OAuth authentication provider details
          - `email` string, required
          - `emailVerified` boolean, required
          - `familyName` string
          - `givenName` string
          - `hd` string, required
          - `id` string, required
          - `locale` string, required
          - `name` string
          - `picture` string, required
          - `type` 'google', required
        - object — Facebook OAuth authentication provider details
          - `email` string
          - `firstName` string
          - `id` string, required
          - `lastName` string
          - `name` string
          - `picture` string
          - `type` 'facebook', required
        - object — Apple OAuth authentication provider details
          - `email` string
          - `emailVerified` boolean, required
          - `id` string, required
          - `isPrivateEmail` boolean, required
          - `type` 'apple', required
        - object — GitHub OAuth authentication provider details
          - `avatar` string, nullable
          - `id` string, required
          - `name` string, nullable
          - `type` 'github', required
          - `username` string, required
        - object — Discord OAuth authentication provider details
          - `avatar` string, required
          - `email` string, email
          - `emailVerified` boolean, required
          - `id` string, required
          - `type` 'discord', required
          - `username` string, required
        - object — Coinbase OAuth authentication provider details
          - `avatar` string
          - `id` string, required
          - `name` string, required
          - `type` 'coinbase', required
        - object — X (Twitter) OAuth authentication provider details
          - `id` string, required
          - `name` string, required
          - `type` 'x', required
          - `username` string, required
          - `profileImageUrl` string
        - object — TikTok OAuth authentication provider details
          - `id` string, required
          - `displayName` string, required
          - `avatarUrl` string, required
          - `unionId` string
          - `type` 'tiktok', required
        - object — Epic Games OAuth authentication provider details
          - `id` string, required
          - `type` 'epic', required
          - `displayName` string
          - `email` string, email
          - `emailVerified` boolean
          - `metadata` object, required
            - `accountId` string, required
            - `preferredUsername` string
            - `country` string
            - `region` string
            - `language` string
            - `sub` string
            - `name` string
        - object — Steam OAuth authentication provider details
          - `avatar` string
          - `id` string, required
          - `metadata` object, required
            - `avatar` object, required
              - …
            - `personaname` string
            - `profileurl` string
            - `realname` string
          - `type` 'steam', required
          - `username` string
        - object — Telegram OAuth authentication provider details
          - `firstName` string
          - `id` string, required
          - `lastName` string
          - `picture` string
          - `type` 'telegram', required
          - `username` string
        - object — Twitch OAuth authentication provider details
          - `avatar` string
          - `description` string
          - `email` string
          - `id` string, required
          - `type` 'twitch', required
          - `username` string, required
        - object — LINE OAuth authentication provider details
          - `avatar` string
          - `id` string, required
          - `type` 'line', required
          - `username` string
        - object — Farcaster authentication provider details
          - `fid` string, required
          - `id` string, required
          - `type` 'farcaster', required
          - `walletAddress` string
        - object — Passkey authentication provider details
          - `algorithm` string, required
          - `credentialId` string, required
          - `publicKey` string, required
          - `type` 'passkey', required
        - object — Email authentication provider details
          - `email` string, email, required
          - `id` string, required
          - `type` 'email', required
        - object — Pre-generated wallet authentication provider details
          - `id` string, required
          - `pregeneratedIdentifier` string, required
          - `type` 'pre_generation', required
        - object — Phone authentication provider details
          - `id` string, required
          - `phone` string, required
          - `type` 'phone', required
        - object — Sign-In with Ethereum (SIWE) authentication provider details
          - `id` string, required
          - `type` 'siwe', required
          - `walletAddress` string, required
        - object — Guest authentication provider details
          - `id` string, required
          - `type` 'guest', required
        - object — Backend authentication provider details (deprecated, use server instead)
          - `id` string, required
          - `type` 'backend', required
        - object — Server authentication provider details
          - `identifier` string, required
          - `type` 'server', required
        - object — Custom JWT authentication provider details
          - `authProviderId` string
          - `email` string
          - `id` string, required
          - `phone` string
          - `type` 'custom_jwt', required
          - `walletAddress` string
        - object — Custom auth endpoint authentication provider details
          - `authProviderId` string
          - `email` string
          - `id` string, required
          - `phone` string
          - `type` 'custom_auth_endpoint', required
          - `walletAddress` string
    - `smartWalletAddress` string — The smart wallet address with EIP-4337 support. This address enables gasless transactions and advanced wallet features.
    - `publicKey` string — The wallet's public key in hexadecimal format. Useful for peer-to-peer encryption and cryptographic operations.

## Other responses

- `400` — Invalid request. This may occur due to missing required fields based on the authentication strategy, invalid strategy, or malformed request data.
- `401` — Authentication required. The request must include a valid `x-secret-key` header for backend authentication.
- `500` — Internal server error. This may occur due to service unavailability or unexpected server errors.

---

[API](https://skmtc.net/thirdweb/apis/thirdweb-api.md) · [All operations](https://skmtc.net/thirdweb/apis/thirdweb-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thirdweb/thirdweb-api/revisions/fb4cb67da1c7/schema)
