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

# Log in with wallet signature

> Handles `POST /v1/auth/login/wallet` via `post.v1.auth.login.wallet`.



## OpenAPI

````yaml /openapi/phoenix-public-api.json post /v1/auth/login/wallet
openapi: 3.1.0
info:
  title: Phoenix Eternal API
  description: >-
    RESTful API for accessing Phoenix Eternal perpetual trading data. Provides
    real-time orderbook levels, asset information, and market metadata.
  termsOfService: https://www.phoenix.trade/terms-of-service
  contact:
    name: Phoenix Development Team
    url: https://github.com/Ellipsis-Labs/phoenix
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://perp-api.phoenix.trade
    description: Phoenix Eternal Perp API
security: []
tags:
  - name: Auth
    description: Wallet and session authentication.
  - name: Exchange
    description: Exchange, market, candle, and no-referral register-instruction workflows.
  - name: Invite
    description: Invite validation, referral activation, and wallet allowlist checks.
  - name: Notifications
    description: Trader notification reads and acknowledgement helpers.
  - name: Trader
    description: Trader state, account history, and transaction builders.
externalDocs:
  url: https://docs.phoenix.trade
  description: Phoenix developer documentation
paths:
  /v1/auth/login/wallet:
    post:
      tags:
        - Auth
      summary: Log in with wallet signature
      description: Handles `POST /v1/auth/login/wallet` via `post.v1.auth.login.wallet`.
      operationId: post.v1.auth.login.wallet
      requestBody:
        description: JSON request payload for `post.v1.auth.login.wallet`.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WalletLoginRequest'
            example:
              nonce_id: string
              signature: string
              wallet_pubkey: string
        required: true
      responses:
        '200':
          description: Phoenix JWT pair issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '401':
          $ref: '#/components/responses/ErrorResponse'
        '409':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    WalletLoginRequest:
      type: object
      required:
        - wallet_pubkey
        - signature
        - nonce_id
      properties:
        nonce_id:
          type: string
        signature:
          type: string
        wallet_pubkey:
          type: string
    AuthResponse:
      type: object
      required:
        - token_type
        - access_token
        - expires_in
        - refresh_token
        - refresh_expires_in
        - pop_key
      properties:
        access_token:
          type: string
        expires_in:
          type: integer
          format: int64
          minimum: 0
        pop_key:
          type: string
        refresh_expires_in:
          type: integer
          format: int64
          minimum: 0
        refresh_token:
          type: string
        token_type:
          type: string
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
  responses:
    ErrorResponse:
      description: Standard JSON error payload.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'

````