> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mpcvault.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CreateWallet

> Create a new EOA wallet in a vault for a given network.

Creates a new wallet in the specified vault. Use the returned `address` in the response (do not derive it yourself). Run your own sanity checks before using the wallet in production.


## OpenAPI

````yaml openapi.json POST /v1/createWallet
openapi: 3.1.0
info:
  title: mpcvault.platform.v1
  version: 0.0.1
servers:
  - url: https://api.mpcvault.com
    description: MPCVault API Server
security:
  - ApiKeyAuth: []
tags:
  - name: mpcvault.platform.v1.PlatformAPI
paths:
  /v1/createWallet:
    post:
      tags:
        - mpcvault.platform.v1.PlatformAPI
      summary: CreateWallet
      description: >-
        CreateWallet creates a wallet. Wallets created will be EOA wallets. You
        are responsible for completing a sanity tests before using the wallet.
         While the response contains the public key, you are strongly discouraged from using it to generate the wallet address yourself. Instead, use the address returned in the response.
      operationId: mpcvault.platform.v1.PlatformAPI.CreateWallet
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mpcvault.platform.v1.CreateWalletRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/mpcvault.platform.v1.CreateWalletResponse'
components:
  schemas:
    mpcvault.platform.v1.CreateWalletRequest:
      type: object
      properties:
        vaultUuid:
          type: string
          title: vault_uuid
          description: >-
            required:true

            symbol_value:"12789f5ee5fb-07f5-470c-a2ff-081e2d6d107a"

            comment:vault_uuid is the UUID of the vault that the wallet will be
            created in.You can find it in the settings page of your vault on the
            web.
        callbackClientSignerPublicKey:
          type: string
          title: callback_client_signer_public_key
          description: >-
            symbol_value:"ssh-ed25519
            AAAAC3NzaC1lZDI1NTE5AAAAIL3OzFAKNGHsMtBpTemiAI3V1AxRsdeghjcmkidagdk
            test"

            comment:callback_client_signer_public_key is the public key of the
            api client signer. It is used to identify the where we should send
            the callback to.
        networkType:
          $ref: '#/components/schemas/mpcvault.platform.v1.NetworkType'
          description: |-
            required:true
            symbol_value:"1"
            comment:network_type is the type of the network.
        ref:
          type: string
          title: ref
          description: >-
            symbol_value:"0x4321567890abcdef4321567890abcdef123456"

            comment:ref is the customer reference field for the wallet. It has
            to be unique if not empty.max length is 500 characters.
        name:
          type: string
          title: name
          description: >-
            symbol_value:"test wallet"

            comment:name is the name for the wallet.  max length is 85
            characters.
      additionalProperties: false
    mpcvault.platform.v1.CreateWalletResponse:
      type: object
      properties:
        details:
          $ref: '#/components/schemas/mpcvault.platform.v1.Wallet'
        error:
          $ref: '#/components/schemas/mpcvault.platform.v1.Error'
      additionalProperties: false
    mpcvault.platform.v1.NetworkType:
      type: string
      title: NetworkType
      enum:
        - NETWORK_TYPE_UNKNOWN
        - NETWORK_TYPE_EVM
        - NETWORK_TYPE_BITCOIN
        - NETWORK_TYPE_TRON
        - NETWORK_TYPE_APTOS
        - NETWORK_TYPE_SUI
        - NETWORK_TYPE_SOLANA
        - NETWORK_TYPE_TON
        - NETWORK_TYPE_STELLAR
    mpcvault.platform.v1.Wallet:
      type: object
      properties:
        vaultUuid:
          type: string
          title: vault_uuid
          description: The UUID of the vault the wallet belongs to.
          example: 9f5ee5fb-07f5-470c-a2ff-081e2d6d107a
        keyType:
          $ref: '#/components/schemas/mpcvault.platform.v1.KeyType'
          description: The signature algorithm of the wallet's key.
          example: KEY_TYPE_ECC_ED25519
        keyPath:
          type: string
          title: key_path
          description: The derivation path of the wallet's key.
          example: path/to/key
        publicKey:
          type: string
          title: public_key
          format: byte
          description: The wallet's public key, base64-encoded.
          example: aSDinaTvuI8gbWludGxpZnk=
        networkType:
          $ref: '#/components/schemas/mpcvault.platform.v1.NetworkType'
          description: The network the wallet is on.
          example: NETWORK_TYPE_EVM
        address:
          type: string
          title: address
          description: The wallet's on-chain address.
          example: 0x71C7656EC7ab88bd32g47dgdhhssq245f6d8976F
        ref:
          type: string
          title: ref
          description: The customer-defined reference for the wallet.
          example: '0x4321567890abcdef4321567890abcdef123456'
        status:
          $ref: '#/components/schemas/mpcvault.platform.v1.Wallet.Status'
          description: >-
            The wallet's current status: STATUS_PENDING, STATUS_ACTIVE, or
            STATUS_ARCHIVED.
          example: STATUS_ACTIVE
        name:
          type: string
          title: name
          description: The wallet's name.
          example: test wallet
      additionalProperties: false
    mpcvault.platform.v1.Error:
      type: object
      allOf:
        - properties:
            message:
              type: string
              title: message
        - oneOf:
            - type: object
              properties:
                executeSigningRequestsErrorCode:
                  $ref: >-
                    #/components/schemas/mpcvault.platform.v1.ExecuteSigningRequestsErrorCode
              title: execute_signing_requests_error_code
              required:
                - executeSigningRequestsErrorCode
            - type: object
              properties:
                serviceErrorCode:
                  $ref: '#/components/schemas/mpcvault.platform.v1.ServiceErrorCode'
              title: service_error_code
              required:
                - serviceErrorCode
      additionalProperties: false
    mpcvault.platform.v1.KeyType:
      type: string
      title: KeyType
      enum:
        - KEY_TYPE_UNSPECIFIED
        - KEY_TYPE_ECC_SECP256K1
        - KEY_TYPE_ECC_ED25519
    mpcvault.platform.v1.Wallet.Status:
      type: string
      title: Status
      enum:
        - STATUS_UNSPECIFIED
        - STATUS_PENDING
        - STATUS_ACTIVE
        - STATUS_ARCHIVED
    mpcvault.platform.v1.ExecuteSigningRequestsErrorCode:
      type: string
      title: ExecuteSigningRequestsErrorCode
      enum:
        - EXECUTE_SIGNING_REQUESTS_ERROR_CODE_UNSPECIFIED
        - EXECUTE_SIGNING_REQUESTS_ERROR_CODE_INSUFFICIENT_FUNDS
        - EXECUTE_SIGNING_REQUESTS_ERROR_CODE_ALREADY_DENIED
    mpcvault.platform.v1.ServiceErrorCode:
      type: string
      title: ServiceErrorCode
      enum:
        - SERVICE_ERROR_CODE_UNSPECIFIED
        - SERVICE_ERROR_CODE_ORG_SUBSCRIBED_PLAN_LIMIT_EXCEED
        - SERVICE_ERROR_CODE_ORG_SUBSCRIBED_PLAN_EXPIRED
        - SERVICE_ERROR_CODE_ORG_SUBSCRIBED_PLAN_NOT_SUPPORT
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-mtoken
      description: Your API token. Required for all API requests.

````