> ## 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: >-
            symbol_value:"12789f5ee5fb-07f5-470c-a2ff-081e2d6d107a"

            comment:vault_uuid is the UUID of the vault that the wallet was
            created in.
        keyType:
          $ref: '#/components/schemas/mpcvault.platform.v1.KeyType'
          description: |-
            symbol_value:"1"
            comment:key_type is the type of the key.
        keyPath:
          type: string
          title: key_path
          description: |-
            symbol_value:"path/to/key"
            comment:key_path is the path of the key.
        publicKey:
          type: string
          title: public_key
          format: byte
          description: |-
            symbol_value:"0x71C7656EC7ab88bd32g47dgdhhssq245f6d8976F"
            comment:public_key is the public key of the key.
        networkType:
          $ref: '#/components/schemas/mpcvault.platform.v1.NetworkType'
          description: |-
            symbol_value:"1"
            comment:network_type is the type of the network.
        address:
          type: string
          title: address
          description: |-
            symbol_value:"8HrKVJeFNGSJ2T2wSU6MxfMvua2MYgwH1FbRs d f r g t h j"
            comment:address is the address of the wallet in the network.
        ref:
          type: string
          title: ref
          description: >-
            symbol_value:"0x4321567890abcdef4321567890abcdef123456"

            comment:ref is unique identifier for the wallet as configured by the
            user.
        status:
          $ref: '#/components/schemas/mpcvault.platform.v1.Wallet.Status'
          description: |-
            symbol_value:"1"
            comment:status is the status of the wallet.
        name:
          type: string
          title: name
          description: |-
            symbol_value:"test wallet "
            comment:name is the name for the 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.

````