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

# Transfer a spot asset between your subaccounts

> Submits a signed transfer of a single spot asset from one subaccount to another subaccount you own. You specify the source and destination subaccounts (or set new_subaccount_manager to create a new destination subaccount under a manager), the asset and its sub_id, the amount, a nonce, signer, signature with expiry, and the maximum USD sequencer fee. Requires a session key with a transfer permission and returns the operation id and uuid.



## OpenAPI

````yaml /openapi.json post /private/transfer_spot
openapi: 3.1.0
info:
  title: Derive v3 API
  version: 0.2.0
  description: JSON-RPC 2.0 methods, served over WebSocket and HTTP POST.
servers:
  - url: https://api.derive.xyz/v3
    description: Production (HTTP POST base)
  - url: https://testnet.api.derive.xyz/v3
    description: Testnet (HTTP POST base)
security: []
tags:
  - name: Subaccounts
    description: >-
      List, inspect, and label subaccounts, portfolios, positions, and
      collateral.
  - name: Session Keys
    description: Register, edit, and list delegated signing keys.
  - name: Account
    description: Wallet-level account information and settings.
  - name: Orderbook
    description: Place, replace, cancel, and query orders, trigger orders, and algos.
  - name: RFQ
    description: 'Request-for-quote: send RFQs, quote, and execute block trades.'
  - name: Vault Shareholders
    description: >-
      Deposit into and withdraw from vaults, and track shares, requests, and
      performance.
  - name: Vault Curators
    description: >-
      Create and operate curated vaults: settle deposit and withdrawal requests,
      and manage vault metadata.
  - name: History
    description: >-
      Per-account historical records: orders, trades, transfers, and
      settlements.
  - name: Market Maker Protection
    description: Configure, read, and reset market-maker protection.
  - name: Transfers & Withdrawals
    description: Move collateral between subaccounts, to other wallets, and on-chain.
  - name: System
    description: Rate limits and transaction lookups.
  - name: Market Data
    description: Instruments, currencies, tickers, and market-wide feeds.
  - name: Referrals
    description: Referral codes and program performance.
  - name: Other
    description: Uncategorized.
paths:
  /private/transfer_spot:
    post:
      tags:
        - Transfers & Withdrawals
      summary: Transfer a spot asset between your subaccounts
      description: >-
        Submits a signed transfer of a single spot asset from one subaccount to
        another subaccount you own. You specify the source and destination
        subaccounts (or set new_subaccount_manager to create a new destination
        subaccount under a manager), the asset and its sub_id, the amount, a
        nonce, signer, signature with expiry, and the maximum USD sequencer fee.
        Requires a session key with a transfer permission and returns the
        operation id and uuid.
      operationId: private_transfer_spot
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrivateTransferSpotRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateTransferSpotResponse'
        default:
          description: JSON-RPC error (see Error Codes)
components:
  schemas:
    PrivateTransferSpotRequest:
      type: object
      required:
        - amount
        - asset_name
        - max_fee_usd
        - new_subaccount_manager
        - nonce
        - signature
        - signature_expiry_sec
        - signer
        - sub_id
        - subaccount_id
        - to_subaccount_id
      properties:
        amount:
          description: >-
            Transfer amount in units of the asset, as a decimal string (e.g.
            `"1.5"`) or JSON number.
          type: string
          format: decimal
        asset_name:
          type: string
        max_fee_usd:
          description: >-
            Maximum sequencer fee the signer authorises, in USD, as a decimal
            string (e.g. `"1.5"`) or a JSON number.
          type: string
          format: decimal
        new_subaccount_manager:
          description: >-
            Non-zero → create a new sender-owned subaccount under this manager
            id.
          type: integer
          format: uint32
          minimum: 0
        nonce:
          type: integer
          format: int64
        signature:
          type: string
        signature_expiry_sec:
          type: integer
          format: uint64
          minimum: 0
        signer:
          type: string
        sub_id:
          type: integer
          format: uint128
          minimum: 0
        subaccount_id:
          type: integer
          format: uint64
          minimum: 0
        to_subaccount_id:
          description: >-
            Existing destination subaccount. Ignored when
            `new_subaccount_manager != 0`.
          type: integer
          format: uint64
          minimum: 0
    PrivateTransferSpotResponse:
      type: object
      required:
        - op_uuid
        - operation_id
      properties:
        op_uuid:
          type: string
        operation_id:
          type: integer
          format: uint64
          minimum: 0

````

## Related topics

- [Transfer a spot asset to another owner's subaccount](/api-reference/transfers-&-withdrawals/transfer-a-spot-asset-to-another-owners-subaccount.md)
- [Transfers & Withdrawals](/trading/transfers-withdrawals.md)
- [Migration skill for your coding agent](/migrating/breaking-changes.md)
