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

# Verify a SIWE signature and issue a session JWT



## OpenAPI

````yaml /openapi/extern-fe.json post /extern/fe/auth/verify
openapi: 3.1.0
info:
  title: Blend business-api — extern fe
  version: 1.0.0
  description: >-
    Frontend integration surface. Auth: X-Publishable-Key header + SIWE Bearer
    JWT. The account is implicit from the JWT.
servers:
  - url: https://{host}
    variables:
      host:
        default: api.portal.blend.money
security: []
paths:
  /extern/fe/auth/verify:
    post:
      tags:
        - fe
      summary: Verify a SIWE signature and issue a session JWT
      operationId: fe_authVerify
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string
                  minLength: 1
                  maxLength: 4096
                signature:
                  type: string
                  minLength: 132
                  maxLength: 2048
                  pattern: ^0x(?:[0-9a-fA-F]{2})+$
              required:
                - message
                - signature
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  data:
                    $ref: '#/components/schemas/VerifyResponse'
                required:
                  - status
                  - data
                additionalProperties: false
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
      security:
        - PublishableKey: []
components:
  schemas:
    VerifyResponse:
      type: object
      properties:
        token:
          type: string
        expiresAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp
        account:
          type: object
          properties:
            accountId:
              type: string
            safeAddress:
              $ref: '#/components/schemas/Address'
            chainsDeployed:
              type: array
              items:
                type: number
          required:
            - accountId
            - safeAddress
            - chainsDeployed
          additionalProperties: false
      required:
        - token
        - expiresAt
        - account
      additionalProperties: false
    Address:
      type: string
      pattern: ^0x[a-fA-F0-9]{40}$
      description: EIP-55 checksummed EVM address
      examples:
        - '0x1234567890AbcdEF1234567890aBcdef12345678'
  responses:
    Error:
      description: Error
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                const: error
              message:
                type: string
            required:
              - status
              - message
            additionalProperties: false
  securitySchemes:
    PublishableKey:
      type: apiKey
      in: header
      name: X-Publishable-Key
      description: Tenant publishable key (pk_live_...)

````