> For the complete documentation index, see [llms.txt](https://docs.leather.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.leather.io/developers/stacks-methods/stx_transfersip9nft.md).

# stx\_transferSip9Nft

Request a transfer of a SIP-009 non-fungible token to a specified recipient.

## Method name

`stx_transferSip9Nft`

The app must be connected first, through [`getAddresses`](/developers/methods/getaddresses.md). Leather signs with the account the app connected with.

Leather builds a call to the collection contract's `transfer` function and attaches its own post-condition: the sender sends the token identified by `assetId`. The request's `postConditions` and `postConditionMode` are not applied.

## **Parameters**

| Parameter   | Description                                                                                                                                                                     | Required | Type               |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------ |
| `recipient` | Stacks c32-encoded address of the recipient                                                                                                                                     | ✅        | `string`           |
| `asset`     | Fully qualified token identifier, as `<contract address>.<contract name>::<token name>`                                                                                         | ✅        | `string`           |
| `assetId`   | Token ID as a hex-encoded, serialized Clarity value                                                                                                                             | ✅        | `string`           |
| `address`   | Sets the `sender` argument of the `transfer` call and the post-condition principal. Defaults to the connected account's address. Any other address makes the call fail on chain | ❌        | `string`           |
| `network`   | Network identifier                                                                                                                                                              | ❌        | `string`           |
| `fee`       | Transaction fee in micro-STX. The user can change it before approving                                                                                                           | ❌        | `number \| string` |
| `nonce`     | Transaction nonce. The user can change it before approving                                                                                                                      | ❌        | `number \| string` |
| `sponsored` | Build a sponsored transaction. Leather returns it signed, without a `txid`                                                                                                      | ❌        | `boolean`          |

## **Example request**

```typescript
import { serializeCV, uintCV } from "@stacks/transactions";

try {
  // Replace with your collection's contract and token name
  const response = await window.LeatherProvider.request("stx_transferSip9Nft", {
    recipient: "SP3TB3AJ0XMZ9S6CGY2CQ6R06H1Z6DJQ1SH15ZP2H",
    asset: "SP3FBR2AGK5X3Y5D0X6MYB6Z3R9Y3WNRJY9ZTV8PV.my-nft::my-nft",
    assetId: serializeCV(uintCV(12)), // token u12
  });

  console.log("Response:", response);
} catch (error) {
  console.log("Request error:", error);
}
```

## Example Response

```json
{
    "jsonrpc": "2.0",
    "id": "d3f1a7b0-5e6c-4f18-92a4-8e3b9f7c5c71",
    "result": {
        "txid": "f9c2a8f1e3b1d5a7c8e2f6a9d4b3e1c7f2a5d9b8c6e4f1a3b7d2e9c5f8a1b6c3",
        "transaction": "dead...beef"
    }
}
```

## Errors

| Code     | Message                                                                 | When                         |
| -------- | ----------------------------------------------------------------------- | ---------------------------- |
| `16`     | `Wallet no longer available. Reconnect the app to an available wallet.` | The origin is not connected  |
| `-32602` | Parameter validation details                                            | A parameter fails validation |
| `4001`   | `User rejected request`                                                 | The user closes the window   |
