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

# Approve Signature

> Submit approval for a signature to sign a message or typed data.

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



## OpenAPI

````yaml post /2025-06-09/wallets/{walletLocator}/signatures/{signatureId}/approvals
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:
  /2025-06-09/wallets/{walletLocator}/signatures/{signatureId}/approvals:
    post:
      summary: Approve Signature
      description: |-
        Submit approval for a signature to sign a message or typed data.

        **API scope required**: `wallets:signatures.create`
      operationId: WalletsV2025Controller-submitSignatureApprovals-2
      parameters:
        - name: X-API-KEY
          in: header
          description: API key required for authentication
          required: true
          schema:
            type: string
        - name: walletLocator
          required: true
          in: path
          description: >-
            A wallet locator can be of the format:

            - `<walletAddress>`

            - `email:<email>:<chainType>[:<walletType>][:alias:<alias>]`
            (walletType defaults to 'smart')

            - `userId:<userId>:<chainType>[:<walletType>][:alias:<alias>]`
            (white label user example)

            -
            `phoneNumber:<phoneNumber>:<chainType>[:<walletType>][:alias:<alias>]`

            - `twitter:<handle>:<chainType>[:<walletType>][:alias:<alias>]`

            - `x:<handle>:<chainType>[:<walletType>][:alias:<alias>]`

            - `me:<chainType>[:<walletType>][:alias:<alias>]` (Use when calling
            from the client side with a client API key)

            - `chainType[:<walletType>]:alias:<alias>`
          example:
            - '0x1234567890123456789012345678901234567890'
            - email:user@example.com:evm:smart
            - email:user@example.com:evm
            - email:user@example.com:evm:smart:alias:myWallet
            - userId:507f1f77bcf86cd799439011:solana:mpc
            - userId:did:example:cm4lr5piw0h6t1bjho0onryql:evm:smart
            - userId:507f1f77bcf86cd799439011:evm:alias:primary
            - phoneNumber:+12125551234:evm:smart
            - phoneNumber:+12125551234:evm:smart:alias:mobile
            - twitter:johndoe:evm:smart
            - x:@johndoe:evm:smart:alias:xWallet
            - me:evm:smart
            - me:evm:smart:alias:personal
            - evm:alias:myAlias
          schema:
            type: string
        - name: signatureId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitApprovalV2025DTO'
      responses:
        '201':
          description: The signature has been successfully approved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletsSignatureV2025ResponseDTO'
        '400':
          description: Returns an error if the signature is not valid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletV1Alpha2ErrorDTO'
        '404':
          description: Returns an error if the wallet or signature not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletV1Alpha2ErrorDTO'
