---
title: "Transfer NFTs or tokens between wallets"
method: POST
path: "/api/v2/assets/transfer"
tags: ["NFT Endpoints"]
---

# Transfer NFTs or tokens between wallets

`POST /api/v2/assets/transfer`

Returns ordered blockchain actions to execute for transferring one or more NFTs or tokens from one wallet to another. Supports bulk transfers of multiple assets in a single request.

## Request body

- TransferRequest — Request to transfer NFTs or tokens between wallets
  - `assets` TransferAsset[], required — List of assets to transfer
    - `chain` string, required — The chain the asset is on (e.g. ethereum, base, solana)
    - `contract` string, required — The contract address of the asset
    - `token_id` string, required — The token ID of the asset
    - `quantity` string, required — The quantity to transfer in raw units (1 for ERC721, raw amount for ERC1155/fungible)
  - `from_address` string, required — Address of the sender wallet
  - `to_address` string, required — Address of the recipient wallet

## Response `200`

Transfer actions retrieved successfully

## Other responses

- `400` — The request is invalid. Possible reasons: empty assets array, invalid addresses, invalid chain, or cross-ecosystem transfer.
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `500` — Internal server error. Please open a support ticket so OpenSea can investigate.

---

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