---
title: "Create XP Transfer"
method: POST
path: "/xp/transfer"
tags: ["XPTransfersV2"]
---

# Create XP Transfer

`POST /xp/transfer`

Transfer XP instantly from your account to another user.

## Request body

- RequestsCreateXPTransferRequest
  - `amount` integer, required — Amount of XP to transfer (must be >= 1 and <= 1e12)
  - `is_private` boolean — Whether the transfer is private (not shown on public feeds). Defaults to false if not provided.
  - `recipient` string, required — Recipient's Starknet address (hex format)
  - `season` string — Season identifier. Defaults to season3 if not provided.

## Response `201`

Transfer created successfully

- ResponsesCreateTransferResponse
  - `transfer` ResponsesXPTransfer
    - `amount` integer — Amount of XP transferred
    - `created_at` integer — Creation timestamp (milliseconds since epoch)
    - `fee` integer — Fee charged for the transfer (deducted from sender's balance)
    - `id` string — Unique transfer identifier
    - `is_private` boolean — Whether the transfer is private (not shown on public feeds)
    - `recipient` string — Address of the recipient (gaining XP)
    - `season` string — Season identifier ('season1' for Season 1, 'season2' for Season 2, etc.)
    - `sender` string — Address of the sender (losing XP)

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Not whitelisted for XP transfers V2

## Changes

- **2026-07-27** `2b7343d38fd7` — 1 warning
  - the `amount` request property's max was set to `1000000000000.00`
- **2026-07-17** `f1370c46e9e8` — 9 warning
  - added the new `BLOCK_TRADE_REPLAYED_SIGNATURE` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - added the new `BLOCK_TRADE_REPLAYED_SIGNATURE` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `401`
  - added the new `BLOCK_TRADE_REPLAYED_SIGNATURE` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `403`
  - added the new `EVM_VAULT_OPERATORS_DISABLED` enum value to the `error/allOf[#/components/schemas/responses.ErrorCode]/` response property for the response status `400`
  - …5 more
- **2026-06-17** `f3533c17acc2` — 1 info
  - the `season` request property default value changed from `season2` to `season3`
- …earlier changes not shown

[Full history](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/changes/xp/transfer/post.md)

---

[API](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2.md) · [All operations](https://skmtc.dev/tradeparadex/apis/paradex-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tradeparadex/paradex-rest-api-2/revisions/a73698fdee53/schema)
