# NFT

## Create

Create a master edition NFT.

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v1/nft/create\_detach&#x20;

Creating an NFT is just 1 simple API call, which internally does all the heavy lifting for you.

* Uploads the image or anything you want to your choice of storage (IPFS or S3).
* Creates an appropriate Metadata json file.
* Uploads the metadata json file again to your choice of storage (IPFS or S3).
* Finally mints your favorite NFT.

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **wallet:** Your wallet address who will be signing and paying the transaction fee
* **name**: NFT Name
* **symbol:** NFT Symbol
* **description**: (optional) NFT description
* **attributes:** (optional) attributes associated to this NFT. (You can create the attributes as an array of objects and then stringify it using `JSON.stringify`)
* **external\_url:** (optional) any url to associate with the NFT
* **max\_supply:** (optional) Maximum number of clones/edition mints possible for this NFT. Default 0 for one-of-a-kind NFT.&#x20;
* **royalty:** (optional) represents how much percentage of secondary sales the original creator gets. Ranges from (0-100), 0 being the original creator gets nothing and 100 being the original creator gets the entire amount from the secondary sales
* **file**: NFT Image
* **data:** (Optional) Any digital data (.mp3/.wav/.mp4/.pdf/.json etc) that you want to put in the NFT
* **receiver:** (optional) Account address which will receive the newly created NFT.
* service\_charge : (optional) - Transaction fee to be paid by the NFT creator for creating an NFT. This fee can be charged in SOL or any SPL-20  token. Below is the structure of the `service_charge` key.
  * receiver: string  - An address that will receive the service charge amount.
  * amount: number - The amount of currency to be charged.
  * token (optional): string - The address of the SPL token, the service charge currency. By default SOL is charged.

Charging Service charge in USDC:

{% code overflow="wrap" %}

```json
{
    "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe", 
    "token": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", 
    "amount": 0.01
}
```

{% endcode %}

Charging Service charge in SOL:

```json
{
    "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe",
    "amount": 0.01
}
```

**Response**

You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet used in the API.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "QEbMrBRQEP92ToRo");
myHeaders.append("Content-Type", "multipart/form-data");

