> ## Documentation Index
> Fetch the complete documentation index at: https://crossmint-wallets-docs-2-5.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Wallet

> Creates a new wallet of specified type. If called with an idempotency key or for a user who already has a wallet, returns existing wallet. When linkedUser is provided, subsequent calls with the same linkedUser will return the existing wallet. Supports both custodial and non-custodial wallet types.

**API scope required**: `wallets.create`



## OpenAPI

````yaml post /2022-06-09/wallets
openapi: 3.0.0
info:
  title: Crossmint Wallets API
  description: Crossmint Wallets API
  version: 1.0.0
  contact:
    name: Crossmint Support
    url: https://www.crossmint.com
    email: support@crossmint.com
servers:
  - url: https://staging.crossmint.com/api
    description: Staging environment (testnets)
  - url: https://www.crossmint.com/api
    description: Production environment (mainnets)
security: []
tags: []
paths:
  /2022-06-09/wallets:
    post:
      summary: Create Wallet
      description: >-
        Creates a new wallet of specified type. If called with an idempotency
        key or for a user who already has a wallet, returns existing wallet.
        When linkedUser is provided, subsequent calls with the same linkedUser
        will return the existing wallet. Supports both custodial and
        non-custodial wallet types.


        **API scope required**: `wallets.create`
      operationId: WalletsV1Controller-createWallet-4
      parameters:
        - name: X-API-KEY
          in: header
          description: API key required for authentication
          required: true
          schema:
            type: string
        - name: x-idempotency-key
          required: false
          in: header
          description: Unique key to prevent duplicate wallet creation
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWalletDTO'
      responses:
        '201':
          description: >-
            Returns an existing wallet (200) if one already exists for the
            provided linkedUser or idempotencyKey, or creates and returns a new
            wallet (201). The response includes the wallet details and whether
            it was newly created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletV1Alpha2ResponseDTO'
        '400':
          description: >-
            Returns an error if a wallet with the specified creation seed and
            signer configuration already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletV1Alpha2ErrorDTO'
