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

# Get next chain signature

> Get the next signature requirement in a multi-step signature chain

Used for swaps that require multiple sequential signatures (e.g. permit + bridge).
Call this endpoint recursively: sign the returned data with the wallet,
then pass the signature back until `isComplete` is true.
Only needed when a signature returned by the approve endpoint has type "CHAINED".



## OpenAPI

````yaml https://api-partner.houdiniswap.com/v2/openapi.json post /dex/chainSignatures
openapi: 3.0.0
info:
  title: houdiniswap-backend
  version: 2.1.1
  description: Houdiniswap Backend
  license:
    name: ISC
  contact: {}
servers:
  - url: https://api-partner.houdiniswap.com/v2
security: []
paths:
  /dex/chainSignatures:
    post:
      tags:
        - DEX
      summary: Get next chain signature
      description: >-
        Get the next signature requirement in a multi-step signature chain


        Used for swaps that require multiple sequential signatures (e.g. permit
        + bridge).

        Call this endpoint recursively: sign the returned data with the wallet,

        then pass the signature back until `isComplete` is true.

        Only needed when a signature returned by the approve endpoint has type
        "CHAINED".
      operationId: ChainSignatures
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChainSignaturesRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ApprovalTypedData'
                type: array
        '422':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    ChainSignaturesRequest:
      properties:
        quoteId:
          type: string
          description: Quote ID from a prior quote response.
          example: 69a02882f48d56c923119d95
        addressFrom:
          type: string
          description: EVM address from which the amount will be deducted
          example: '0xb7dE6b6eEBF7401aFea5a49D6405C9048fEf2d40'
          pattern: ^0x[0-9a-fA-F]{40}$
        previousSignature:
          $ref: '#/components/schemas/SignatureObject'
          description: Previous signature object from the wallet signing step
        signatureKey:
          type: string
          description: >-
            Key for the signature in the chain, returned from the previous
            approve or chainSignatures call
          example: permit
        signatureStep:
          type: integer
          format: int32
          description: Step number in the signature chain sequence
          example: 1
          minimum: 0
      required:
        - quoteId
        - addressFrom
        - previousSignature
        - signatureKey
        - signatureStep
      type: object
      additionalProperties: false
    ApprovalTypedData:
      properties:
        data:
          $ref: '#/components/schemas/EIP712TypedData'
        type:
          $ref: '#/components/schemas/SignatureType'
        totalSteps:
          type: number
          format: double
        step:
          type: number
          format: double
        isComplete:
          type: boolean
        key:
          type: string
        swapRequiredMetadata:
          $ref: '#/components/schemas/Record_string.any_'
      required:
        - data
        - type
        - totalSteps
        - step
        - isComplete
        - key
      type: object
      additionalProperties: false
    ValidationError:
      properties:
        message:
          type: string
        code:
          type: string
        requestId:
          type: string
        fields:
          $ref: '#/components/schemas/FieldErrors'
      required:
        - message
        - code
        - fields
      type: object
      additionalProperties: false
    ErrorResponse:
      properties:
        message:
          type: string
        code:
          type: string
        requestId:
          type: string
      required:
        - message
        - code
      type: object
      additionalProperties: false
    SignatureObject:
      properties:
        signature:
          type: string
        key:
          type: string
        swapRequiredMetadata:
          $ref: '#/components/schemas/Record_string.any_'
      required:
        - signature
        - key
      type: object
      additionalProperties: false
    EIP712TypedData:
      properties:
        domain:
          $ref: '#/components/schemas/TypedDataDomain'
        types:
          $ref: '#/components/schemas/Record_string.TypedDataField-Array_'
        primaryType:
          type: string
        message:
          $ref: '#/components/schemas/Record_string.any_'
      required:
        - domain
        - types
        - primaryType
        - message
      type: object
      additionalProperties: false
    SignatureType:
      enum:
        - single
        - chained
      type: string
    Record_string.any_:
      properties: {}
      additionalProperties: {}
      type: object
      description: Construct a type with a set of properties K of type T
    FieldErrors:
      properties: {}
      type: object
      additionalProperties:
        properties:
          value: {}
          message:
            type: string
        required:
          - message
        type: object
    TypedDataDomain:
      properties:
        name:
          type: string
        version:
          type: string
        chainId:
          type: number
          format: double
        verifyingContract:
          type: string
        salt:
          type: string
      type: object
      additionalProperties: false
    Record_string.TypedDataField-Array_:
      properties: {}
      additionalProperties:
        items:
          $ref: '#/components/schemas/TypedDataField'
        type: array
      type: object
      description: Construct a type with a set of properties K of type T
    TypedDataField:
      properties:
        name:
          type: string
        type:
          type: string
      required:
        - name
        - type
      type: object
      additionalProperties: false
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header

````