components:
  schemas:
    SubmitApprovalV2025DTO:
      type: object
      properties:
        approvals:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  signer:
                    type: string
                    description: The locator for the passkey signer
                    example: passkey:-y--aq1hqKC_ipuPHa-8aQ
                  signature:
                    type: object
                    properties:
                      r:
                        type: string
                        description: R component of the signature as a stringified bigint
                      s:
                        type: string
                        description: S component of the signature as a stringified bigint
                    required:
                      - r
                      - s
                    description: The signature components
                  metadata:
                    type: object
                    properties:
                      authenticatorData:
                        type: string
                        description: WebAuthn authenticator data as hex string
                      challengeIndex:
                        type: number
                        description: Index of the challenge used
                      clientDataJSON:
                        type: string
                        description: WebAuthn client data JSON string
                      typeIndex:
                        type: number
                        description: Index of the signature type
                      userVerificationRequired:
                        type: boolean
                        description: Whether user verification was required
                    required:
                      - authenticatorData
                      - challengeIndex
                      - clientDataJSON
                      - typeIndex
                      - userVerificationRequired
                    description: WebAuthn signature metadata
                required:
                  - signer
                  - signature
                  - metadata
                description: Schema for WebAuthn signature data
                title: Passkey signature submission payload
              - type: object
                properties:
                  signer:
                    type: string
                    description: The locator for the external wallet signer
                    example: external-wallet:0x1234567890123456789012345678901234567890
                  signature:
                    oneOf:
                      - type: string
                      - type: string
                    description: The cryptographic signature
                    example: 0x4551567890abcdef...
                required:
                  - signer
                  - signature
                title: External wallet signature submission payload
                description: Schema for external wallet signature submission
              - type: object
                properties:
                  signer:
                    type: string
                    description: The locator for the email signer
                    example: email:user@example.com
                  signature:
                    oneOf:
                      - type: string
                      - type: string
                    description: The cryptographic signature
                    example: 0x4551567890abcdef...
                required:
                  - signer
                  - signature
                title: Email signer signature submission payload
                description: Schema for email signer signature submission
              - type: object
                properties:
                  signer:
                    type: string
                    description: The locator for the phone signer
                    example: phone:+1234567890
                  signature:
                    oneOf:
                      - type: string
                      - type: string
                    description: The cryptographic signature
                    example: 0x4551567890abcdef...
                required:
                  - signer
                  - signature
                title: Phone signer signature submission payload
                description: Schema for phone signer signature submission
              - type: object
                properties:
                  signer:
                    type: string
                    description: The locator for the device signer
                    example: device:BIVmCqMz8QJB+se2kJEpGQ...
                  signature:
                    type: object
                    properties:
                      r:
                        type: string
                      s:
                        type: string
                    required:
                      - r
                      - s
                    description: The p256 signature with r and s components
                    example:
                      r: 0x1234...
                      s: 0x5678...
                required:
                  - signer
                  - signature
                title: Device signer signature submission payload
                description: Schema for device signer signature submission
          minItems: 1
          description: Array of approvals to submit for this transaction
      required:
        - approvals
      description: Input for submitting one or more approvals
      example:
        approvals:
          - signer: external-wallet:0x1234...
            signature: 0x1234567890abcdef...
    WalletsSignatureV2025ResponseDTO:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the signature
        type:
          type: string
          enum:
            - message
            - typed-data
          description: The type of signature
        chainType:
          type: string
          enum:
            - evm
            - solana
            - aptos
            - sui
            - stellar
          description: The blockchain type of the wallet
        walletType:
          type: string
          enum:
            - smart
            - mpc
          description: The wallet type (smart or mpc)
        status:
          type: string
          enum:
            - awaiting-approval
            - pending
            - failed
            - success
          description: Current status of the signature
        params:
          oneOf:
            - type: object
              properties:
                message:
                  type: string
                  description: The message in plain text to sign
                signer:
                  discriminator:
                    propertyName: type
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - external-wallet
                        address:
                          type: string
                          description: The address of the external wallet
                        locator:
                          type: string
                          description: The locator of the external wallet signer
                      required:
                        - type
                        - address
                        - locator
                      title: External Wallet Signer
                      description: Full External Wallet signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - passkey
                        id:
                          type: string
                          description: The ID of the passkey
                        locator:
                          type: string
                          description: The locator of the passkey signer
                      required:
                        - type
                        - id
                        - locator
                      title: Passkey Signer
                      description: Full Passkey signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - api-key
                        address:
                          type: string
                          description: The address of the api key
                        locator:
                          type: string
                          description: The locator of the api key signer
                      required:
                        - type
                        - address
                        - locator
                      title: API Key Signer
                      description: Full API Key signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - device
                        publicKey:
                          type: object
                          properties:
                            x:
                              type: string
                            'y':
                              type: string
                          required:
                            - x
                            - 'y'
                          description: The p256 public key of the device signer
                        locator:
                          type: string
                          description: The locator of the device signer
                      required:
                        - type
                        - publicKey
                        - locator
                      title: Device Signer
                      description: Full Device signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - email
                        email:
                          type: string
                          format: email
                        locator:
                          type: string
                      required:
                        - type
                        - email
                        - locator
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - phone
                        phone:
                          type: string
                        locator:
                          type: string
                      required:
                        - type
                        - phone
                        - locator
                  description: >-
                    The full signer object who will submit this signature.
                    Defaults to the wallet's admin signer.
                chain:
                  type: string
                  enum:
                    - arbitrum-sepolia
                    - arc-testnet
                    - avalanche-fuji
                    - curtis
                    - base-goerli
                    - base-sepolia
                    - bsc-testnet
                    - chiliz-spicy-testnet
                    - coti-testnet
                    - ethereum-goerli
                    - ethereum-sepolia
                    - hedera-testnet
                    - hypersonic-testnet
                    - lightlink-pegasus
                    - mantle-sepolia
                    - optimism-goerli
                    - optimism-sepolia
                    - polygon-amoy
                    - polygon-mumbai
                    - crossmint-private-testnet-ethereum
                    - crossmint-private-testnet-polygon
                    - rari-testnet
                    - scroll-sepolia
                    - sei-atlantic-2-testnet
                    - shape-sepolia
                    - skale-nebula-testnet
                    - soneium-minato-testnet
                    - space-testnet
                    - story-testnet
                    - verify-testnet
                    - viction-testnet
                    - xai-sepolia-testnet
                    - zkatana
                    - zkyoto
                    - zora-goerli
                    - zora-sepolia
                    - mode-sepolia
                    - u2u-nebulas
                    - zenchain-testnet
                    - abstract-testnet
                    - world-chain-sepolia
                    - plume-testnet
                    - flow-testnet
                    - tempo-testnet
                    - ethereum
                    - polygon
                    - bsc
                    - optimism
                    - arbitrum
                    - base
                    - zora
                    - arbitrumnova
                    - astar-zkevm
                    - apechain
                    - hedera
                    - coti
                    - lightlink
                    - mantle
                    - skale-nebula
                    - sei-pacific-1
                    - chiliz
                    - avalanche
                    - xai
                    - shape
                    - rari
                    - scroll
                    - viction
                    - mode
                    - space
                    - soneium
                    - story
                    - u2u-solaris
                    - abstract
                    - world-chain
                    - plume
                    - flow
                  description: The chain on which the signature will be submitted
              required:
                - message
              description: Parameters for a message signature
              title: Message signature parameters
            - type: object
              properties:
                typedData:
                  type: object
                  properties:
                    domain:
                      type: object
                      properties:
                        name:
                          type: string
                        version:
                          type: string
                        chainId:
                          type: number
                        verifyingContract:
                          type: string
                          description: An EVM address string
                        salt:
                          type: string
                      required:
                        - name
                        - version
                        - chainId
                        - verifyingContract
                    types:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                            type:
                              type: string
                          required:
                            - name
                            - type
                    primaryType:
                      type: string
                    message:
                      type: object
                      additionalProperties: {}
                  required:
                    - domain
                    - types
                    - primaryType
                    - message
                chain:
                  type: string
                  enum:
                    - arbitrum-sepolia
                    - arc-testnet
                    - avalanche-fuji
                    - curtis
                    - base-goerli
                    - base-sepolia
                    - bsc-testnet
                    - chiliz-spicy-testnet
                    - coti-testnet
                    - ethereum-goerli
                    - ethereum-sepolia
                    - hedera-testnet
                    - hypersonic-testnet
                    - lightlink-pegasus
                    - mantle-sepolia
                    - optimism-goerli
                    - optimism-sepolia
                    - polygon-amoy
                    - polygon-mumbai
                    - crossmint-private-testnet-ethereum
                    - crossmint-private-testnet-polygon
                    - rari-testnet
                    - scroll-sepolia
                    - sei-atlantic-2-testnet
                    - shape-sepolia
                    - skale-nebula-testnet
                    - soneium-minato-testnet
                    - space-testnet
                    - story-testnet
                    - verify-testnet
                    - viction-testnet
                    - xai-sepolia-testnet
                    - zkatana
                    - zkyoto
                    - zora-goerli
                    - zora-sepolia
                    - mode-sepolia
                    - u2u-nebulas
                    - zenchain-testnet
                    - abstract-testnet
                    - world-chain-sepolia
                    - plume-testnet
                    - flow-testnet
                    - tempo-testnet
                    - ethereum
                    - polygon
                    - bsc
                    - optimism
                    - arbitrum
                    - base
                    - zora
                    - arbitrumnova
                    - astar-zkevm
                    - apechain
                    - hedera
                    - coti
                    - lightlink
                    - mantle
                    - skale-nebula
                    - sei-pacific-1
                    - chiliz
                    - avalanche
                    - xai
                    - shape
                    - rari
                    - scroll
                    - viction
                    - mode
                    - space
                    - soneium
                    - story
                    - u2u-solaris
                    - abstract
                    - world-chain
                    - plume
                    - flow
                  description: The chain on which the signature will be submitted
                signer:
                  discriminator:
                    propertyName: type
                  oneOf:
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - external-wallet
                        address:
                          type: string
                          description: The address of the external wallet
                        locator:
                          type: string
                          description: The locator of the external wallet signer
                      required:
                        - type
                        - address
                        - locator
                      title: External Wallet Signer
                      description: Full External Wallet signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - passkey
                        id:
                          type: string
                          description: The ID of the passkey
                        locator:
                          type: string
                          description: The locator of the passkey signer
                      required:
                        - type
                        - id
                        - locator
                      title: Passkey Signer
                      description: Full Passkey signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - api-key
                        address:
                          type: string
                          description: The address of the api key
                        locator:
                          type: string
                          description: The locator of the api key signer
                      required:
                        - type
                        - address
                        - locator
                      title: API Key Signer
                      description: Full API Key signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - device
                        publicKey:
                          type: object
                          properties:
                            x:
                              type: string
                            'y':
                              type: string
                          required:
                            - x
                            - 'y'
                          description: The p256 public key of the device signer
                        locator:
                          type: string
                          description: The locator of the device signer
                      required:
                        - type
                        - publicKey
                        - locator
                      title: Device Signer
                      description: Full Device signer object
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - email
                        email:
                          type: string
                          format: email
                        locator:
                          type: string
                      required:
                        - type
                        - email
                        - locator
                    - type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - phone
                        phone:
                          type: string
                        locator:
                          type: string
                      required:
                        - type
                        - phone
                        - locator
                  description: The full signer object who will approve this signature
                isSmartWalletSignature:
                  type: boolean
                  description: >-
                    Whether the signature corresponds to the smart wallet or to
                    the signer. If true, the signature will be wrapped with
                    ERC6492.
              required:
                - typedData
                - chain
              description: Parameters for a typed data signature
              title: Typed data signature parameters
          description: Type-specific signature parameters
        approvals:
          type: object
          properties:
            pending:
              type: array
              items:
                type: object
                properties:
                  signer:
                    discriminator:
                      propertyName: type
                    oneOf:
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - external-wallet
                          address:
                            type: string
                            description: The address of the external wallet
                          locator:
                            type: string
                            description: The locator of the external wallet signer
                        required:
                          - type
                          - address
                          - locator
                        title: External Wallet Signer
                        description: Full External Wallet signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - passkey
                          id:
                            type: string
                            description: The ID of the passkey
                          locator:
                            type: string
                            description: The locator of the passkey signer
                        required:
                          - type
                          - id
                          - locator
                        title: Passkey Signer
                        description: Full Passkey signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - api-key
                          address:
                            type: string
                            description: The address of the api key
                          locator:
                            type: string
                            description: The locator of the api key signer
                        required:
                          - type
                          - address
                          - locator
                        title: API Key Signer
                        description: Full API Key signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - device
                          publicKey:
                            type: object
                            properties:
                              x:
                                type: string
                              'y':
                                type: string
                            required:
                              - x
                              - 'y'
                            description: The p256 public key of the device signer
                          locator:
                            type: string
                            description: The locator of the device signer
                        required:
                          - type
                          - publicKey
                          - locator
                        title: Device Signer
                        description: Full Device signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - email
                          email:
                            type: string
                            format: email
                          locator:
                            type: string
                        required:
                          - type
                          - email
                          - locator
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - phone
                          phone:
                            type: string
                          locator:
                            type: string
                        required:
                          - type
                          - phone
                          - locator
                    description: The full signer object 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:
                    oneOf:
                      - type: number
                        description: ISO 8601 formatted timestamp
                        example: '2024-01-01T00:00:00.000Z'
                      - type: string
                    description: When the signature was submitted
                    example: '2024-01-01T00:00:00.000Z'
                  signer:
                    discriminator:
                      propertyName: type
                    oneOf:
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - external-wallet
                          address:
                            type: string
                            description: The address of the external wallet
                          locator:
                            type: string
                            description: The locator of the external wallet signer
                        required:
                          - type
                          - address
                          - locator
                        title: External Wallet Signer
                        description: Full External Wallet signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - passkey
                          id:
                            type: string
                            description: The ID of the passkey
                          locator:
                            type: string
                            description: The locator of the passkey signer
                        required:
                          - type
                          - id
                          - locator
                        title: Passkey Signer
                        description: Full Passkey signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - api-key
                          address:
                            type: string
                            description: The address of the api key
                          locator:
                            type: string
                            description: The locator of the api key signer
                        required:
                          - type
                          - address
                          - locator
                        title: API Key Signer
                        description: Full API Key signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - device
                          publicKey:
                            type: object
                            properties:
                              x:
                                type: string
                              'y':
                                type: string
                            required:
                              - x
                              - 'y'
                            description: The p256 public key of the device signer
                          locator:
                            type: string
                            description: The locator of the device signer
                        required:
                          - type
                          - publicKey
                          - locator
                        title: Device Signer
                        description: Full Device signer object
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - email
                          email:
                            type: string
                            format: email
                          locator:
                            type: string
                        required:
                          - type
                          - email
                          - locator
                      - type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - phone
                          phone:
                            type: string
                          locator:
                            type: string
                        required:
                          - type
                          - phone
                          - locator
                    description: The full signer object who submitted this signature
                  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:
          oneOf:
            - type: number
              description: ISO 8601 formatted timestamp
              example: '2024-01-01T00:00:00.000Z'
            - type: string
          description: ISO timestamp when the signature was created
          example: '2024-01-01T00:00:00.000Z'
        completedAt:
          oneOf:
            - type: number
              description: ISO 8601 formatted timestamp
              example: '2024-01-01T00:00:00.000Z'
            - type: string
          description: ISO timestamp when the transaction reached finality
          example: '2024-01-01T00:00:00.000Z'
        error:
          description: Error message if the signature fails
        outputSignature:
          type: string
          description: The wallet's output signature of the request
      required:
        - id
        - type
        - chainType
        - walletType
        - status
        - params
        - createdAt
      description: >-
        Complete signature response including status, signing requirements, and
        wallet type specific data
      example:
        id: sig-b984491a-5785-43c0-8811-45d46fe6e520
        type: message
        chainType: evm
        walletType: smart
        status: awaiting-approval
        params:
          message: Hello, world!
          signer:
            type: external-wallet
            address: '0xB17Ea8d34078424B9d7D126E444d5F2C3CC5c81E'
            locator: external-wallet:0xB17Ea8d34078424B9d7D126E444d5F2C3CC5c81E
          chain: polygon
        approvals:
          pending:
            - signer:
                type: external-wallet
                address: '0xB17Ea8d34078424B9d7D126E444d5F2C3CC5c81E'
                locator: external-wallet:0xB17Ea8d34078424B9d7D126E444d5F2C3CC5c81E
              message: Hello world!
          submitted: []
        createdAt: '2024-01-01T00:00:00Z'
    WalletV1Alpha2ErrorDTO:
      type: object
      properties:
        error:
          type: boolean
          enum:
            - true
        message:
          type: string
          description: Error message
          example: <error message>
      required:
        - error
        - message
      description: Wallet error

````