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

# Perps Wallet Transfers

<Tabs>
  <Tab title="Usage Note">
    <ul>
      <li>Returns historical transfers associated with one Hyperliquid wallet.</li>
      <li>Use <code>sort\_type</code> to read transfers in ascending or descending time order.</li>
      <li>Use the returned <code>nextCursor</code> as <code>cursor</code> in the next request.</li>
      <li><code>limit</code> defaults to <code>10</code> and supports up to <code>20</code> records per request.</li>
    </ul>
  </Tab>

  <Tab title="Accessibility">
    <ul>
      <li>Lite</li>
      <li>Starter</li>
      <li>Premium</li>
      <li>Business</li>
      <li>Enterprise</li>
    </ul>
  </Tab>

  <Tab title="Chain Supported">
    <p><strong>Hyperliquid</strong></p>
  </Tab>
</Tabs>

<Accordion title="Compute Unit ⚙️" icon="fa-gauge-high">
  <ul>
    <li>This endpoint consumes <code>5 CU</code> per request.</li>
  </ul>
</Accordion>

<Accordion title="Use Cases 💡" icon="fa-lightbulb">
  * Track deposits, withdrawals, and internal asset movements for a perp wallet.
  * Reconcile wallet funding activity with trading and PnL changes.
  * Build transfer histories for trader research and operational monitoring.
</Accordion>

<Accordion title="How to Use 🛠️" icon="fa-book-open">
  * Pass a Hyperliquid wallet address in the request body.
  * Start with an empty cursor and use `nextCursor` to continue pagination.
  * Use `sort_type=desc` for the newest transfers first or `sort_type=asc` for chronological processing.
</Accordion>

<Accordion title="Best Practices ✅" icon="fa-check-circle">
  * Persist the cursor when processing long histories.
  * Use the transaction hash to reconcile transfer records with external transaction data.
  * Combine transfers with Wallet Overview and Trade Fills to explain changes in wallet exposure.
</Accordion>


## OpenAPI

````yaml openapi/perps/openapi_perps_docs.json POST /perps/v1/wallet/transfers
openapi: 3.1.0
info:
  version: 1.1.0
  title: Perps Data API
  description: >-
    To utilize the Perps Data API, an API key is required for authentication.
    You can obtain an API key by signing up for a bds.birdeye.so account and
    generating an API key in your account settings. Include this API key in the
    headers of your API requests for authentication.


    Here's a step-by-step guide on how to obtain an API key: [Birdeye Data
    Authentication and API
    Keys](https://docs.birdeye.so/docs/authentication-api-keys)
servers:
  - url: https://public-api.birdeye.so
security:
  - apiKeyAuth: []
tags:
  - name: Perps - Token
  - name: Perps - Wallet
paths:
  /perps/v1/wallet/transfers:
    post:
      tags:
        - Perps - Wallet
      summary: Perps - Wallet Transfers
      operationId: post-perps-v1-wallet-transfers
      requestBody:
        $ref: '#/components/requestBodies/perpWalletTransfers'
      responses:
        '200':
          $ref: '#/components/responses/perpPostWalletTransfersResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
components:
  requestBodies:
    perpWalletTransfers:
      required: true
      content:
        application/json:
          schema:
            required:
              - wallet
            type: object
            properties:
              wallet:
                type: string
                example: '0x5b5d51203a0f9079f8aeb098a6523a13f298c060'
              sort_type:
                type: string
                enum:
                  - asc
                  - desc
                default: desc
              limit:
                type: integer
                default: 10
                minimum: 1
                maximum: 20
              cursor:
                type: string
                default: ''
          examples:
            WalletTransfers:
              value:
                wallet: '0x5b5d51203a0f9079f8aeb098a6523a13f298c060'
                sort_type: desc
                limit: 1
                cursor: >-
                  MHg1YjVkNTEyMDNhMGY5MDc5ZjhhZWIwOThhNjUyM2ExM2YyOThjMDYwLTE3ODkzNDA2NjAzMzYtMHhiOWI5MzcwMTE1M2JkNDFmYmIzMjA0NDQ1N2ZhNzgwMjAxNGIwMGU2YjAzZWYyZjE1ZDgxZTI1M2Q0M2ZhZTBh
  responses:
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Bad request
    '401':
      description: Unauthorized. API key is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Unauthorized
    '403':
      description: Forbidden. Request is blacklisted or not whitelisted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Access Denied
    '429':
      description: Too Many Requests. Rate limit reached
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Too many requests
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: Internal Server Error
    perpPostWalletTransfersResponse:
      description: JSON object containing a list of transfers with certain fields
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CommonResponseType'
          examples:
            WalletTransfers:
              value:
                data:
                  data:
                    - time: 1789340787
                      hash: >-
                        0xe862f3d735dc25efe9dc044458016f0202d200bcd0df44c18c2b9f29f4dfffda
                      type: Send
                      sender: '0x5b5d51203a0f9079f8aeb098a6523a13f298c060'
                      recipient: '0x2000000000000000000000000000000000000000'
                      token: USDC
                      amount: 4000000
                      usdc_value: 4000000
                      fee: 0.00002
                      fee_token: HYPE
                      source_dex: spot
                      destination_dex: spot
                      display_type: Send
                  nextCursor: >-
                    MHg1YjVkNTEyMDNhMGY5MDc5ZjhhZWIwOThhNjUyM2ExM2YyOThjMDYwLTE3ODkzNDA2NjAzMzYtMHhiOWI5MzcwMTE1M2JkNDFmYmIzMjA0NDQ1N2ZhNzgwMjAxNGIwMGU2YjAzZWYyZjE1ZDgxZTI1M2Q0M2ZhZTBh
                success: true
  schemas:
    CommonResponseType:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
        data:
          type: object
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.