var formdata = new FormData();
formdata.append("network", "devnet");
formdata.append("wallet", "2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc");
formdata.append("name", "SHYFT NFT");
formdata.append("symbol", "SH");
formdata.append("description", "Shyft makes Web3 so easy!");
formdata.append("attributes", '[{"trait_type":"dev power","value":"over 900"}]');
formdata.append("external_url", "https://shyft.to");
formdata.append("max_supply", "0");
formdata.append("royalty", "5");
formdata.append("file", fileInput.files[0], "index.png");
formdata.append("nft_receiver", "5KW2twHzRsAaiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2");
formdata.append('service_charge', '{ "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe",  "token": "DjMA5cCK95X333t7SgkpsG5vC9wMk7u9JV4w8qipvFE8",  "amount": 0.01}');

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/create_detach", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```javascript
{
  "success": true,
  "message": "NFT create request generated successfully",
  "result": {
    "encoded_transaction": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1sWheB4cuv/Q2+0jo6buiunKcPGhvFP0MkPZKAqEaKsIdRPXcFkiLuiIa/pyUVrKUczLjr1Hs9QG5Y5iDBksMAgAFChjKn1HFRx7tvpclOYMfcFNqxsZNjaEl7aHTEnXr/g8Vvb/IjgDJjQVC1f/ryBRhD4ahT7Q1HBYM6DpJ0WUTWn4RAfrhLTPnJMqAy/QLpEQpZFP+r95vFI1kPxccS3tj+xQxDOha6hFwbvC1+bl1KPipyhIpii09w/bWfkdcNqLoa6h4uighckbsoxU8cDYR7skYHVwb90kZsVS8bPEVzOEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUYGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpOUrCSjEODK7K+JCY0PfeMucSKkHyBEhkHVSHEcaSI5MGBQIAATQAAAAAYE0WAAAAAABSAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpCQIBCEMAABjKn1HFRx7tvpclOYMfcFNqxsZNjaEl7aHTEnXr/g8VARjKn1HFRx7tvpclOYMfcFNqxsZNjaEl7aHTEnXr/g8VBgcAAwABBQkIAAkDAQMACQcBAAAAAAAAAAcHAgEAAAAFCJ0BEAkAAABmaXNoIGV5ZXMDAAAARllFWAAAAGh0dHBzOi8vbmZ0c3RvcmFnZS5saW5rL2lwZnMvYmFma3JlaWVmamF6cnhpcGpwYmFwNjZkejQ3ZW80ZWdkdzdscHUzY2tvZW43NXZhdGhvaTRtaWszM2n0AQEBAAAAGMqfUcVHHu2+lyU5gx9wU2rGxk2NoSXtodMSdev+DxUBZAAAAQcJBAEAAAACCQUIChEBAQAAAAAAAAA=",
    "mint": "Dmhfos1S2sipnz3UPaAjHQefYzFn8pbEqpdissS2fZbj"
  }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

Ta-da :tada:, a transaction has been created for you to sign and send to the blockchain after which your NFT will be created. The metadata is stored in an immutable form in decentralized storage (IPFS).

## Create V2

This API call allows an external wallet to pay the gas fee for creating NFT on behalf of the NFT creator. Moreover, this API is capable of performing everything that the [V1 Create NFT API](#create) does.

This API is an improved version of the original Create NFT API. This API request allows an external wallet to pay the gas fee for creating NFT on behalf of the NFT creator.&#x20;

*NOTE: If your product is creating an end-user-facing platform for creating NFTs, then this API will be your best friend for onboarding users initially where, you can pay the gas fees for the NFTs that your users will create.*

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v2/nft/create

Creating an NFT, and is just 1 simple API call, which internally does all the heavy lifting for you.

* Uploads the image or anything you want to your choice of storage (IPFS or S3).
* Creates an appropriate Metadata json file.
* Uploads the metadata json file again to your choice of storage (IPFS or S3).
* If mentioned also pays the gas fee for the transaction from the mentioned account.
* Finally mints your favorite NFT.

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **creator\_wallet:** Your NFT creator's wallet address. By default, this address pays the transaction gas fee.
* **name**: NFT Name
* **symbol:** NFT Symbol
* **description**: (optional) NFT description
* **collection\_address:** (optional) on-chain address of the collection represented by an NFT, with max\_supply of *0.*
* **attributes:** (optional) attributes associated to this NFT. (You can create the attributes as an array of objects and then stringify it using `JSON.stringify`)
* **external\_url:** (optional) any url to associate with the NFT
* **max\_supply:** (optional) Maximum number of clones/edition mints possible for this NFT. Default 0 for one-of-a-kind NFT.&#x20;
* **royalty:** (optional) represents how much percentage of secondary sales the original creator gets. Ranges from (0-100), 0 being the original creator gets nothing and 100 being the original creator gets the entire amount from the secondary sales
* **image**: NFT Image
* **data:** (Optional) Any digital data (.mp3/.wav/.mp4/.pdf/.json etc) that you want to put in the NFT
* **receiver:** (optional) Account address which will receive the newly created NFT.
* **fee\_payer:** (optonal) If mentioned this is the account that will be used for paying the transaction gas fee.
* **`service_charge`**` ``: (optional)` - Transaction fee to be paid by the NFT creator for creating an NFT. This fee can be charged in SOL or any SPL-20  token. Below is the structure of the `service_charge` key.
  * `receiver: string`  - An address that will receive the service charge amount.
  * `amount: number` - The amount of currency to be charged.
  * `token(optional): string` - The address of the SPL token, the service charge currency. By default SOL is charged.
* **priority\_fee:** (optional) [Prioritization fee](https://docs.solana.com/terminology#prioritization-fee) of transaction in micro Lamports. A micro Lamport is 0.000001 Lamports.

Charging Service charge in USDC:

{% code overflow="wrap" %}

```json
{
    "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe", 
    "token": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", 
    "amount": 0.01
}
```

{% endcode %}

Charging Service charge in SOL:

```json
{
    "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe",
    "amount": 0.01
}
```

**Response**

You will get an encoded transaction in response which you can sign in your front end or back end. 2 wallet address are needed to sign this txn:

1. **`creator_wallet`**
2. **`fee_payer`**, only if specified in the API request.
3. **collection\_address's** collection\_authority address, which is the update Authority of the collection NFT. Needed when, the txn was created with collection\_address.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");

var formdata = new FormData();
formdata.append("network", "devnet");
formdata.append("creator_wallet", "8hDQqsj9o2LwMk2FPBs7Rz5jPuzqKpRvkeeo6hMJm5Cv");
formdata.append("name", "papaya");
formdata.append("symbol", "P2");
formdata.append("description", "papita");
formdata.append("attributes", '[{"trait_type":"dev power","value":"over 900"}]');
formdata.append("external_url", "https://shyft.to");
formdata.append("max_supply", "1");
formdata.append("royalty", "5");
formdata.append("image", fileInput.files[0], "papaya.jpeg");
formdata.append("fee_payer", "AaYFExyZuMHbJHzjimKyQBAH1yfA9sKTxSzBc6Nr5X4s");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v2/nft/create", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```javascript
{
    "success": true,
    "message": "NFT mint request generated successfully",
    "result": {
        "encoded_transaction": "AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkCGu56mKRQDG9Eky0GM6F9Cc24web7Ea/enVcFWY/2HZ6X7Zll2OwM5kZ5idc0ImE2DLTzwUL8zLps9QjmcoEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBBQuOUK2wQtYmX3uHnIO2htEANdTK9dP12UzWjFk+hpR4qFvf5djXQ7PO0v8M90d6Ik/Gr3kgXQrdotE+TQ1W/du9ck8S+EYjHt/F9Zo9HltC6VD1zt3Q20YZDy7Ooqc7PzMeuKfpr/sTRI66OZ/p1vtAfP2DqiX+6UyP/FVqLm3TTC/QbP3HfwmW5zm7XBYK2aqmr8bkzw34nHBWSGgeLP4ivtfVNHaPllchvLoHsbS67oUNmPKDIhV0AQuRz5wuh5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUYGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpossczD9Vq2R4jgUk4Byk328rHdyaJzK/sSNWRFupQuQGBgIAATQAAAAAYE0WAAAAAABSAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpCgIBCUMAAHJPEvhGIx7fxfWaPR5bQulQ9c7d0NtGGQ8uzqKnOz8zAXJPEvhGIx7fxfWaPR5bQulQ9c7d0NtGGQ8uzqKnOz8zBwcABQIBBgoJAAoDAQUCCQcBAAAAAAAAAAgHBAECAAIGCZkBEAYAAABwYXBheWECAAAAUDJYAAAAaHR0cHM6Ly9uZnRzdG9yYWdlLmxpbmsvaXBmcy9iYWZrcmVpZzdiY2w2NzdyaTVwYmR5aXB5YXE0emZmeHYzNjd2dTZzZDMybzVzNnBkaG5lbDVod2k3cfQBAQEAAAByTxL4RiMe38X1mj0eW0LpUPXO3dDbRhkPLs6ipzs/MwFkAAABCAkDAQICAAQKBgkKEQEBAAAAAAAAAA==",
        "mint": "7Be7nBt5baU2hrQPvtHuGY3WnHbAFK5yXQmQ4iyqC9mn"
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

Ta-da :tada:, a transaction has been created for you to sign and send to the blockchain after which your user would have created an NFT without having any ***SOL*** in his/her account.

## Create NFT from Metadata

This API allows you to create an NFT from an already uploaded metadata URI. The metadata\_uri should open a JSON document complying with Metaplex Non-Fungible Token Standard. If the JSON doesn't follow the Metaplex standard then the API returns an error. \
The on-chain metadata of the NFT is fetched from the off-chain metadata present at the given URI.

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v1/nft/create\_from\_metadata

**Body Params**

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **metadata\_uri:** URI that contains metadata of the NFT ([metaplex non-fungible-standard](https://docs.metaplex.com/programs/token-metadata/token-standard#the-non-fungible-standard)) in JSON file format.
* **max\_supply:** (optional) Maximum number of clones/edition mints possible for this NFT. Default 0 for one-of-a-kind NFT.&#x20;
* **collection\_address:** (optional) on-chain address of the collection represented by an NFT, with max\_supply of *0.*
* **receiver:** (optional) Account address which will receive the newly created NFT.
* **fee\_payer:** (optional) If mentioned this is the account that will be used for paying the transaction gas fee.
* **`service_charge`**` ``: (optional)` - Transaction fee to be paid by the NFT creator for creating an NFT. This fee can be charged in SOL or any SPL-20  token. Below is the structure of the `service_charge` key.
  * `receiver: string`  - An address that will receive the service charge amount.
  * `amount: number` - The amount of currency to be charged.
  * `token(optional): string` - The address of the SPL token, the service charge currency. By default, SOL is charged.
* **priority\_fee**: (optional) [Prioritization fee](https://docs.solana.com/terminology#prioritization-fee) of transaction in micro Lamports. A micro Lamport is 0.000001 Lamports.

{% hint style="info" %}
This API followed some rules and has some limitations:

**Rules:**

* Inside metadata JSON the properties key should have a creators array. The 0th index of the creator address is the verified creator and if the array holds more than one creator inside it then others also are added in the on-chain metadata creators array with <mark style="color:orange;">`{ verified: false }`</mark>`.`
* 0th index creator is  also considered the `update_authority` of the NFT.

**Limitation:**

Solana transaction size is limited to `1232 bytes`. This might result into `Transaction too large error` if <mark style="color:orange;">`creators`</mark> are present in the JSON and  <mark style="color:orange;">`collection_address`</mark> is mentioned in the API request. Below are some limitations of the API:

* If the API request has `service_charge`, `collection_address` then metadata at the URI should have at max 2 creators.
* If the API request has `service_charge`, and no `collection_address`, then metadata at URI can have up to 8 creators.
* If the API request has collection\_address and no service\_charge then the metadata URI can have up to 5 creators.
  {% endhint %}

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<YOUR-API-KEY>");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "metadata_uri": "https://brown-loyal-stoat-734.mypinata.cloud/ipfs/QmR5Tyx3MvpiCKtjTVC4wVzRigpujCv9bnvQKU4ZMQzN5N",
  "max_supply": 0,
  "collection_address": "3F3G122hfRQ6E7aRQLhdXvabxtfhGHF89UVLvHR4pmn9",
  "receiver": "3yTKSCKoDcjBFpbgxyJUh4cM1NG77gFXBimkVBx2hKrf",
  "fee_payer": "2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc",
  "service_charge": {
    "receiver": "BFefyp7jNF5Xq2A4JDLLFFGpxLq5oPEFKBAQ46KJHW2R",
    "amount": 0.01
  },
  "priority_fee": 100
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/create_from_metadata", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title=" Response" %}

```json
{
  "success": true,
  "message": "NFT mint request generated successfully",
  "result": {
    "encoded_transaction": "AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPkLnWAv9jws5OV+U9gJ9WC7WeAKl6nwQm3TmCOLYxqioAZvu3QPrU/guaYfGPU4US4he6vdchMajnbANMTMQNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBCREYyp9RxUce7b6XJTmDH3BTasbGTY2hJe2h0xJ16/4PFVL51Wl/YhNTG1pCb61VCwsPojcgjyUiyYzBI2WbsI76SJTsW8L++7raxW9rPTa1n9vPqakdUE2FeR5JomR9cyRJjMfzknnb0w7JdD0XUQu/2AseXMKzyB5t3NWeM6T3g1p27bkXfL7lX5ecGVAAOkod70wyNO1LcPoIjFdtBbRpmFWYteRvJYw2HIfGgUAbGCrz00zOc1fx/ASNo7oRmvbfVXf34w8GBf/sRRtdZlOw28wKXuT8QG8Cd+kfoZS8TQhAOYIdVS4bneWidv9vRF4zCm2g3CBPAIMPhbSjO2U0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXEqD5MjT+T9MpbV+mLU9zNWzBj1cFV5xITEO8DG17yiFQDxuwz0SV7as5D6zAABu5HOgMlwdDYC/1B+9+a39yLC2oJheXOGuryYTK++GE1M58Z4jLPfs+EGJTCdcdm/iMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAAC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUYGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpIZMO6rX12hfTR6EuyO2YiYOMS5It08WNCv3B5EuZwhQJDQAJA2QAAAAAAAAACAIAATQAAAAAYE0WAAAAAABSAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpEAIBD0MAAEiU7FvC/vu62sVvaz02tZ/bz6mpHVBNhXkeSaJkfXMkAUiU7FvC/vu62sVvaz02tZ/bz6mpHVBNhXkeSaJkfXMkDAcABgsBCBAPABADAQYCCQcBAAAAAAAAAA4GBAECAAIIzQEhBgAAAEdNQiAjMgMAAABHTUJgAAAAaHR0cHM6Ly9icm93bi1sb3lhbC1zdG9hdC03MzQubXlwaW5hdGEuY2xvdWQvaXBmcy9RbVI1VHl4M012cGlDS3RqVFZDNHdWelJpZ3B1akN2OWJudlFLVTRaTVF6TjVOWAIBAQAAAEiU7FvC/vu62sVvaz02tZ/bz6mpHVBNhXkeSaJkfXMkAWQBACFQDxuwz0SV7as5D6zAABu5HOgMlwdDYC/1B+9+a39yAAEBAAAAAAAAAAAADggHAQICAAQQCAoRAQAAAAAAAAAADgYEAgAKAwkBHggCAAUMAgAAAICWmAAAAAAA",
    "transaction_version": "legacy",
    "mint": "6auPMLPkKk7Agnook4qrqij4mhndVx6uJrpeSYPNLMkd"
  }
}
```

{% endtab %}
{% endtabs %}

## Read All

Returns on chain and off chain data of all NFTs in the wallet.&#x20;

> First call might be slightly slow, we cache automatically so that subsequent calls are lightning-fast. &#x20;

#### Query Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **address:**  Your wallet address
* **update\_authority:** (optional) Public key of update authority. Filters only those nfts in your wallet which have this update\_authority.
* **refresh**:(optional) Include this if the cached NFTs for this wallet need to be refreshed.

### <mark style="color:green;">**GET**</mark> /sol/v1/nft/read\_all

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<YOUR_API_KEY>");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/read_all?network=devnet&address=BvzKvn6nUUAYtKu2pH3h5SbUkUNcRPQawg4bURBiojJx", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}

```javascript
{
    "success": true,
    "message": "All NFTS in your wallet",
    "result": [
        {
            "name": "Capsule X #806",
            "symbol": "YAKU",
            "royalty": 7.77,
            "image_uri": "https://arweave.net/7pH_t4Zt8fwRgLWOFCoR-oWgHUHgk5mS04k5LEa4mmU",
            "cached_image_uri": "https://arweave.net/7pH_t4Zt8fwRgLWOFCoR-oWgHUHgk5mS04k5LEa4mmU",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://arweave.net/s382PeAyYLWRptjVzL92yKyNgByrkIzDsuHXa44WCZM",
            "description": "Capsule X is a customizable apartment in the Yakuverse - The Cyberpunk Metaverse across the whole Solana ecosystem",
            "mint": "91EouVExFyVBiNNvF3FJrAJJHV9FcgtzAotaYKgbQXtA",
            "owner": "9CWu3QcsvnK94RE2mtkzCy1EZp5YBmBhGETVG8GgiLMX",
            "update_authority": "EwX9zBK4NqZTWR55gMN16geJiAdEsBFrokdybX8dLCHP",
            "creators": [
                {
                    "address": "2ekR5opinwLHa6GMr3LjJt44z4RA8Rx1hqviL6npFz5s",
                    "verified": true,
                    "share": 0
                },
                {
                    "address": "6CzTQjSPcW9x4axzZLFtTq5BwsRvw4ksUWqaAkrEsRb9",
                    "verified": false,
                    "share": 95
                },
                {
                    "address": "HMduKVo3A19U5EpQdEhPjo9hq9zfZXn8aGVYZp7Vc7fX",
                    "verified": false,
                    "share": 5
                }
            ],
            "collection": {
                "name": "Capsule X",
                "family": "Yaku Corp."
            },
            "attributes": {
                "Unit Type": "Space Suite",
                "Unit Number": "806",
                "Unit Location": "Yaku Tower"
            },
            "attributes_array": [
                {
                    "trait_type": "Unit Type",
                    "value": "Space Suite"
                },
                {
                    "trait_type": "Unit Number",
                    "value": "806"
                },
                {
                    "trait_type": "Unit Location",
                    "value": "Yaku Tower"
                }
            ],
            "files": [
                {
                    "type": "image/gif",
                    "uri": "https://arweave.net/7pH_t4Zt8fwRgLWOFCoR-oWgHUHgk5mS04k5LEa4mmU"
                }
            ],
            "external_url": "https://www.yakushima.io",
            "primary_sale_happened": true,
            "is_mutable": true,
            "is_loaded_metadata": true
        },
        {
            "name": "Grim #4847",
            "symbol": "GRIM",
            "royalty": 5,
            "image_uri": "https://www.arweave.net/oeJsRfu8SJn_CmGNtYGRZb9xlPpOp1UzwJDnxoHbJuw?ext=png",
            "cached_image_uri": "https://www.arweave.net/oeJsRfu8SJn_CmGNtYGRZb9xlPpOp1UzwJDnxoHbJuw?ext=png",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://arweave.net/kKTYS5_j2lM0mLrG9iwyQ1fnMNYR0tlbVEA6DXT8s-E",
            "description": "The Grim Syndicate is a collection of 10,000 generated Grims that do the dirty work of playing afterlife janitors across all planes of existence; in fetching those stubborn Souls who vacate their living vessels but aren’t ready to move on to the Ethereal Realm. What you call a haunting, these Reaper Agents call “all in a day’s work”.",
            "mint": "7kgMVLoTkNNkgirSJQ4CJpAicQCSvSEvdkLR5RTnVBPt",
            "owner": "9CWu3QcsvnK94RE2mtkzCy1EZp5YBmBhGETVG8GgiLMX",
            "update_authority": "Es1YghGkHZNJ8A9r6oFEHbWsRHbqs4rz6gfkRJ9V4bYf",
            "creators": [
                {
                    "address": "DnP3GRVqtR9vjxMZH4PcFuGZ4ZqhbNqoGzJuTrHACK6f",
                    "verified": true,
                    "share": 0
                },
                {
                    "address": "Es1YghGkHZNJ8A9r6oFEHbWsRHbqs4rz6gfkRJ9V4bYf",
                    "verified": false,
                    "share": 20
                },
                {
                    "address": "RTp26f9wY2fXxeWRE7FkS9iVrsuxgdUJfDYH8GgoBH9",
                    "verified": false,
                    "share": 28
                },
                {
                    "address": "AHM1d6gsDvjwdxf3ox9WXpWXgzeESKT2Ho7gNBqAAjF9",
                    "verified": false,
                    "share": 26
                },
                {
                    "address": "C1MYi7ALTM4tigu8azYgCHVER4gCoV6ZH73i4Cws5B8B",
                    "verified": false,
                    "share": 26
                }
            ],
            "collection": {
                "name": "Grim Syndicate",
                "family": "Grim Syndicate"
            },
            "attributes": {
                "Background": "Yellow",
                "Arsenal Back": "None",
                "Base": "Green - Lockjaw",
                "Outfit": "Royal",
                "Outerwear": "None",
                "Decoration": "None",
                "Nose": "Default",
                "Arsenal Front": "None",
                "Eyes": "Feminine",
                "Headwear": "Witch",
                "ID": 4847,
                "Rank": 8671
            },
            "attributes_array": [
                {
                    "trait_type": "Background",
                    "value": "Yellow"
                },
                {
                    "trait_type": "Arsenal Back",
                    "value": "None"
                },
                {
                    "trait_type": "Base",
                    "value": "Green - Lockjaw"
                },
                {
                    "trait_type": "Outfit",
                    "value": "Royal"
                },
                {
                    "trait_type": "Outerwear",
                    "value": "None"
                },
                {
                    "trait_type": "Decoration",
                    "value": "None"
                },
                {
                    "trait_type": "Nose",
                    "value": "Default"
                },
                {
                    "trait_type": "Arsenal Front",
                    "value": "None"
                },
                {
                    "trait_type": "Eyes",
                    "value": "Feminine"
                },
                {
                    "trait_type": "Headwear",
                    "value": "Witch"
                },
                {
                    "trait_type": "ID",
                    "value": 4847
                },
                {
                    "trait_type": "Rank",
                    "value": 8671
                }
            ],
            "files": [
                {
                    "uri": "https://www.arweave.net/oeJsRfu8SJn_CmGNtYGRZb9xlPpOp1UzwJDnxoHbJuw?ext=png",
                    "type": "image/png"
                }
            ],
            "external_url": "https://grimsyndicate.com",
            "primary_sale_happened": true,
            "is_mutable": true,
            "is_loaded_metadata": true
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Read Wallet Nfts

Paginated version of `Read All` API, returns the list of NFTs in a wallet. A maximum of 50 NFTs are returned in a single API request.

#### Query Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **address:**  Your wallet address
* **update\_authority:** (optional) Public key of update authority. Filters only those NFTs in your wallet that have this update\_authority.
* **refresh**:(optional) Include this if the cached NFTs for this wallet need to be refreshed.
* **page**:(optional) Default value is 1.
* **size**:(optional) Default value is 50.&#x20;

### <mark style="color:green;">**GET**</mark> /sol/v2/nft/read\_all

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<YOUR_API_KEY>");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v2/nft/read_all?network=mainnet-beta&address=Bme4LRYLq199vosFJcP2YrHSduMj27tmqdTNadYDma9A&page=1&size=32&update_authority=vfF76HkUH4pF6Uoc1WZ8BcViiQVkazcQuC6fkeLMWvi", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```json
{
  "success": true,
  "message": "NFTS in your wallet",
  "result": {
    "nfts": [
      {
        "name": "SGB #2201",
        "symbol": "SGB",
        "royalty": 15,
        "image_uri": "https://www.arweave.net/kV2nTBY33RzHcUuRsPTjxJNXqeRQXNhjTjBIbevg0kg?ext=png",
        "cached_image_uri": "https://www.arweave.net/kV2nTBY33RzHcUuRsPTjxJNXqeRQXNhjTjBIbevg0kg?ext=png",
        "animation_url": "",
        "cached_animation_url": "",
        "metadata_uri": "https://www.arweave.net/a_sb45M0Xlsk59NpEUG_ylvMPVS3qC9RAi6AnQ109S4",
        "description": "Solana Gecko Business is a collection of 3,333 generative geckos inspired by SMB and GGSG",
        "mint": "2AXb8AgTXfXSG16TDKsbtVw9KdRpsCfWYjxYpdWeC9qh",
        "owner": "Bme4LRYLq199vosFJcP2YrHSduMj27tmqdTNadYDma9A",
        "update_authority": "vfF76HkUH4pF6Uoc1WZ8BcViiQVkazcQuC6fkeLMWvi",
        "creators": [
          {
            "address": "24cM9YoYxsmAtsJmngAvk7sNJwT7T59M1ofkv2jjbiWC",
            "share": 0,
            "verified": true
          },
          {
            "address": "B8iADgKKvgLM3UAwsc3TRuZbXgPiVaKw8KbqYzDvbwnP",
            "share": 100,
            "verified": false
          }
        ],
        "collection": {
          "name": "Solana Gecko Business",
          "family": "Solana Gecko Business"
        },
        "attributes": {
          "Background": "Light Purple Background",
          "Skin": "Grey Skin",
          "Clothes": "Purple Shirt",
          "Earring": "Empty Earring",
          "Mouth": "Empty Mouth",
          "Eyes": "Empty Eyes",
          "Hat": "Purple Backwards Cap"
        },
        "attributes_array": [
          {
            "trait_type": "Background",
            "value": "Light Purple Background"
          },
          {
            "trait_type": "Skin",
            "value": "Grey Skin"
          },
          {
            "trait_type": "Clothes",
            "value": "Purple Shirt"
          },
          {
            "trait_type": "Earring",
            "value": "Empty Earring"
          },
          {
            "trait_type": "Mouth",
            "value": "Empty Mouth"
          },
          {
            "trait_type": "Eyes",
            "value": "Empty Eyes"
          },
          {
            "trait_type": "Hat",
            "value": "Purple Backwards Cap"
          }
        ],
        "files": [
          {
            "uri": "https://www.arweave.net/kV2nTBY33RzHcUuRsPTjxJNXqeRQXNhjTjBIbevg0kg?ext=png",
            "type": "image/png"
          }
        ],
        "external_url": "https://solanagecko.business",
        "is_loaded_metadata": true,
        "primary_sale_happened": true,
        "is_mutable": true
      }
    ],
    "total_count": 288,
    "page": 3,
    "size": 1,
    "total_pages": 288
  }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Read

Returns on-chain and off-chain NFT data. We also cache NFT images in our CDN for super fast reads and an amazing UX, which web3 sorely needs.

> First call might be slightly slow, we cache automatically so that subsequent calls are lightning-fast.&#x20;

#### Query Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **token\_address:**  address of the NFT that you want to read
* **token\_record**: (optional) Set it `true` if need to get additional `token_record` info along with requested NFTs.

### <mark style="color:green;">**GET**</mark> /sol/v1/nft/read

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<YOUR_API_KEY>");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/read?network=mainnet-beta&token_address=Dx2XXfTUoTRsqRrBmB4dESraEeQy8Uby2XsLCtHW7GNS&refresh=true&token_record=true", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}

```javascript
{
    "success": true,
    "message": "NFT metadata",
    "result": {
        "name": "The Primes #1043",
        "symbol": "PRIME",
        "royalty": 6.66,
        "image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
        "cached_image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
        "animation_url": "",
        "cached_animation_url": "",
        "metadata_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.json",
        "description": "The Primes is a tech-centric PFP collection that is set on a mission to shift the industry and deliver unparalleled solutions.",
        "mint": "Dx2XXfTUoTRsqRrBmB4dESraEeQy8Uby2XsLCtHW7GNS",
        "owner": "TMPqxbWp277kTJCz93j5mruM8hbcWBbC61aCjp3ZqJc",
        "update_authority": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
        "creators": [
            {
                "address": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
                "share": 0,
                "verified": true
            },
            {
                "address": "9RYGTabhbcVfiXMMP89mJSJ1xfLpnRPYxkq1KSJVnhV6",
                "share": 100,
                "verified": false
            }
        ],
        "collection": {
            "address": "VERzBTggK292kQUbG6LJTe7An2j4XNW9M3xUMXLTTaR",
            "verified": true,
            "name": "The Primes",
            "family": "The Primes"
        },
        "attributes": {
            "Background": "Pink",
            "Skin": "Orange Spotted",
            "Outfit": "None",
            "Headwear": "Slime Beanie",
            "Eyes": "Squeezed",
            "Mouth": "Smirk",
            "Eyewear": "None"
        },
        "attributes_array": [
            {
                "trait_type": "Background",
                "value": "Pink"
            },
            {
                "trait_type": "Skin",
                "value": "Orange Spotted"
            },
            {
                "trait_type": "Outfit",
                "value": "None"
            },
            {
                "trait_type": "Headwear",
                "value": "Slime Beanie"
            },
            {
                "trait_type": "Eyes",
                "value": "Squeezed"
            },
            {
                "trait_type": "Mouth",
                "value": "Smirk"
            },
            {
                "trait_type": "Eyewear",
                "value": "None"
            }
        ],
        "files": [
            {
                "uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
                "type": "image/png"
            }
        ],
        "external_url": "https://theprimes.io",
        "is_loaded_metadata": true,
        "primary_sale_happened": false,
        "is_mutable": true,
        "token_standard": "ProgrammableNonFungible",
        "is_compressed": false,
        "merkle_tree": "",
        "token_record": {
            "address": "4cRGAeds7KeAmUhmCPcPAD4j41xgAUkJxfPjJUh8WqE6",
            "key": "TokenRecord",
            "state": "Locked",
            "rule_set_revision": 8,
            "delegate": "GARDEpB1qymjBnvGQBnv9rRAeM7QiWjgce6Atgh6Zjbp",
            "token_delegate_role": "LockedTransfer",
            "locked_transfer": "AbNbo6K9dpvsxEm8HkuXQb6UP6yDiLDxnU3MMnG8GESZ"
        }
    }
}
```

{% endtab %}

{% tab title="Response without token\_record" %}

```json
{
    "success": true,
    "message": "NFT metadata",
    "result": {
        "name": "The Primes #1043",
        "symbol": "PRIME",
        "royalty": 6.66,
        "image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
        "cached_image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
        "animation_url": "",
        "cached_animation_url": "",
        "metadata_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.json",
        "description": "The Primes is a tech-centric PFP collection that is set on a mission to shift the industry and deliver unparalleled solutions.",
        "mint": "Dx2XXfTUoTRsqRrBmB4dESraEeQy8Uby2XsLCtHW7GNS",
        "owner": "TMPqxbWp277kTJCz93j5mruM8hbcWBbC61aCjp3ZqJc",
        "update_authority": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
        "creators": [
            {
                "address": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
                "share": 0,
                "verified": true
            },
            {
                "address": "9RYGTabhbcVfiXMMP89mJSJ1xfLpnRPYxkq1KSJVnhV6",
                "share": 100,
                "verified": false
            }
        ],
        "collection": {
            "address": "VERzBTggK292kQUbG6LJTe7An2j4XNW9M3xUMXLTTaR",
            "verified": true,
            "name": "The Primes",
            "family": "The Primes"
        },
        "attributes": {
            "Background": "Pink",
            "Skin": "Orange Spotted",
            "Outfit": "None",
            "Headwear": "Slime Beanie",
            "Eyes": "Squeezed",
            "Mouth": "Smirk",
            "Eyewear": "None"
        },
        "attributes_array": [
            {
                "trait_type": "Background",
                "value": "Pink"
            },
            {
                "trait_type": "Skin",
                "value": "Orange Spotted"
            },
            {
                "trait_type": "Outfit",
                "value": "None"
            },
            {
                "trait_type": "Headwear",
                "value": "Slime Beanie"
            },
            {
                "trait_type": "Eyes",
                "value": "Squeezed"
            },
            {
                "trait_type": "Mouth",
                "value": "Smirk"
            },
            {
                "trait_type": "Eyewear",
                "value": "None"
            }
        ],
        "files": [
            {
                "uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
                "type": "image/png"
            }
        ],
        "external_url": "https://theprimes.io",
        "is_loaded_metadata": true,
        "primary_sale_happened": false,
        "is_mutable": true,
        "token_standard": "ProgrammableNonFungible",
        "is_compressed": false,
        "merkle_tree": ""
    }
}
```

{% endtab %}
{% endtabs %}

## Read Selected NFTs

Returns on-chain and off-chain data of selected NFTs.

> First call might be slightly slow, we cache automatically so that subsequent calls are lightning-fast.

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **token\_addresses:**  (array of strings) Selected token addresses (minimum 1 and maximum 10 NFTs could be fetched)
* **refresh**:(optional) Include this if the cached NFTs need to be refreshed.
* **token\_record**: (optional) Set it `true` if need to get additional `token_record` info along with requested NFTs.

### <mark style="color:green;">**POST**</mark> /sol/v1/nft/read\_selected

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("x-api-key", "<YOUR_API_KEY>");

var raw = JSON.stringify({
  "network": "mainnet-beta",
  "token_addresses": [
    "3nd5gaYmu1oVdqthPrv8SWzvBaHgWPjn2npAGwPjhuQz",
    "FW5peLvKtJhCykHqfA2E1GDGVCLsJrJYKkWPKXa8SZuL",
    "Dx2XXfTUoTRsqRrBmB4dESraEeQy8Uby2XsLCtHW7GNS"
  ],
  "refresh": false,
  "token_record": true
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/read_selected", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title="Response" %}

```json
{
    "success": true,
    "message": "Selected NFTs fetched successfully",
    "result": [
        {
            "name": "Claynosaurz #9990",
            "symbol": "DINO",
            "royalty": 5,
            "image_uri": "https://nftstorage.link/ipfs/bafybeihyixnj7c7aumkyb35t5u6y3bzh6bw5u3tw3hphv2erutu7ermidm/9989.gif",
            "cached_image_uri": "https://nftstorage.link/ipfs/bafybeihyixnj7c7aumkyb35t5u6y3bzh6bw5u3tw3hphv2erutu7ermidm/9989.gif",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://nftstorage.link/ipfs/bafkreichyorj6ae5ud3ke5os7xgznzckoc3464jqcuwlfed6qkc2s6my2u",
            "description": "Claynosaurz is a collection of 10,000 3D animated NFTs. Helmed by a team of leading animation and game industry artists, Claynosaurz aims to rewrite the narrative on how successful IP can be built out of web3. With massive potential for scaling, the Genesis collection is an all access pass to our Universe.",
            "mint": "3nd5gaYmu1oVdqthPrv8SWzvBaHgWPjn2npAGwPjhuQz",
            "owner": "Ca5XSkJAEmJVaNFKNDZB5oLr7m2G6REEiWQ2FiMQjjXb",
            "update_authority": "B7B2g3WbdZMDV3YcDGRGhEt5KyWqDJZFwRR8zpWVEkUF",
            "creators": [
                {
                    "address": "AoebZtN5iKpVyUBc82aouWhugVknLzjUmEEUezxviYNo",
                    "share": 0,
                    "verified": true
                },
                {
                    "address": "36tfiBtaDGjAMKd6smPacHQhe4MXycLL6f9ww9CD1naT",
                    "share": 100,
                    "verified": false
                }
            ],
            "collection": {
                "address": "6mszaj17KSfVqADrQj3o4W3zoLMTykgmV37W4QadCczK",
                "verified": true
            },
            "attributes": {
                "Species": "Raptor",
                "Skin": "Amazonia",
                "Color": "Volcanic",
                "Motion": "Run",
                "Mood": "Smug",
                "Background": "Sky",
                "Layer Count": "1",
                "Back": "Off",
                "Belly": "On",
                "Pattern": "Off",
                "Details": "Off"
            },
            "attributes_array": [
                {
                    "trait_type": "Species",
                    "value": "Raptor"
                },
                {
                    "trait_type": "Skin",
                    "value": "Amazonia"
                },
                {
                    "trait_type": "Color",
                    "value": "Volcanic"
                },
                {
                    "trait_type": "Motion",
                    "value": "Run"
                },
                {
                    "trait_type": "Mood",
                    "value": "Smug"
                },
                {
                    "trait_type": "Background",
                    "value": "Sky"
                },
                {
                    "trait_type": "Layer Count",
                    "value": "1"
                },
                {
                    "trait_type": "Back",
                    "value": "Off"
                },
                {
                    "trait_type": "Belly",
                    "value": "On"
                },
                {
                    "trait_type": "Pattern",
                    "value": "Off"
                },
                {
                    "trait_type": "Details",
                    "value": "Off"
                }
            ],
            "files": [
                {
                    "uri": "https://nftstorage.link/ipfs/bafybeihyixnj7c7aumkyb35t5u6y3bzh6bw5u3tw3hphv2erutu7ermidm/9989.gif",
                    "type": "image/gif"
                },
                {
                    "uri": "https://nftstorage.link/ipfs/bafybeigoreee4ani24acum6z5xoyttwhww5a652djimjoquhr2txstrwoe/9989.png",
                    "type": "image/png"
                }
            ],
            "external_url": "https://twitter.com/Claynosaurz",
            "is_loaded_metadata": true,
            "primary_sale_happened": true,
            "is_mutable": true,
            "token_standard": "ProgrammableNonFungible",
            "is_compressed": false,
            "merkle_tree": "",
            "token_record": {
                "address": "Hkr8q4vFvrWXDy8LL88PcPFcnMkXgb9TdA9hiWeRJixL",
                "key": "TokenRecord",
                "state": "",
                "rule_set_revision": null,
                "delegate": "",
                "token_delegate_role": "",
                "locked_transfer": ""
            }
        },
        {
            "name": "DTR#718",
            "symbol": "DTR",
            "royalty": 3.5,
            "image_uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.jpeg",
            "cached_image_uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.jpeg",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.json",
            "description": "D-Tribunal - Powered by $PRNT",
            "mint": "FW5peLvKtJhCykHqfA2E1GDGVCLsJrJYKkWPKXa8SZuL",
            "owner": "1BWutmTvYPwDtmw9abTkS4Ssr8no61spGAvW1X6NDix",
            "update_authority": "DtriN1oYsTe3f6HAcTE2uhiho4PFwFAsYzj1rQ4uBGNx",
            "creators": [
                {
                    "address": "GnfH2zPe5JcQd7Qn3HyHfHMuWiyfCqqi2UHrjCaPVcFe",
                    "share": 0,
                    "verified": true
                },
                {
                    "address": "DtriN1oYsTe3f6HAcTE2uhiho4PFwFAsYzj1rQ4uBGNx",
                    "share": 100,
                    "verified": false
                }
            ],
            "collection": {
                "address": "AvbuWbBLA5UnavbngjTVXUdj5jstBSu2uRA9EvoXpDAv",
                "verified": true,
                "name": "DTRIBUNAL",
                "family": "DTRIBUNAL"
            },
            "attributes": {
                "Background": "Pink Background ",
                "Body": "Pharoh Skin",
                "Clothes": "Shirt ",
                "Eyes": "Bad Eyes",
                "Hair": "Yellow Hair",
                "Mouth": "Vamped Teeth"
            },
            "attributes_array": [
                {
                    "trait_type": "Background",
                    "value": "Pink Background "
                },
                {
                    "trait_type": "Body",
                    "value": "Pharoh Skin"
                },
                {
                    "trait_type": "Clothes",
                    "value": "Shirt "
                },
                {
                    "trait_type": "Eyes",
                    "value": "Bad Eyes"
                },
                {
                    "trait_type": "Hair",
                    "value": "Yellow Hair"
                },
                {
                    "trait_type": "Mouth",
                    "value": "Vamped Teeth"
                }
            ],
            "files": [
                {
                    "uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.jpeg",
                    "type": "image/jpeg"
                }
            ],
            "external_url": "",
            "is_loaded_metadata": true,
            "primary_sale_happened": true,
            "is_mutable": true,
            "token_standard": "ProgrammableNonFungible",
            "is_compressed": false,
            "merkle_tree": "",
            "token_record": {
                "address": "CA8Kc4gCKKnZ6rCvhw12qek583BNZdpXzUywG6cfk9m4",
                "key": "",
                "state": "",
                "rule_set_revision": null,
                "delegate": "",
                "token_delegate_role": "",
                "locked_transfer": ""
            }
        },
        {
            "name": "The Primes #1043",
            "symbol": "PRIME",
            "royalty": 6.66,
            "image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
            "cached_image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.json",
            "description": "The Primes is a tech-centric PFP collection that is set on a mission to shift the industry and deliver unparalleled solutions.",
            "mint": "Dx2XXfTUoTRsqRrBmB4dESraEeQy8Uby2XsLCtHW7GNS",
            "owner": "TMPqxbWp277kTJCz93j5mruM8hbcWBbC61aCjp3ZqJc",
            "update_authority": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
            "creators": [
                {
                    "address": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
                    "share": 0,
                    "verified": true
                },
                {
                    "address": "9RYGTabhbcVfiXMMP89mJSJ1xfLpnRPYxkq1KSJVnhV6",
                    "share": 100,
                    "verified": false
                }
            ],
            "collection": {
                "address": "VERzBTggK292kQUbG6LJTe7An2j4XNW9M3xUMXLTTaR",
                "verified": true,
                "name": "The Primes",
                "family": "The Primes"
            },
            "attributes": {
                "Background": "Pink",
                "Skin": "Orange Spotted",
                "Outfit": "None",
                "Headwear": "Slime Beanie",
                "Eyes": "Squeezed",
                "Mouth": "Smirk",
                "Eyewear": "None"
            },
            "attributes_array": [
                {
                    "trait_type": "Background",
                    "value": "Pink"
                },
                {
                    "trait_type": "Skin",
                    "value": "Orange Spotted"
                },
                {
                    "trait_type": "Outfit",
                    "value": "None"
                },
                {
                    "trait_type": "Headwear",
                    "value": "Slime Beanie"
                },
                {
                    "trait_type": "Eyes",
                    "value": "Squeezed"
                },
                {
                    "trait_type": "Mouth",
                    "value": "Smirk"
                },
                {
                    "trait_type": "Eyewear",
                    "value": "None"
                }
            ],
            "files": [
                {
                    "uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
                    "type": "image/png"
                }
            ],
            "external_url": "https://theprimes.io",
            "is_loaded_metadata": true,
            "primary_sale_happened": false,
            "is_mutable": true,
            "token_standard": "ProgrammableNonFungible",
            "is_compressed": false,
            "merkle_tree": "",
            "token_record": {
                "address": "4cRGAeds7KeAmUhmCPcPAD4j41xgAUkJxfPjJUh8WqE6",
                "key": "TokenRecord",
                "state": "Locked",
                "rule_set_revision": 8,
                "delegate": "GARDEpB1qymjBnvGQBnv9rRAeM7QiWjgce6Atgh6Zjbp",
                "token_delegate_role": "LockedTransfer",
                "locked_transfer": "AbNbo6K9dpvsxEm8HkuXQb6UP6yDiLDxnU3MMnG8GESZ"
            }
        }
    ]
}
```

{% endtab %}

{% tab title="Response without token\_record" %}

```json
{
    "success": true,
    "message": "Selected NFTs fetched successfully",
    "result": [
        {
            "name": "Claynosaurz #9990",
            "symbol": "DINO",
            "royalty": 5,
            "image_uri": "https://nftstorage.link/ipfs/bafybeihyixnj7c7aumkyb35t5u6y3bzh6bw5u3tw3hphv2erutu7ermidm/9989.gif",
            "cached_image_uri": "https://nftstorage.link/ipfs/bafybeihyixnj7c7aumkyb35t5u6y3bzh6bw5u3tw3hphv2erutu7ermidm/9989.gif",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://nftstorage.link/ipfs/bafkreichyorj6ae5ud3ke5os7xgznzckoc3464jqcuwlfed6qkc2s6my2u",
            "description": "Claynosaurz is a collection of 10,000 3D animated NFTs. Helmed by a team of leading animation and game industry artists, Claynosaurz aims to rewrite the narrative on how successful IP can be built out of web3. With massive potential for scaling, the Genesis collection is an all access pass to our Universe.",
            "mint": "3nd5gaYmu1oVdqthPrv8SWzvBaHgWPjn2npAGwPjhuQz",
            "owner": "Ca5XSkJAEmJVaNFKNDZB5oLr7m2G6REEiWQ2FiMQjjXb",
            "update_authority": "B7B2g3WbdZMDV3YcDGRGhEt5KyWqDJZFwRR8zpWVEkUF",
            "creators": [
                {
                    "address": "AoebZtN5iKpVyUBc82aouWhugVknLzjUmEEUezxviYNo",
                    "share": 0,
                    "verified": true
                },
                {
                    "address": "36tfiBtaDGjAMKd6smPacHQhe4MXycLL6f9ww9CD1naT",
                    "share": 100,
                    "verified": false
                }
            ],
            "collection": {
                "address": "6mszaj17KSfVqADrQj3o4W3zoLMTykgmV37W4QadCczK",
                "verified": true
            },
            "attributes": {
                "Species": "Raptor",
                "Skin": "Amazonia",
                "Color": "Volcanic",
                "Motion": "Run",
                "Mood": "Smug",
                "Background": "Sky",
                "Layer Count": "1",
                "Back": "Off",
                "Belly": "On",
                "Pattern": "Off",
                "Details": "Off"
            },
            "attributes_array": [
                {
                    "trait_type": "Species",
                    "value": "Raptor"
                },
                {
                    "trait_type": "Skin",
                    "value": "Amazonia"
                },
                {
                    "trait_type": "Color",
                    "value": "Volcanic"
                },
                {
                    "trait_type": "Motion",
                    "value": "Run"
                },
                {
                    "trait_type": "Mood",
                    "value": "Smug"
                },
                {
                    "trait_type": "Background",
                    "value": "Sky"
                },
                {
                    "trait_type": "Layer Count",
                    "value": "1"
                },
                {
                    "trait_type": "Back",
                    "value": "Off"
                },
                {
                    "trait_type": "Belly",
                    "value": "On"
                },
                {
                    "trait_type": "Pattern",
                    "value": "Off"
                },
                {
                    "trait_type": "Details",
                    "value": "Off"
                }
            ],
            "files": [
                {
                    "uri": "https://nftstorage.link/ipfs/bafybeihyixnj7c7aumkyb35t5u6y3bzh6bw5u3tw3hphv2erutu7ermidm/9989.gif",
                    "type": "image/gif"
                },
                {
                    "uri": "https://nftstorage.link/ipfs/bafybeigoreee4ani24acum6z5xoyttwhww5a652djimjoquhr2txstrwoe/9989.png",
                    "type": "image/png"
                }
            ],
            "external_url": "https://twitter.com/Claynosaurz",
            "is_loaded_metadata": false,
            "primary_sale_happened": true,
            "is_mutable": true,
            "token_standard": "ProgrammableNonFungible",
            "is_compressed": false,
            "merkle_tree": ""
        },
        {
            "name": "DTR#718",
            "symbol": "DTR",
            "royalty": 3.5,
            "image_uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.jpeg",
            "cached_image_uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.jpeg",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.json",
            "description": "D-Tribunal - Powered by $PRNT",
            "mint": "FW5peLvKtJhCykHqfA2E1GDGVCLsJrJYKkWPKXa8SZuL",
            "owner": "CMigGdrPPk44vAZ7Cj2gaKSPtKYzsZtCQWb7CiHVrvKp",
            "update_authority": "DtriN1oYsTe3f6HAcTE2uhiho4PFwFAsYzj1rQ4uBGNx",
            "creators": [
                {
                    "address": "GnfH2zPe5JcQd7Qn3HyHfHMuWiyfCqqi2UHrjCaPVcFe",
                    "share": 0,
                    "verified": true
                },
                {
                    "address": "DtriN1oYsTe3f6HAcTE2uhiho4PFwFAsYzj1rQ4uBGNx",
                    "share": 100,
                    "verified": false
                }
            ],
            "collection": {
                "address": "AvbuWbBLA5UnavbngjTVXUdj5jstBSu2uRA9EvoXpDAv",
                "verified": true,
                "name": "DTRIBUNAL",
                "family": "DTRIBUNAL"
            },
            "attributes": {
                "Background": "Pink Background ",
                "Body": "Pharoh Skin",
                "Clothes": "Shirt ",
                "Eyes": "Bad Eyes",
                "Hair": "Yellow Hair",
                "Mouth": "Vamped Teeth"
            },
            "attributes_array": [
                {
                    "trait_type": "Background",
                    "value": "Pink Background "
                },
                {
                    "trait_type": "Body",
                    "value": "Pharoh Skin"
                },
                {
                    "trait_type": "Clothes",
                    "value": "Shirt "
                },
                {
                    "trait_type": "Eyes",
                    "value": "Bad Eyes"
                },
                {
                    "trait_type": "Hair",
                    "value": "Yellow Hair"
                },
                {
                    "trait_type": "Mouth",
                    "value": "Vamped Teeth"
                }
            ],
            "files": [
                {
                    "uri": "https://shdw-drive.genesysgo.net/98Gv23oF6MUdHcbb9o6gdH1fB7ivkzNnQSBjepFaSfMw/718.jpeg",
                    "type": "image/jpeg"
                }
            ],
            "external_url": "",
            "primary_sale_happened": true,
            "is_mutable": true,
            "token_standard": "ProgrammableNonFungible",
            "is_loaded_metadata": true,
            "is_compressed": false,
            "merkle_tree": ""
        },
        {
            "name": "The Primes #1043",
            "symbol": "PRIME",
            "royalty": 6.66,
            "image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
            "cached_image_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
            "animation_url": "",
            "cached_animation_url": "",
            "metadata_uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.json",
            "description": "The Primes is a tech-centric PFP collection that is set on a mission to shift the industry and deliver unparalleled solutions.",
            "mint": "Dx2XXfTUoTRsqRrBmB4dESraEeQy8Uby2XsLCtHW7GNS",
            "owner": "TMPqxbWp277kTJCz93j5mruM8hbcWBbC61aCjp3ZqJc",
            "update_authority": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
            "creators": [
                {
                    "address": "PRMnZK9V17Ms1JMJKnFRDvfV6DegXN6g4eP3FmLRvjg",
                    "share": 0,
                    "verified": true
                },
                {
                    "address": "9RYGTabhbcVfiXMMP89mJSJ1xfLpnRPYxkq1KSJVnhV6",
                    "share": 100,
                    "verified": false
                }
            ],
            "collection": {
                "address": "VERzBTggK292kQUbG6LJTe7An2j4XNW9M3xUMXLTTaR",
                "verified": true,
                "name": "The Primes",
                "family": "The Primes"
            },
            "attributes": {
                "Background": "Pink",
                "Skin": "Orange Spotted",
                "Outfit": "None",
                "Headwear": "Slime Beanie",
                "Eyes": "Squeezed",
                "Mouth": "Smirk",
                "Eyewear": "None"
            },
            "attributes_array": [
                {
                    "trait_type": "Background",
                    "value": "Pink"
                },
                {
                    "trait_type": "Skin",
                    "value": "Orange Spotted"
                },
                {
                    "trait_type": "Outfit",
                    "value": "None"
                },
                {
                    "trait_type": "Headwear",
                    "value": "Slime Beanie"
                },
                {
                    "trait_type": "Eyes",
                    "value": "Squeezed"
                },
                {
                    "trait_type": "Mouth",
                    "value": "Smirk"
                },
                {
                    "trait_type": "Eyewear",
                    "value": "None"
                }
            ],
            "files": [
                {
                    "uri": "https://shdw-drive.genesysgo.net/ApwLh1rBU8XS3pL2T6zGtir59GKJks93q1T4q1vEM7SW/1043.png",
                    "type": "image/png"
                }
            ],
            "external_url": "https://theprimes.io",
            "is_loaded_metadata": true,
            "primary_sale_happened": false,
            "is_mutable": true,
            "token_standard": "NonFungible",
            "is_compressed": false,
            "merkle_tree": ""
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Get NFT Owners

Returns NFT Owners for the provided NFT mint address list.

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **nft\_addresses:**  NFT mint addresses (array of strings, maximum 10, minimum 1)

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v1/nft/get\_owners

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<YOUR_API_KEY>");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "nft_addresses": [
    "B9YonmJk175GfFCDMMKWDc18YpFgmHCmj2HQNkvvjeVw",
    "BxMqbSQaccjZn2bVD13PzyP8DJ3BW3u1dEiD9WQmysGW",
    "85q1xdTVMAF8S1MEF6yuJaSnyFhDjzVg8rgyppdt6bLn"
  ]
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/get_owners", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title="Response" %}

```json
{
    "success": true,
    "message": "NFT mints and owners",
    "result": [
        {
            "nft_address": "B9YonmJk175GfFCDMMKWDc18YpFgmHCmj2HQNkvvjeVw",
            "owner": "5KW2twHzRsAaiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2"
        },
        {
            "nft_address": "BxMqbSQaccjZn2bVD13PzyP8DJ3BW3u1dEiD9WQmysGW",
            "owner": "3yTKSCKoDcjBFpbgxyJUh4cM1NG77gFXBimkVBx2hKrf"
        },
        {
            "nft_address": "85q1xdTVMAF8S1MEF6yuJaSnyFhDjzVg8rgyppdt6bLn",
            "owner": "2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Burn

Burn a particular NFT.

You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **token\_address:**  NFT mint address
* **wallet**: Owner of the NFT
* **parent\_token\_address**: (optional) Parent NFT mint address (Master Edition)

{% hint style="info" %}
If `token_address` is a print edition NFT and wanted to burn and get full rebates on burn (\~ `0.01022` SOL) send parent\_token\_address with request params. Otherwise, you would get less amount (\~ 0.00204 SOL)
{% endhint %}

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:red;">**DEL**</mark> /sol/v1/nft/burn\_detach

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "YOUR_API_KEY");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "wallet": "BFefyp7jNF5Xq2A4JDLLFFGpxLq5oPEFKBAQ46KJHW2R",
  "token_address": "2dZyhdAXP6bgwUaaoKmAPjeXZ5eHfUUGbTCDCL5QDs9r",
  "parent_token_address": "48rLtqWcGros2eJ1anmYydTecxvkyErfaeD3dmNx1dUM"
});

var requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/burn_detach", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```json
{
    "success": true,
    "message": "NFT burn request created successfully",
    "result": {
        "encoded_transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYNmFWYteRvJYw2HIfGgUAbGCrz00zOc1fx/ASNo7oRmvYYOeJJqpaRjnvDuaM/XbkKgDUWbvkyERMN8cLYmXksGSg2wq2R2vEJmHzV4hplzqwe2mhVENeoLCTazEbe1SENSgv4jEnlxkrsXIO3WpLa65+YPE+hVbcdZfoTSlkuSZZiQyhdkTeah4rSLIxlXiizpynXBw6YMwfk+pQNPl0GOduKxvIu3VUWE68tH6/SQhRhxKbYmIpAJuYhKGTruNHN55lhidReo/wG7z+ucujplpUmP4tTSXD1bE1RB8kS0MoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6V6zLkaFuuiBM39G9fG7zxds2CBPVQywAM0ZVXhRbSC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUYGp9UXGHvRZjXa1ARV/cLAwSTGjyFWdaXbustfCAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpDpjXOr+zhMmmFVSGukr+APwIFTPsM9eOyOW0WRG0u+OzJFAAsuLI1J5cN7zMpTei2QsfWNMI7Bn0XKmfVMvKNAEJDgAJBgQBBQIIDAMJBwoLCikAAQAAAAAAAAA="
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Burn Multiple Nfts

Burn as many NFTs from a wallet as you want. This API endpoint returns one or multiple encoded transaction strings, which have to be signed by the NFT owner's wallet and submitted to the blockchain for successful burns.

{% hint style="info" %}
Solana lets you burn multiple NFTs in one go, efficiently bundling up to an ideal number of burns based on the blockchain's transaction size of 1232 bytes. Any extra burn requests are packed into separate transactions, following the same principle.
{% endhint %}

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:red;">DEL</mark> /sol/v1/nft/burn\_many

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "<YOUR_API_KEY>");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "wallet": "AaYFExyZuMHbJHzjimKyQBAH1yfA9sKTxSzBc6Nr5X4s",
  "nft_addresses": [
    "DVMi11ELBuJB9oGJnr2N9LhfKQNfPQ3nqMGhxnoZxAaE",
    "5r2rJ37qUGYCqqHzvjBTjMBh4Pu2VD9wSiUnsky8UzYS",
    "CafGfg1bk66dMEy8FUmRNnQokJ6Be2uGXH75JpDesVcS",
    "BouqF1CYN7L2GFrXTZ4LC3AKe4VhWi7JDy7G2fjTr79d",
    "GpLzvmQYcQM3USH7RGehoriEzmJLJ8AfKVdLFZRoVBsz",
    "53pjayfUf7NjEFXRKuLTij3r6ujm7yPinGdTYm3chojA",
    "3w5NntmXKPRYokj2QFnrcKayomAbEvGFjDJpvJygU6Jw",
    "CdaApFxgx3rFwRx7RGrSCiiCHfXj51c9KbtKxMiyAUAm",
    "B6wQuXUXkKZu5n3WEfDfdRQKNUpdwstUUErJsb1wmXB",
    "K7Abse16g3wQUJ3jQemTtFknzG7yk7TTqvgRU1Zm8Mv",
    "DcxcgowdRg2bXFP4CcgFMaeppYY7GFquNhbZ5RwTVz3L",
    "Hctkh5FUQ373zYHLt9bP4M3xwHsqgMj1qVsPeaSAsULq",
    "5V5XCyeeHyqWKgBBMsHw7tBvjkN3f8J2KqPSRXwRDoN7",
    "9TtCMxEAkuZw7tUjKZuuxZ4H8jHEQu86P4TC9CmkCYbb",
    "FKEqnUGNnjsaxN8bgJuvuZngmNPXqSxHTN4AsjSHeoTV",
    "BKS7xiPKmTYbZU6rcdaBZR7uHurMAm57JRxHRCRFxxz1",
    "7TfGPrbJrMP2WH4b1GY8MTZX1iNKNSgHrgEiVjjSomUM",
    "DvzDwcgHopqNJ5ByugjWspgNn9MHcSmjuBKnMHoQcona",
    "JAUj6qV9L19Xn4ie3gXsPooXMTeKMDuu7oC8RoT331rS",
    "5mTU6SMxDeDwwpub7HuFxaQzWfLnpGZe6vMBsTocPTEd",
    "Cv7M1ErRsh4vxSraetUfbbDiHri7dntE4GM78fcmgB4G",
    "4rvG9CHGL88Kr76ido6NHYcxxvDwAxv4WHYRwNeSo2X6",
    "GUPG872ogatdP6to4b7rpEfWGRkMbzu7EWKZSx1ney1L",
    "5L1E1vCzHWRXeNjBGqNDwsiF6tZM9gY8V3comZTsiTUo",
    "7KsBpeQB41h98VBLchNkqsgNCRY2gNRYDwwz3KLpqJTU",
    "7bRsavYDEy3sBTBYda5g5hrVz7ZFDnBF9U7JWXFQYJJU",
    "CPcoAibSFpB2CA1ZFhi1cnoYkb3Y6sERswvQiwoyFSMs",
    "7q8DqUNzrmDdvbxf3Dg75HGN1CWtYkuPSUj7x1G6jU5p",
    "6KAid91HnwZTrQyRBr5XyVrbKTfXpVMf7V3AGRPRCDow",
    "qKi7RU529xuL1JhRp2We23NmNcLEoVJQmPgmdzHNbF9"
  ],
  "close_accounts": true
});

var requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/burn_many", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title="response" %}
{% code overflow="wrap" %}

```json
{
  "success": true,
  "message": "NFT burn request created successfully",
  "result": {
    "encoded_transactions": [
"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"
    ]
  }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Burn Multiple NFTs V2

Burn as many NFTs from a wallet as you want. This API endpoint returns one or multiple encoded transaction strings, which have to be signed by the NFT owner's wallet and submitted to the blockchain for successful burns.

{% hint style="info" %}
Solana lets you burn multiple NFTs in one go, efficiently bundling up to an ideal number of burns based on the blockchain's transaction size of 1232 bytes. Any extra burn requests are packed into separate transactions, following the same principle.
{% endhint %}

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **wallet:**  Owner of the NFTs
* **nfts:** (minimum 1 and maximum 50 NFTs burn in a single call) Addresses of the NFTs to transfer and `parent_token_address` (optional) if the selected NFT is a Print Edition NFT.\
  E.g., `Array<{ address: string; parent_token_address?: string }>`
* **priority\_fee**: (optional) [Prioritization fee](https://docs.solana.com/terminology#prioritization-fee) of transaction in micro Lamports. A micro Lamport is 0.000001 Lamports.

{% hint style="info" %}
If `address` is a print edition NFT and wanted to burn and get full rebates on burn (\~ `0.01022` SOL) send `parent_token_address` with `address`. Otherwise, you would get less amount (\~ 0.00204 SOL)
{% endhint %}

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:red;">DEL</mark> /sol/v2/nft/burn\_many

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "YOUR_API_KEY");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "wallet": "2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc",
  "nfts": [
    {
      "address": "5AdD7ymtsUmbxNLTaVrHTfaA5epfbtSFyFkHQRsHQrFP"
    },
    {
      "address": "12BiLHRfcwRMYUwH6PAmRgPtSKkmBD8igytGqkKaBeha"
    },
    {
      "address": "4XFemriyzC63nKRr6ZCS7Jq8v6d2TfCYTSrHBXrKYRDm"
    },
    {
      "address": "7knDtyCSJExnBi9V1eaHRjcYV9XdhRiTYqSLNXsSkNgb"
    },
    {
      "address": "6RXZGEmQmUJUXR4jKqb9xJ4dPGbviiHfXgpYHWs81fM8",
      "parent_token_address": "48rLtqWcGros2eJ1anmYydTecxvkyErfaeD3dmNx1dUM"
    },
    {
      "address": "Gf1FtkccnjgA53whMKfm1xJyAx2MDgMgkn7A5W9ZdVmK"
    },
    {
      "address": "G4EchjyB4zXq98kVHygbwaVNnBGEfsQZC1v33SSfUNjE"
    }
  ]
});

var requestOptions = {
  method: 'DELETE',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v2/nft/burn_many", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title="Response" %}

```json
{
    "success": true,
    "message": "NFTs burn request created successfully",
    "result": {
        "encoded_transactions": [
            "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"
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## Update

Once an NFT is minted, you can update only a few parts of it, which are

* Name
* Symbol
* Description
* Royalty
* Attributes
* Update Authority
* Image/File

You can also take [service\_charge](#create) on this API call.

Update call works like a patch call. You can selectively specify any of the above fields to update.

{% hint style="info" %}
Note: In order to update any NFT, you should have the **updateAuthority** of that NFT.
{% endhint %}

You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:purple;">**POST**</mark> /sol/v1/nft/update\_detach

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "QEbMrBRQEP92ToRo");
myHeaders.append("Content-Type", "multipart/form-data");

var formdata = new FormData();
formdata.append("network", "devnet");
formdata.append("wallet", "2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc");
formdata.append("token_address", "HJ32KZye152eCFQYrKDcoyyq77dVDpa8SXE6v8T1HkBP");
formdata.append("name", "Shyft");
formdata.append("symbol", "SH");
formdata.append("description", "Shyft makes web3 development easy");
formdata.append("attributes", "[{ \"trait_type\": \"power\", \"value\": \"100\" }]");
formdata.append("royalty", "10");
formdata.append("file", fileInput.files[0], "FZLnMeiXgAIlB-4.png");
formdata.append('service_charge', '{ "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe",  "token": "DjMA5cCK95X333t7SgkpsG5vC9wMk7u9JV4w8qipvFE8",  "amount": 0.01}');

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/update_detach", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```javascript
{
  "success": true,
  "message": "NFT update request generated successfully",
  "result": {
    "encoded_transaction": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDGMqfUcVHHu2+lyU5gx9wU2rGxk2NoSXtodMSdev+DxU149+BuHwrHyERE4lK+pDqz1cPOaPnPAO56DKHpPnPqQtwZbHj0XxFOJ1Sf2sEw81YuGxzGqD9tUm20bwD+ClGZ75+gzsF6WPLOQgC+tL75bEdK/l5cBP0MXH6KxOmXycBAgIBALwBDwEEAAAASG9sYQIAAABITFgAAABodHRwczovL25mdHN0b3JhZ2UubGluay9pcGZzL2JhZmtyZWlod2Vxd3lkd29iaG9yM2FzZjd1YWFocm5tc3c2cDdnNnh5cnl6a2p4dTJuM2ZrZ2d6dnd5BQABAQAAABjKn1HFRx7tvpclOYMfcFNqxsZNjaEl7aHTEnXr/g8VAWQAAAEYyp9RxUce7b6XJTmDH3BTasbGTY2hJe2h0xJ16/4PFQEAAQE="
  }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Update NFT Metadata URI

This API call allows updating NFT's on-chain `metadata_uri` field. &#x20;

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

<mark style="color:blue;">**POST**</mark> /sol/v1/nft/update\_metadata\_uri

Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **token\_address:** Address of the NFT token that needs to be updated.
* **update\_authority\_address:** Address of update authority of NFT.  This address pays the transaction gas fee.
* **metadata\_uri**: NFT metadata URL that contains metadata of NFT ([metaplex non-fungible-standard](https://docs.metaplex.com/programs/token-metadata/token-standard#the-non-fungible-standard)) in JSON file format.
* **fee\_payer:** (optional) If mentioned this is the account that will be used for paying the update transaction gas fee. If not mentioned, update authority address pays the gas fee.
* **`service_charge`**` ``: (optional)` - Transaction fee to be paid by the fee\_payer. This fee can be charged in SOL or any SPL-20  token. Below is the structure of the `service_charge` key.
  * `receiver: string`  - An address that will receive the service charge amount.
  * `amount: number` - The amount of currency to be charged.
  * `token(optionl): string` - The address of the SPL token, the service charge currency, by default SOL is charged.

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "QEbMrBRQEP92ToRo");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "token_address": "3DaK7VKf7kfSKPXWYTVzSThkuuoT8H5tiJP7QSfadeMJ",
  "update_authority_address": "5KW2twHzRsAaiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2",
  "metadata_uri": "https://bafkreiee5px4jug3l5wy3lg2lfc3oawni7e3bdatap23kqppoce7zbqhdq.ipfs.nftstorage.link",
  "fee_payer": "61NtTMTdvKQNL1aWicgVExrhEDFpWjjPNgiWz3CDcy8U",
  "service_charge": {
    "receiver": "6wNpsxL2JPnqehXeGdoAkJUKQk2Kyirby48PVYv3suT5",
    "token": "EhYMcBkY9umSJq8WaUGs1Dy1TcGAKvpo2TX1VNwX37rj",
    "amount": 0.1
  }
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/update_metadata_uri", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title="Response" %}

```json
{
    "success": true,
    "message": "NFT metadata_uri update request generated successfully",
    "result": {
        "encoded_transaction": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEDCEpjLridREAsZFclklzCOLdqzSmIf7zPrsc039dxbm2pQCwHlX8JKKwKpawHjfHTp/CXruh+Lt6Hx8xs+BZ7UD930gcbqfqbKiXO+2+/QauB/lbUgz1z0iuqZ6BibuC1ocGjXrHfMpD/IKzGsgeco1BWZo1V3mkNX3FzvpJhDJo3Cjr4YJKyTUKgq5FkIYkOtDqy7x9TMuMKQHDAwvndnTbLip2uWP0ysEt0FJhYR5FiIHxIJNkdW5H2hSfZ0axLTAtwZbHj0XxFOJ1Sf2sEw81YuGxzGqD9tUm20bwD+ClGBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkW0FrUFsZgc7Z2P4nqhLkGcaMQayh62yI8dnG+qJA7hQIGAgMBxAEPAQsAAABIb3JyaWJsZSAyOQMAAABIRlhYAAAAaHR0cHM6Ly9iYWZrcmVpZXBjengzb2FrNWRyNmlkeHR1amFiMmY3czY3cWhxN3ZtdmtoZGRhZDZ2cmVldnNteXFyeS5pcGZzLm5mdHN0b3JhZ2UubGlua/QBAQEAAABALAeVfwkorAqlrAeN8dOn8Jeu6H4u3ofHzGz4FntQPwFkAAABQCwHlX8JKKwKpawHjfHTp/CXruh+Lt6Hx8xs+BZ7UD8BAAEBBwQCBQQACgwA4fUFAAAAAAk="
    }
}
```

{% endtab %}
{% endtabs %}

**Response**

You will get an encoded transaction in response which you can sign in your front end or back end, with `update_authority_address` wallet.

## Update V2

This API call allows an external wallet to pay the gas fee for updating NFT on behalf of the NFT update authority.&#x20;

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v2/nft/update

#### Body Params

* **network**: Solana blockchain environment (testnet/devnet/mainnet-beta)
* **token\_address:** Address of the NFT token that needs to be updated.
* **update\_authority\_address:** Address of update authority of NFT. By default, this address pays the transaction gas fee.
* **name**: (optional) NFT Name, if names has to be updated.
* **symbol:** (optional) NFT Symbol
* **description**: (optional) NFT description
* **attributes:** (optional) attributes associated to this NFT. (stringify it)
* **royalty:** (optional) represents how much percentage of secondary sales the original creator gets. Ranges from (0-100), 0 being the original creator gets nothing and 100 being the original creator gets the entire amount from the secondary sales
* **image**: (optional) NFT Image
* **data:** (Optional) Any digital data (.mp3/.wav/.mp4/.pdf/.json etc) that you want to put in the NFT
* **fee\_payer:** (optional) If mentioned this is the account that will be used for paying the update transaction gas fee. If not mentioned, update authority address pays the gas fee.
* **`service_charge`**` ``: (optional)` - Transaction fee to be paid by the fee\_payer. This fee can be charged in SOL or any SPL-20  token. Below is the structure of the `service_charge` key.
  * `receiver: string`  - An address that will receive the service charge amount.
  * `amount: number` - The amount of currency to be charged.
  * `token(optionl): string` - The address of the SPL token, the service charge currency, by default SOL is charged.

Charging Service charge in USDC:

{% code overflow="wrap" %}

```json
{
    "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe", 
    "token": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", 
    "amount": 0.01
}
```

{% endcode %}

Charging Service charge in SOL:

```json
{
    "receiver": "499qpPLdqgvVeGvvNjsWi27QHpC8GPkPfuL5Cn2DtZJe",
    "amount": 0.01
}
```

**Response**

You will get an encoded transaction in response which you can sign in your front end or back end. 2 wallet address are needed to sign this txn:

1. **`fee_payer`**, only if specified in the API request.
2. **`update_authority_address`**&#x20;

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");

var formdata = new FormData();
formdata.append("network", "\"devnet\"");
formdata.append("update_authority_address", "\"5KW2twHzRsAaiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2\"");
formdata.append("token_address", "\"3DaK7VKf7kfSKPXWYTVzSThkuuoT8H5tiJP7QSfadeMJ\"");
formdata.append("name", "\"LonaMO\"");
formdata.append("symbol", "\"LPL\"");
formdata.append("description", "\"My Collection\"");
formdata.append("attributes", "\"[{ \"trait_type\": \"edification\", \"value\": \"100\" }]\"");
formdata.append("royalty", "\"10\"");
formdata.append("image", fileInput.files[0], "file");
formdata.append("data", fileInput.files[0], "file");
formdata.append("service_charge", "\"{\"receiver\": \"3yTKSCKoDcjBFpbgxyJUh4cM1NG77gFXBimkVBx2hKrf\",  \"amount\": 0.01}\"");
formdata.append("fee_payer", "\"2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc\"");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v2/nft/update", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```javascript
{
    "success": true,
    "message": "NFT update request generated successfully",
    "result": {
        "encoded_transaction": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBBBjKn1HFRx7tvpclOYMfcFNqxsZNjaEl7aHTEnXr/g8VQCwHlX8JKKwKpawHjfHTp/CXruh+Lt6Hx8xs+BZ7UD/Bo16x3zKQ/yCsxrIHnKNQVmaNVd5pDV9xc76SYQyaNwtwZbHj0XxFOJ1Sf2sEw81YuGxzGqD9tUm20bwD+ClG5vkE0G9hmAgFHBuylfbkhcWH1vn8BMB9Y1rrrkFKfYABAwICAcEBDwEIAAAASG9ycmlibGUDAAAASFJCWAAAAGh0dHBzOi8vbmZ0c3RvcmFnZS5saW5rL2lwZnMvYmFma3JlaWI0YTczd3VyZm5xdDZpZmZ1M3g0amtvZG80NGhqbnhqM2Rjb3pzY2RtdWV5enh1emo1cWUAAAEBAAAAQCwHlX8JKKwKpawHjfHTp/CXruh+Lt6Hx8xs+BZ7UD8BZAAAAUAsB5V/CSisCqWsB43x06fwl67ofi7eh8fMbPgWe1A/AQABAQ=="
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

Ta-da :tada:, a transaction has been created for you to sign and send to the blockchain after which your user would have updated an NFT.

## Search

Apply filtering on your NFTs based on network and their wallet address, creators, royalty, attribute values. We index all your NFTs in your databases therefore these queries are super fast.&#x20;

Let's say while creating your NFT you supplied the below attribute values:

```json
[
    {"trait_type": "speed", "value": 100},
    {"trait_type": "aggression", "value": "crazy"},
    {"trait_type": "energy", "value": "very high"}
]
```

Then you can apply filters using GET query parameters like:

### <mark style="color:green;">**GET**</mark> /sol/v1/nft/search

**Query Params:**

* **network:** (optional) Solana blockchain environment (testnet/devnet/mainnet-beta)
* **wallet:** (required) Your wallet address
* **creators:** (optional) Public key of creators. Filters only those nfts in your wallet which have these creators.
* **royalty:** (optional) Royalty of NFTs. Filter only those nfts in your wallet which have the royalty (e.g., `royalty=5`). More filters are there such as greater than (`gt`), less than (`lt`) and equal (`gte`, `lte`) method. You can pass query like this `royalty={"gte":5}`.
* **attributes:** (optional) Attributes associated to this NFT. Filter only those nfts in your wallet which have these attributes (e.g., `attributes{"energy":"crazy"}`). Similarly, royalty attributes have those methods as well. You can search multiple attributes in one query parameter such as `attributes={"edification":{"gt":"10"},"energy":"very high"}`.
* **collection:** (optional) NFT collection address. Filters only those nfts in your wallet which have include this collection address.
* **page:** (optional) Search API is a paginated API. So you need to mention page number from you want to search. By default the page no. is 1.
* **size:** (optional) You can metion maximum no. of item you need on a perticular search result. By default it is 10.

\
You can search this way.

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "20CcwuFeQOIcfuHx");

var requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/search?wallet=5xSbS5PCkxPeZeJLHRBw57hMbCBNzSRoRaVfpQt5rxAg&network=devnet&attributes={"edification":{"gt":"10"},"energy":"very high"}&creators=5xSbS5PCkxPeZeJLHRBw57hMbCBNzSRoRaVfpQt5rxAg&creators=2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc&royalty={"lte":6}&page=1&size=10",requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}

```json
{
    "success": true,
    "message": "filtered NFTs",
    "result": [
        {
            "name": "MadBull",
            "symbol": "MB",
            "royalty": 10,
            "image_uri": "https://nftstorage.link/ipfs/bafkreihlunxuyqd6mbl632jxad52xeaxxtlq5nmgixoibtc5kg4ti27lmu",
            "description": "hair on fire problem solving",
            "mint": "42W21y86sURFNaWgwDuLTfMKay5LVRzFJrMe2J7xMYTx",
            "owner": "AaYFExyZuMHbJHzjimKyQBAH1yfA9sKTxSzBc6Nr5X4s",
            "attributes": {
                "speed": 100,
                "aggression": "crazy",
                "energy": "very high"
            }
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Transfer

Transfer an already minted NFT from one wallet to another.&#x20;

{% hint style="info" %}
Optionally, you can transfer update authority to the new owner as well.
{% endhint %}

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

#### Body (raw)

* **from\_address**: Public key of the wallet to transfer from,
* **token\_address**: Address of the token to transfer
* **to\_address**: Wallet address of the receiver,
* **transfer\_authority**: true  //(optional, true by default)
* **fee\_payer**: (optional) The account that pays the transaction gas fee.

You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v1/nft/transfer\_detach

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "YOUR_API_KEY");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "token_address": "2XqF9fZAxubwNc9WBcsuknDyQFrMGrNdaNzLS44SLh2C",
  "from_address": "GE4kh5FsCDWeJfqLsKx7zC9ijkqKpCuYQxh8FYBiTJe",
  "to_address": "AaYFExyZuMHbJHzjimKyQBAH1yfA9sKTxSzBc6Nr5X4s",
  "transfer_authority": true,
  "fee_payer": "BFefyp7jNF5Xq2A4JDLLFFGpxLq5oPEFKBAQ46KJHW2R"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/transfer_detach", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```json
{
    "success": true,
    "message": "Transfer NFT request generated successfully",
    "result": {
        "encoded_transaction": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEDCJhVmLXkbyWMNhyHxoFAGxgq89NMznNX8fwEjaO6EZr2A+Z8BRyNDL30G+lsh0lwSNNhbnN6HAnoyUtyAiN7Pg9ZfxLQU842Y8py+Dbp+3ckqKas1UP/KyAvqD+ayYXEYW6xgLBRdcPeCs5Aru3K6bJDXlPzDTpCRZR6jRIIVIWr9/PSeyyBjRXYORde6XWwEYav8FDu6IOuvruaqwCkJdcWwakrAYNFhxFnhMYlAyX4M1+8F1zyQTHbiNHpTJQYjQtwZbHj0XxFOJ1Sf2sEw81YuGxzGqD9tUm20bwD+ClGBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKm1c3q843qt84L5pllxVD3HU9BqfzuTBezYUcSMUn/E6QIGAgMB4AEPASAAAABKdW5nbGUgR3VhcmRpYW4gfCBHdWFyZGlhbiBUcmliZQoAAAAkR1VBUkRJQU5TWAAAAGh0dHBzOi8vbmZ0c3RvcmFnZS5saW5rL2lwZnMvYmFma3JlaWEydmp4dGljNzR5eTZ5M21qcGc2emNyaHhyZTNnZ2Zvam91a29rd3VxaHZlb2xhNXVpYWXoAwEBAAAAA+Z8BRyNDL30G+lsh0lwSNNhbnN6HAnoyUtyAiN7Pg8BZAAAAY5QrbBC1iZfe4ecg7aG0QA11Mr10/XZTNaMWT6GlHioAQABAQcEAgUEAQoMAQAAAAAAAAAA"
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Transfer Multiple NFTs

Transfer multiple NFTs from one wallet to another.&#x20;

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

#### Body (raw)

* **from\_address**: Source wallet address, holding the NFTs.
* **token\_addresses**: (array of strings) Addresses of the token to transfer (minimum 1 and maximum 50 NFTs transfer transactions created)
* **to\_address**: Wallet address of the receiver
* **priority\_fee**: (optional) [Prioritization fee](https://docs.solana.com/terminology#prioritization-fee) of transaction in micro Lamports. A micro Lamport is 0.000001 Lamports.

{% hint style="info" %}
Solana lets you send multiple NFTs in one go, efficiently bundling up to an ideal number of transfers based on the blockchain's transaction size of 1232 bytes. Any extra transfers are packed into separate transactions, following the same principle.
{% endhint %}

You will get encoded transactions in response which you can sign in your front end or back end using the same wallet as used in the API.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v1/nft/transfer\_many

{% tabs %}
{% tab title="JS" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "QEbMrBRQEP92ToRo");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "token_addresses": [
    "GFxYSwRPWxDBdGex4DhrY2dStHPMn4UoocJyBAdfypsa",
    "6RXZGEmQmUJUXR4jKqb9xJ4dPGbviiHfXgpYHWs81fM8",
    "8pNjm9UmY6RhGQaLuCdtDt6uXhqXg5rFQX9t2oWq3PL1",
    "CHqQS4sZCqKvkvgsKnar5FB4aQ1Ps6mLxBfdNjRgHYqS",
    "FSwx4c1qhuwr3YpBHHCneWkvo2R9uPuHoqjfr6qgixTh",
    "AmeH6zUfie2gkFrT7ZZJcimsCCMhtk8PtTKD3Yxitvs5",
    "9eEJEUwsuHDDXPv6LZf84xAYJM8wRkQt56zDB1oig5za",
    "CxKYibvYT9H8qBw827LvGuz6BWvXSsSJSeCsbm5t27hN"
  ],
  "from_address": "BFefyp7jNF5Xq2A4JDLLFFGpxLq5oPEFKBAQ46KJHW2R",
  "to_address": "2fmz8SuNVyxEP6QwKQs6LNaT2ATszySPEJdhUDesxktc"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/transfer_many", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```json
{
    "success": true,
    "message": "Transfer NFTs request generated successfully",
    "result": {
        "encoded_transactions": [
            "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAgXmFWYteRvJYw2HIfGgUAbGCrz00zOc1fx/ASNo7oRmvYQiskPs328pq98o+DEy686aOD14VixqoR+4FrvxidjVCjwQtBpA8CM/AXQhvkOVak0NtpYmXuupVsNkDKvuN1xNRg7AMG31LVJGAzzHMlwj9H1PRS1vsOHrtKxq40SIeI5rEFk5fw0INxpainHGzBqvWyh1YDZGr4Xv7EmPyayjGErJarBbiRT1YbyJVosT8nxiI6DgC9pcq70LGsg15fXchEhfrnpKPkU87s9L9qwEezz4yUH5O4HVlcO/CKt/vNyeyxpED2SiFMEU+rckzjVdQdjCDtVbMzmq9neYpfl34d1J27GRoEWlOgDNeda8JVQUrUxWaYf2aZivApMLeYZpidMoRFeL6kolIu2zHC/yDjrM/5xwG9drjYjbIxYEk2tWjgRNFQiONVbqSqAXcDA21i2GqTmTt3ugUk80RAZ87Az4xUYCrJVjKa1jvbCkZMRR6eH7m0WwpNcJBxa5NC1vZKXY/3U52jAMfVZbSJAixgDBRlqOaAY/xidHlMXT0vOy+1sLd+xIO/s5n3qK+1oH75Y2GY/Ri5+0nzVCIptywzYFIT/d/D3mCKnSLrlc2qrsA11t6ezrY+uNeD3Yz4OUJLsktlB97dJSHFv0A/y6jmvRO/nKcLhGs8maLCe2td0JK9WSiHFj1SN2JFvoZ7VgfmoUng3v6uOaKR3LS7c1oBnBTtuEdGAyNzPAi3nE2mQue4v9eNyPtDU5scy4jsDkSjjTYe4/TRib6+sDjVSq/PX5xq41i32P/JF7HLZjXSnwJRoRCDZ5iZm+kmo2ZeZHJ3ULslOOE0DZouGzd+cRdapRMRTBvim0715o9HoiofGSyNRrZ2Ep/FbdSgc+ZBg4rQ8qsFucVFrSsDPy81rUFhVF1P8C3j79c/tEKWYV/EG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqZY82A2RXG+xVIQ9I1jl6H8BY6mV7imjnI4CL08lKV1JBxYECxUEAAoMAQAAAAAAAAAAFgQOEAYACgwBAAAAAAAAAAAWBAwPCQAKDAEAAAAAAAAAABYEBxMNAAoMAQAAAAAAAAAAFgQBEQoACgwBAAAAAAAAAAAWBAUSCAAKDAEAAAAAAAAAABYEAxQCAAoMAQAAAAAAAAAA",
            "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYJmFWYteRvJYw2HIfGgUAbGCrz00zOc1fx/ASNo7oRmvZKDXGXhW+BZEExfPS0cQBb+3nbBrm5wyHPq9MjUGsXkJECfH+dmCEA4huOvr/8uaacMJDiqV68ot4abUZJhe+eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYyp9RxUce7b6XJTmDH3BTasbGTY2hJe2h0xJ16/4PFYyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZsZx4v+/doZSL4ttPpDh74U9JRmsiX+6B+F37uICN1tUGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpXC01Y5njZGkKfOwXEnuyFJw6YJjfOOBidmCGaGHvBowCBQcAAQQGAwgHAAgEAgYBAAoMAQAAAAAAAAAA"
        ]
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Mint

Creates a clone of a master NFT and mints it into the specified wallet. Each time you mint, the current supply of master NFT increases. In order for the mint to succeed, the current supply should be less than the max supply specified for the master NFT.

You can also specify whether to give **update\_authority** to the new receiver for the minted NFT.

[How to create a Master NFT.](#create)

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

#### Body (raw)

* **network:** Solana blockchain environment (testnet/devnet/mainnet-beta)
* **wallet**: Wallet address that has the mint authority of the NFT
* **master\_nft\_address**: Address of the master NFT to mint
* **receiver**: Wallet address of the receiver,
* **transfer\_authority**: true  //(optional, false by default)
* **message**: (optional) Add memo on transaction
* [**service\_charge**](#create): (optional)
* **fee\_payer:** (optional) If mentioned this is the account that will be used for paying the transaction gas fee.

You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.

We have already deployed a dev tool to sign and send transactions for quick testing <https://shyft-insider.vercel.app/>

{% hint style="danger" %}
This API is deprecated, and we no longer support it.
{% endhint %}

### <mark style="color:blue;">**POST**</mark> /sol/v1/nft/mint\_detach

{% tabs %}
{% tab title="JS" %}
{% code overflow="wrap" %}

```javascript
var myHeaders = new Headers();
myHeaders.append("x-api-key", "YOUR_API_KEY");
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "network": "devnet",
  "wallet": "3yTKSCKoDcjBFpbgxyJUh4cM1NG77gFXBimkVBx2hKrf",
  "master_nft_address": "4ra2ePdzTJt7oQeL4txCqpNq16PrsxnzL1DWAi4DkjWR",
  "receiver": "BFefyp7jNF5Xq2A4JDLLFFGpxLq5oPEFKBAQ46KJHW2R",
  "transfer_authority": true,
  "message": "Thank you",
  "service_charge": {
    "receiver": "sxm1BiYrJmSYZP3qUUcSLkzoPwKMKeEKFFoZ7c9Heg7",
    "token": "HqGEZaxqpoKgDqoRaKQYEnttWi1ptnB4PhKU4PCLHxah",
    "amount": 1
  },
  "fee_payer": "5KW2twHzRsAaiLeEx4zYNV35CV2hRrZGw7NYbwMfL4a2"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.shyft.to/sol/v1/nft/mint_detach", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```json
{
    "success": true,
    "message": "NFT Edition mint request generated successfully",
    "result": {
        "encoded_transaction": "AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiLKXc210fZKNIslUbh3naW60A4wgMc2gKWPQ23zcWNpwz0V3RSKRyF1UWI/iS5Gy7BSvL/XFAGCzIXzlbiSyBAMACxVALAeVfwkorAqlrAeN8dOn8Jeu6H4u3ofHzGz4FntQPywtqCYXlzhrq8mEyvvhhNTOfGeIyz37PhBiUwnXHZv4xWncOpDtF7D2OqSfqGVjQ3U0CQrSOPkY+nIbNr1VaARPnoR24vDt8QFBb3/MBMgl6Y7nalTfc/rcci4CEHWyB1JUZNQab4Nye8VIUthSQ4TOLLtzrFW7LASUQhdOy+Mlbutf2iWguodNpp3dkQIt5X5y8zzYoPVtZCzrpyXfV3OUrVNo8dorEoW/A1D7fiN1FJUabMrUxYt0LR8SHwlqX7IfahLApim0p6I0auSeeXQEz/REr2fWND1ZqAsoh7YU2yJXAX/wk6IN+f2YtnKh6odlyQVUiSGwwsftzqdyg2LvM+O4eNUkoHi6G88kroZ3x7ik48YIYCkfK16Cw8bBKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARVKNjcpX1pgBPtVu+ebBfa0al4R+zP9NL5cDX8qECqSMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WZhVmLXkbyWMNhyHxoFAGxgq89NMznNX8fwEjaO6EZr2rPul25c07PdxVbhnIhpZ/iXKbLpIDyTbftC8byBSyT36GBg3iqoT3K1IwgMBwj9caqWOlEVzuY4MxjnQFDO67gVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNC3BlsePRfEU4nVJ/awTDzVi4bHMaoP21SbbRvAP4KUYNDhZE7a0H4xUtqZUMzIXc0z28jJwnkgPk+kh+OnlWcAan1RcZLFxRIYzJTD1K8X9Y2u4Im6H9ROPb2YoAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKmIYiH45CwZrpRn1F62NjeAj5W9Kx4LbGSDoxTzqEP/iwgKAgECNAAAAABgTRYAAAAAAFIAAAAAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkUAgITQwAALC2oJheXOGuryYTK++GE1M58Z4jLPfs+EGJTCdcdm/gBLC2oJheXOGuryYTK++GE1M58Z4jLPfs+EGJTCdcdm/gMBwEIDQIKFBMAFAMCCAEJBwEAAAAAAAAAEQ0JBAUCBwEBAQsNDhQKCQsBAAAAAAAAABABAQlUaGFuayB5b3UMBwAGEg8KFBMAFAQDDwYACgwAypo7AAAAAAk=",
        "mint": "EHcwWYcdd29WkEFit76QEUe3yfLiXc6SkTyFpxg4cQ3D"
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}