components:
  schemas:
    CreateWalletDTO:
      discriminator:
        propertyName: type
      oneOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - evm-smart-wallet
            config:
              default:
                adminSigner:
                  type: evm-fireblocks-custodial
              type: object
              properties:
                adminSigner:
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - evm-keypair
                          description: Identifier for EVM keypair signer type
                        address:
                          type: string
                          description: The Ethereum address of the external signer
                      required:
                        - type
                        - address
                      description: An EOA external to Crossmint that can sign transactions
                      title: EVM Keypair
                      example:
                        type: evm-keypair
                        address: '0x1234567890123456789012345678901234567890'
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - evm-fireblocks-custodial
                          description: Identifier for EVM Fireblocks custodial signer type
                      required:
                        - type
                      description: >-
                        A custodial signer provided by Crossmint and backed by
                        Fireblocks
                      title: Fireblocks Custodial
                      example:
                        type: evm-fireblocks-custodial
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - evm-passkey
                          description: Identifier for the Passkey signer type
                        id:
                          type: string
                          description: >-
                            Credential ID from the WebAuthn registration
                            response
                        name:
                          type: string
                          description: Human-readable name for the passkey
                        publicKey:
                          type: object
                          properties:
                            x:
                              type: string
                              description: >-
                                X coordinate of the public key as a decimal
                                string
                            'y':
                              type: string
                              description: >-
                                Y coordinate of the public key as a decimal
                                string
                          required:
                            - x
                            - 'y'
                          description: >-
                            The public key coordinates from the WebAuthn
                            credential
                      required:
                        - type
                        - id
                        - name
                        - publicKey
                      description: >-
                        Configuration for a WebAuthn/Passkey signer that uses
                        public key credentials for authentication
                      title: Passkey
                      example:
                        type: evm-passkey
                        id: cWtP7gmZbd98HbKUuGXx5Q
                        name: hgranger
                        publicKey:
                          x: >-
                            38035223810536273945556366218149112558607829411547667975304293530457502824247
                          'y': >-
                            91117823763706733837104303008228095481082989039135234750508288790583476078729
                creationSeed:
                  type: string
                  description: >-
                    The unique wallet seed. By default, the seed is randomly
                    generated.
                  example: '0'
              required:
                - adminSigner
              additionalProperties: false
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: EVM smart wallet creation input
          description: EVM smart wallet creation input
        - type: object
          properties:
            type:
              type: string
              enum:
                - solana-mpc-wallet
            config: {}
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: Solana MPC wallet creation input
          description: Solana MPC wallet creation input
        - type: object
          properties:
            type:
              type: string
              enum:
                - solana-smart-wallet
            config:
              default:
                adminSigner:
                  type: solana-fireblocks-custodial
              type: object
              properties:
                adminSigner:
                  default:
                    type: solana-fireblocks-custodial
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - solana-keypair
                          description: Identifier for Solana keypair signer type
                        address:
                          type: string
                          description: >-
                            The Solana public key (base58 encoded) of the
                            external signer
                      required:
                        - type
                        - address
                      description: >-
                        A Solana keypair external to Crossmint that can sign
                        transactions
                      title: Solana Keypair
                      example:
                        type: solana-keypair
                        address: BKw3wMDoX4ZKuKkaHgPUqTqH3wqNGnwVAXrJ3MDWdZbL
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - solana-fireblocks-custodial
                          description: Identifier for Solana Fireblocks MPC signer type
                      required:
                        - type
                      description: >-
                        A custodial signer provided by Crossmint and backed by
                        Fireblocks
                      title: Fireblocks Custodial
                      example:
                        type: solana-fireblocks-custodial
              additionalProperties: false
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: Solana smart wallet creation input
          description: Solana smart wallet creation input
        - type: object
          properties:
            type:
              type: string
              enum:
                - aptos-mpc-wallet
            config: {}
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: Aptos MPC wallet creation input
          description: Aptos MPC wallet creation input
        - type: object
          properties:
            type:
              type: string
              enum:
                - sui-mpc-wallet
            config: {}
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: Sui MPC wallet creation input
          description: Sui MPC wallet creation input
        - type: object
          properties:
            type:
              type: string
              enum:
                - solana-custodial-wallet
            config: {}
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: Solana custodial wallet creation input
          description: >-
            Solana custodial wallet creation input (Deprecated: Use
            solana-mpc-wallet instead)
        - type: object
          properties:
            type:
              type: string
              enum:
                - evm-mpc-wallet
            config: {}
            linkedUser:
              type: string
              description: |-
                A user locator can be of the format:
                - `email:<email>`
                - `userId:<userId>`
                - `phoneNumber:<phoneNumber>`
                - `twitter:<handle>`
                - `x:<handle>`
              example:
                - email:user@example.com
                - userId:507f1f77bcf86cd799439011
                - userId:did:example:cm4lr5piw0h6t1bjho0onryql
                - phoneNumber:+12125551234
                - twitter:johndoe
                - x:@johndoe
          required:
            - type
          title: EVM MPC wallet creation input
          description: EVM MPC wallet creation input
      example:
        type: evm-smart-wallet
        config:
          adminSigner:
            type: evm-keypair
            address: '0x1234567890123456789012345678901234567890'
        linkedUser: email:user@example.com
    WalletV1Alpha2ResponseDTO:
      discriminator:
        propertyName: type
      oneOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - evm-smart-wallet
              description: The type of wallet configuration
            config:
              type: object
              properties:
                adminSigner:
                  discriminator:
                    propertyName: type
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - evm-keypair
                          description: Identifier for EVM keypair signer type
                        address:
                          type: string
                          description: The Ethereum address of the external signer
                        locator:
                          type: string
                          description: The locator of the signer
                      required:
                        - type
                        - address
                        - locator
                      title: EVM Keypair Signer
                      description: Configuration for an EVM keypair signer
                      example:
                        type: evm-keypair
                        address: '0x1234567890123456789012345678901234567890'
                        locator: evm-keypair:0x1234567890123456789012345678901234567890
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - evm-fireblocks-custodial
                          description: Identifier for EVM Fireblocks custodial signer type
                        address:
                          type: string
                          description: The Ethereum address of the custodial signer
                        locator:
                          type: string
                          description: The locator of the signer
                      required:
                        - type
                        - address
                        - locator
                      title: EVM Custodial Signer
                      description: Configuration for an EVM custodial signer
                      example:
                        type: evm-fireblocks-custodial
                        address: '0x1234567890123456789012345678901234567890'
                        locator: >-
                          evm-fireblocks-custodial:0x1234567890123456789012345678901234567890
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - evm-passkey
                          description: Identifier for the Passkey signer type
                        id:
                          type: string
                          description: >-
                            Credential ID from the WebAuthn registration
                            response
                        name:
                          type: string
                          description: Human-readable name for the passkey
                        publicKey:
                          type: object
                          properties:
                            x:
                              type: string
                              description: >-
                                X coordinate of the public key as a decimal
                                string
                            'y':
                              type: string
                              description: >-
                                Y coordinate of the public key as a decimal
                                string
                          required:
                            - x
                            - 'y'
                          description: >-
                            The public key coordinates from the WebAuthn
                            credential
                        validatorContractVersion:
                          type: string
                          description: ERC-7579 webAuthn validator contract version
                        locator:
                          type: string
                          description: Unique identifier for locating this passkey signer
                      required:
                        - type
                        - id
                        - name
                        - publicKey
                        - validatorContractVersion
                        - locator
                      description: >-
                        Response schema for a registered Passkey signer
                        including validator contract details
                      example:
                        type: evm-passkey
                        id: cWtP7gmZbd98HbKUuGXx5Q
                        name: hgranger
                        publicKey:
                          x: >-
                            38035223810536273945556366218149112558607829411547667975304293530457502824247
                          'y': >-
                            91117823763706733837104303008228095481082989039135234750508288790583476078729
                        validatorContractVersion: 0.2.0
                        locator: evm-passkey:cWtP7gmZbd98HbKUuGXx5Q
                delegatedSigners:
                  type: array
                  items:
                    oneOf:
                      - discriminator:
                          propertyName: type
                        oneOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - evm-keypair
                                description: Identifier for EVM keypair signer type
                              address:
                                type: string
                                description: The Ethereum address of the external signer
                              locator:
                                type: string
                                description: The locator of the signer
                            required:
                              - type
                              - address
                              - locator
                            title: EVM Keypair Signer
                            description: Configuration for an EVM keypair signer
                            example:
                              type: evm-keypair
                              address: '0x1234567890123456789012345678901234567890'
                              locator: >-
                                evm-keypair:0x1234567890123456789012345678901234567890
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - evm-fireblocks-custodial
                                description: >-
                                  Identifier for EVM Fireblocks custodial signer
                                  type
                              address:
                                type: string
                                description: The Ethereum address of the custodial signer
                              locator:
                                type: string
                                description: The locator of the signer
                            required:
                              - type
                              - address
                              - locator
                            title: EVM Custodial Signer
                            description: Configuration for an EVM custodial signer
                            example:
                              type: evm-fireblocks-custodial
                              address: '0x1234567890123456789012345678901234567890'
                              locator: >-
                                evm-fireblocks-custodial:0x1234567890123456789012345678901234567890
                          - type: object
                            properties:
                              type:
                                type: string
                                enum:
                                  - evm-passkey
                                description: Identifier for the Passkey signer type
                              id:
                                type: string
                                description: >-
                                  Credential ID from the WebAuthn registration
                                  response
                              name:
                                type: string
                                description: Human-readable name for the passkey
                              publicKey:
                                type: object
                                properties:
                                  x:
                                    type: string
                                    description: >-
                                      X coordinate of the public key as a
                                      decimal string
                                  'y':
                                    type: string
                                    description: >-
                                      Y coordinate of the public key as a
                                      decimal string
                                required:
                                  - x
                                  - 'y'
                                description: >-
                                  The public key coordinates from the WebAuthn
                                  credential
                              validatorContractVersion:
                                type: string
                                description: ERC-7579 webAuthn validator contract version
                              locator:
                                type: string
                                description: >-
                                  Unique identifier for locating this passkey
                                  signer
                            required:
                              - type
                              - id
                              - name
                              - publicKey
                              - validatorContractVersion
                              - locator
                            description: >-
                              Response schema for a registered Passkey signer
                              including validator contract details
                            example:
                              type: evm-passkey
                              id: cWtP7gmZbd98HbKUuGXx5Q
                              name: hgranger
                              publicKey:
                                x: >-
                                  38035223810536273945556366218149112558607829411547667975304293530457502824247
                                'y': >-
                                  91117823763706733837104303008228095481082989039135234750508288790583476078729
                              validatorContractVersion: 0.2.0
                              locator: evm-passkey:cWtP7gmZbd98HbKUuGXx5Q
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - evm-keypair
                              - evm-fireblocks-custodial
                              - evm-passkey
                            description: >-
                              Specifies the type of EVM signer being used,
                              describing the method of key management and
                              transaction signing. `evm-keypair` indicates a
                              signer using a locally managed keypair, suitable
                              for non-custodial wallets.
                              `evm-fireblocks-custodial` refers to a signer
                              managed by Fireblocks, a custodial service
                              provider.
                          locator:
                            type: string
                            title: Signer Locator
                            description: The locator of the signer
                            example:
                              - >-
                                evm-keypair:0x1234567890123456789012345678901234567890
                              - evm-passkey:credential-id-123
                              - >-
                                evm-fireblocks-custodial:0x1234567890123456789012345678901234567890
                              - >-
                                solana-keypair:DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ
                              - >-
                                solana-fireblocks-custodial:DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ
                          expiresAt:
                            type: number
                            description: The expiry date of the signer in ISO 8601 format
                            example: '2024-01-01T00:00:00.000Z'
                          permissions:
                            type: array
                            items:
                              discriminator:
                                propertyName: type
                              oneOf:
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - native-token-transfer
                                    data:
                                      type: object
                                      properties:
                                        allowance:
                                          oneOf:
                                            - type: string
                                              title: Hex String
                                              description: >-
                                                The allowance for the permission. e.g.
                                                '0x1'
                                            - type: string
                                              pattern: ^\d+$
                                              title: Decimal String
                                              description: >-
                                                The allowance for the permission. e.g.
                                                '1'
                                      required:
                                        - allowance
                                  required:
                                    - type
                                    - data
                                  title: Native Token Transfer
                                  description: >-
                                    Permission to transfer native tokens (e.g.
                                    ETH)
                                  example:
                                    type: native-token-transfer
                                    data:
                                      allowance: '0x1234'
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - erc20-token-transfer
                                    data:
                                      type: object
                                      properties:
                                        address:
                                          type: string
                                          description: >-
                                            The address of the smart contract that
                                            can be interacted with
                                        allowance:
                                          oneOf:
                                            - type: string
                                              title: Hex String
                                              description: >-
                                                The allowance for the permission. e.g.
                                                '0x1'
                                            - type: string
                                              pattern: ^\d+$
                                              title: Decimal String
                                              description: >-
                                                The allowance for the permission. e.g.
                                                '1'
                                      required:
                                        - address
                                        - allowance
                                  required:
                                    - type
                                    - data
                                  title: ERC20 Transfer
                                  description: Permission to transfer specific ERC20 tokens
                                  example:
                                    type: erc20-token-transfer
                                    data:
                                      address: >-
                                        0x1234567890123456789012345678901234567890
                                      allowance: '100'
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - erc721-token-transfer
                                    data:
                                      type: object
                                      properties:
                                        address:
                                          type: string
                                          description: >-
                                            The address of the smart contract that
                                            can be interacted with
                                        tokenIds:
                                          type: array
                                          items:
                                            type: string
                                          description: The token IDs that can be transferred
                                      required:
                                        - address
                                        - tokenIds
                                  required:
                                    - type
                                    - data
                                  title: ERC721 Transfer
                                  description: >-
                                    Permission to transfer specific ERC721
                                    tokens (NFTs)
                                  example:
                                    type: erc721-token-transfer
                                    data:
                                      address: >-
                                        0x1234567890123456789012345678901234567890
                                      tokenIds:
                                        - '0x1'
                                        - '0x2'
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - erc1155-token-transfer
                                    data:
                                      type: object
                                      properties:
                                        address:
                                          type: string
                                          description: >-
                                            The address of the smart contract that
                                            can be interacted with
                                        allowances:
                                          type: object
                                          additionalProperties:
                                            oneOf:
                                              - type: string
                                                title: Hex String
                                                description: >-
                                                  The allowance for the permission. e.g.
                                                  '0x1'
                                              - type: string
                                                pattern: ^\d+$
                                                title: Decimal String
                                                description: >-
                                                  The allowance for the permission. e.g.
                                                  '1'
                                          description: >-
                                            The token IDs and allowances that can be
                                            transferred
                                      required:
                                        - address
                                        - allowances
                                  required:
                                    - type
                                    - data
                                  title: ERC1155 Transfer
                                  description: >-
                                    Permission to transfer specific ERC1155
                                    tokens (Multi-tokens)
                                  example:
                                    type: erc1155-token-transfer
                                    data:
                                      address: >-
                                        0x1234567890123456789012345678901234567890
                                      allowances:
                                        '1': '0x5'
                                        '2': '0xa'
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - gas-limit
                                    data:
                                      type: object
                                      properties:
                                        limit:
                                          type: string
                                        enforcePaymaster:
                                          type: boolean
                                        allowedPaymaster:
                                          type: string
                                      required:
                                        - limit
                                  required:
                                    - type
                                    - data
                                  title: Gas Limit
                                  description: >-
                                    Permission to use a limited amount of gas
                                    across all operations
                                  example:
                                    type: gas-limit
                                    data:
                                      limit: '0x1234'
                                      enforcePaymaster: true
                                      allowedPaymaster: >-
                                        0x1234567890123456789012345678901234567890
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - call-limit
                                    data:
                                      type: object
                                      properties:
                                        count:
                                          type: integer
                                          minimum: 1
                                      required:
                                        - count
                                  required:
                                    - type
                                    - data
                                  title: Transaction Count Limit
                                  description: >-
                                    Permission to make a limited number of
                                    transaction calls in total
                                  example:
                                    type: call-limit
                                    data:
                                      count: 5
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - rate-limit
                                    data:
                                      type: object
                                      properties:
                                        count:
                                          type: integer
                                          minimum: 1
                                        interval:
                                          type: integer
                                          minimum: 1
                                          description: Time window in seconds
                                      required:
                                        - count
                                        - interval
                                  required:
                                    - type
                                    - data
                                  title: Rate Limit
                                  description: >-
                                    Permission to make calls at a limited rate
                                    within time intervals
                                  example:
                                    type: rate-limit
                                    data:
                                      count: 5
                                      interval: 3600
                            description: The permissions of the signer following ERC-7715
                        required:
                          - type
                          - locator
                  description: Optional array of additional signers for the wallet
              required:
                - adminSigner
              description: EVM smart wallet type specific configuration settings
            address:
              type: string
              description: The onchain address of the wallet
              example: '0x1234567890123456789012345678901234567890'
            linkedUser:
              type: string
              description: >-
                The user that is linked to this wallet in format
                <locatorType>:<value>
              example: email:test@test.com
            createdAt:
              type: number
              description: ISO timestamp of when the wallet was created
              example: '2024-01-01T00:00:00.000Z'
          required:
            - type
            - config
            - address
          title: EVM smart wallet output
        - type: object
          properties:
            type:
              type: string
              enum:
                - solana-smart-wallet
              description: The type of wallet configuration
            config:
              type: object
              properties:
                adminSigner:
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - solana-keypair
                          description: Type identifier for Solana keypair signers
                        address:
                          type: string
                          pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          description: The Solana address of the signer
                        locator:
                          type: string
                          description: The locator of the signer
                      required:
                        - type
                        - address
                        - locator
                      title: Solana Keypair Signer
                      description: Configuration for an Solana keypair signer
                      example:
                        type: solana-keypair
                        address: 5vV8Vw7A2Eiu3mAi4T6Nurqqst1Zr3UYue8R2N1H8CFh
                        locator: >-
                          solana-keypair:5vV8Vw7A2Eiu3mAi4T6Nurqqst1Zr3UYue8R2N1H8CFh
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - solana-fireblocks-custodial
                          description: Type identifier for Solana custodial signers
                        address:
                          type: string
                          pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
                          description: The Solana address of the custodial signer
                        locator:
                          type: string
                          description: The locator of the signer
                      required:
                        - type
                        - address
                        - locator
                      title: Solana Custodial Signer
                      description: Configuration for an Solana custodial signer
                      example:
                        type: solana-fireblocks-custodial
                        address: 5vV8Vw7A2Eiu3mAi4T6Nurqqst1Zr3UYue8R2N1H8CFh
                        locator: >-
                          solana-fireblocks-custodial:5vV8Vw7A2Eiu3mAi4T6Nurqqst1Zr3UYue8R2N1H8CFh
                delegatedSigners:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - solana-keypair
                          - solana-fireblocks-custodial
                        description: >-
                          Specifies the type of Solana signer being used,
                          describing the method of key management and
                          transaction signing.
                      locator:
                        type: string
                        title: Signer Locator
                        description: The locator of the signer
                        example:
                          - >-
                            evm-keypair:0x1234567890123456789012345678901234567890
                          - evm-passkey:credential-id-123
                          - >-
                            evm-fireblocks-custodial:0x1234567890123456789012345678901234567890
                          - >-
                            solana-keypair:DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ
                          - >-
                            solana-fireblocks-custodial:DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ
                      transaction:
                        type: object
                        properties:
                          onChain:
                            type: object
                            properties:
                              transaction:
                                type: string
                              lastValidBlockHeight:
                                type: number
                              txId:
                                type: string
                            required:
                              - transaction
                            description: >-
                              Solana smart wallet transaction data including
                              input parameters and chain specific details
                          id:
                            type: string
                            description: Unique identifier for the transaction
                          status:
                            type: string
                            enum:
                              - awaiting-approval
                              - pending
                              - failed
                              - success
                            description: Current status of the transaction
                          approvals:
                            type: object
                            properties:
                              pending:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    signer:
                                      type: string
                                      description: >-
                                        The locator of the signer that's pending
                                        approval
                                    message:
                                      type: string
                                      description: The message that needs to be signed
                                  required:
                                    - signer
                                    - message
                                description: List of pending signatures
                              submitted:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    signature:
                                      type: string
                                      description: The cryptographic signature
                                    submittedAt:
                                      type: number
                                      description: When the signature was submitted
                                      example: '2024-01-01T00:00:00.000Z'
                                    signer:
                                      type: string
                                      title: Signer Locator
                                      description: >-
                                        The locator of the signer who submitted
                                        this signature
                                      example:
                                        - >-
                                          evm-keypair:0x1234567890123456789012345678901234567890
                                        - evm-passkey:credential-id-123
                                        - >-
                                          evm-fireblocks-custodial:0x1234567890123456789012345678901234567890
                                        - >-
                                          solana-keypair:DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ
                                        - >-
                                          solana-fireblocks-custodial:DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ
                                    message:
                                      type: string
                                      description: The message that was signed
                                    metadata:
                                      type: object
                                      properties:
                                        deviceInfo:
                                          type: string
                                        ipAddress:
                                          type: string
                                        userAgent:
                                          type: string
                                      description: >-
                                        Additional metadata about the signature
                                        submission
                                  required:
                                    - signature
                                    - submittedAt
                                    - signer
                                    - message
                                description: Record of all submitted signatures
                              required:
                                type: number
                                description: >-
                                  Number of required approvals for the
                                  transaction
                            required:
                              - pending
                              - submitted
                            description: >-
                              Complete approval data including requirements,
                              pending and submitted signatures
                          createdAt:
                            type: number
                            description: ISO timestamp when the transaction was created
                            example: '2024-01-01T00:00:00.000Z'
                          completedAt:
                            type: number
                            description: >-
                              ISO timestamp when the transaction reached
                              finality
                            example: '2024-01-01T00:00:00.000Z'
                          error:
                            oneOf:
                              - type: object
                                properties:
                                  reason:
                                    type: string
                                    enum:
                                      - build_failed
                                      - failed_to_land_on_chain
                                      - unknown
                                      - sanctioned_wallet_address
                                  message:
                                    type: string
                                required:
                                  - reason
                                  - message
                              - type: object
                                properties:
                                  reason:
                                    type: string
                                    enum:
                                      - program_error
                                  message:
                                    type: string
                                  logs: {}
                                required:
                                  - reason
                                  - message
                              - type: object
                                properties:
                                  reason:
                                    type: string
                                    enum:
                                      - execution_reverted
                                  message:
                                    type: string
                                  revert:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        enum:
                                          - contract_call
                                          - wallet_authorization
                                          - wallet_deployment
                                      reason:
                                        type: string
                                      reasonData:
                                        type: string
                                      explorerLink:
                                        type: string
                                      simulationLink:
                                        type: string
                                    required:
                                      - type
                                      - reason
                                required:
                                  - reason
                                  - message
                            description: >-
                              Error message if the transaction fails after
                              submission
                          sendParams:
                            type: object
                            properties:
                              token:
                                type: string
                                description: The token locator that's being sent
                              params:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    description: The amount of the token to send
                                  recipient:
                                    type: string
                                    description: The recipient locator for the token
                                  recipientAddress:
                                    type: string
                                    description: The recipient address for the token
                                required:
                                  - recipient
                                  - recipientAddress
                                description: The parameters for the send token transaction
                            required:
                              - token
                              - params
                        required:
                          - onChain
                          - id
                          - status
                          - createdAt
                        description: The transaction for the signer
                    required:
                      - type
                      - locator
                      - transaction
                    title: Delegated Signer Response
                    description: >-
                      Complete delegated signer response including the signer
                      and authorization transaction
                    example:
                      type: solana-keypair
                      locator: >-
                        solana-keypair:DzaYNi6XtWt9DNwFV61bzWEiaSxfTgWbFDgFmurJzwdo
                      transaction:
                        onChain:
                          transaction: >-
                            4B9yzZoEV45cngasy9dP2MVxhZ2iro72eqdKitTj62pqFYHk4wVoR4NCc3xkEamWbFGXLjVotyPrDqEn11WUYHoq98b5aKCSDUrLWaQDZgb3xLxF1EvaY82Vui7Ntbv682tYnu5Ngnv4Eun1wrDJ6r4aRsUSQ3XF3jvNq8bRMn4HavBjPyErQSgXX9ytCDKntCEQcY3wfMHYbRFg5zgFU1QCqhuoLa5oBpZLCUYT8DCYu3Ado7W4xzP5aCAAwVd2tj8iAnwJEujQvBnr7wWkf2mCS1cNoCTbCFAvNVaVaau6vXBWKZqS7sDNmUD3KLQVqLwxhLLNeRuvUTkD5VQ5D21VcDiYWQWQTuYYAcQ3RUhn4Vt4ymijgRGbUXZHoeN26UHoGSBFJJ7gjqCruAtFXQZxHRDKSWN9jhYXugPYVVXSpGFA5BYWBuztUtEMF4u96tk6YTgPGdkTgrQybkNxRwbVCbpsKRG1kAbjQgBxDLAX89eMCZVbzWXnAgGA6aDBQPLAyQru8awZBDasrirnxCSQq9cWwMLePQGhY5gJZykswFKtyYF4CHeto
                          lastValidBlockHeight: 343486121
                        id: 30ef7527-eb5a-4862-92de-aa96947ee705
                        status: pending
                        approvals:
                          required: 1
                          pending:
                            - signer: >-
                                solana-keypair:GsMTPi8utYnuWakS8uvPah3UKd13dWcAshirnNmXDr3d
                              message: >-
                                2kwN1iuY6Y6Br2i5D1QphaS28H7vDdAiwtABgtRdYqjx7s85rRwqF9y6iVBdv9dDZ8F1JAZo8iQdFBAx2Eg9tL3P4sbAznPZgkZcGrbUSCe5jTZ7ULZrcSd377SGEjsZcwx7h7ozrUKB6FnjHB7wGaCqEeeUXE2CfCjC1SjEc8ZzZeyNmeEv5hJSkGsK62syoAE4V5ScZs7idhxXWzpeJiRt3wfWJRevr1pJY7BBd8HaEYurXtXqwCox1uzQnnuZTiUNu7cUWUajYXBWUae4NJGJxmtFJvqnPAa5HXB4nZWXMDdcBis4tQkLCfFT6GXMauQTFCaKmcMgLRh218n51nTNopR7gTaY66ysRH536wmxt9dLqkS9okG3HF5GEXufXPLX6iT7e7
                          submitted: []
                        createdAt: '2025-01-20T13:49:08.910Z'
                  description: Optional array of additional signers for the wallet
              required:
                - adminSigner
              description: Solana Smart wallet type specific configuration settings
            address:
              type: string
              description: The onchain address of the wallet
              example: '0x1234567890123456789012345678901234567890'
            linkedUser:
              type: string
              description: >-
                The user that is linked to this wallet in format
                <locatorType>:<value>
              example: email:test@test.com
            createdAt:
              type: number
              description: ISO timestamp of when the wallet was created
              example: '2024-01-01T00:00:00.000Z'
          required:
            - type
            - config
            - address
          title: Solana Smart wallet output
        - type: object
          properties:
            type:
              type: string
              enum:
                - solana-mpc-wallet
              description: The type of wallet configuration
            config:
              description: Solana MPC wallet type specific configuration settings
            address:
              type: string
              description: The onchain address of the wallet
              example: '0x1234567890123456789012345678901234567890'
            linkedUser:
              type: string
              description: >-
                The user that is linked to this wallet in format
                <locatorType>:<value>
              example: email:test@test.com
            createdAt:
              type: number
              description: ISO timestamp of when the wallet was created
              example: '2024-01-01T00:00:00.000Z'
          required:
            - type
            - address
          title: Solana MPC wallet output
        - type: object
          properties:
            type:
              type: string
              enum:
                - aptos-mpc-wallet
              description: The type of wallet configuration
            config:
              description: Aptos MPC wallet type specific configuration settings
            address:
              type: string
              description: The onchain address of the wallet
              example: '0x1234567890123456789012345678901234567890'
            linkedUser:
              type: string
              description: >-
                The user that is linked to this wallet in format
                <locatorType>:<value>
              example: email:test@test.com
            createdAt:
              type: number
              description: ISO timestamp of when the wallet was created
              example: '2024-01-01T00:00:00.000Z'
          required:
            - type
            - address
          title: Aptos MPC wallet output
        - type: object
          properties:
            type:
              type: string
              enum:
                - sui-mpc-wallet
              description: The type of wallet configuration
            config:
              description: Sui MPC wallet type specific configuration settings
            address:
              type: string
              description: The onchain address of the wallet
              example: '0x1234567890123456789012345678901234567890'
            linkedUser:
              type: string
              description: >-
                The user that is linked to this wallet in format
                <locatorType>:<value>
              example: email:test@test.com
            createdAt:
              type: number
              description: ISO timestamp of when the wallet was created
              example: '2024-01-01T00:00:00.000Z'
          required:
            - type
            - address
          title: Sui MPC wallet output
        - type: object
          properties:
            type:
              type: string
              enum:
                - evm-mpc-wallet
              description: The type of wallet configuration
            address:
              type: string
              description: The onchain address of the wallet
              example: '0x1234567890123456789012345678901234567890'
            linkedUser:
              type: string
              description: >-
                The user that is linked to this wallet in format
                <locatorType>:<value>
              example: email:test@test.com
            createdAt:
              type: number
              description: ISO timestamp of when the wallet was created
              example: '2024-01-01T00:00:00.000Z'
          required:
            - type
            - address
          title: EVM MPC wallet output
      description: Complete wallet configuration including type-specific settings
      example:
        type: evm-smart-wallet
        linkedUser: email:user@example.com
        address: '0x1234567890123456789012345678901234567890'
        config:
          adminSigner:
            type: evm-keypair
            address: '0x1234567890123456789012345678901234567890'
            locator: evm-keypair:0x1234567890123456789012345678901234567890
    WalletV1Alpha2ErrorDTO:
      type: object
      properties:
        error:
          type: boolean
          enum:
            - true
        message:
          type: string
          description: Error message
          example: <error message>
      required:
        - error
        - message
      description: Wallet error

````