# Non-Transferable Projects

{% hint style="warning" %}
For Non-Transferable Projects, the `:transferable` path param is set to `n`
{% endhint %}

This guide will walk through the process of setting up a Non-Transferable Project, minting NFTs that are part of the Project, and claiming the NFT.&#x20;

## Create a Non-Transferable Project

<figure><img src="/files/vJJ010QpEiwcPIDkMbiA" alt=""><figcaption><p>From the V2 dashboard, you'll head to <strong>Create a Project</strong></p></figcaption></figure>

Besides passing in the Project's name and image, you'll need to set the `transferable` to `false` in the request body.&#x20;

{% code title="Example Request Body" %}

```json
{
    "name": "Project #420",
    "image": "https://hatrabbits.com/wp-content/uploads/2017/01/random-word-1.jpg",
    "transferable": false
}
```

{% endcode %}

### API Reference

{% content-ref url="/pages/OIvuYeysFkcYabt0b0QR" %}
[Create a Project](/resources/projects/methods/create-a-project.md)
{% endcontent-ref %}

## Mint a Non-Transferable NFT

<figure><img src="/files/QoqQzmopckocbnlJe00l" alt=""><figcaption><p>You can set custom attributes and specify a claimer for your NFT</p></figcaption></figure>

Non-Transferable NFTs are lazily minted. When you create an NFT through the API or the Underdog dashboard, the metadata is prepared to be minted and then minted on-chain when it is claimed.

{% hint style="info" %}
Non-Transferable NFTs can be updated before they are actually minted through the [update](https://docs.underdogprotocol.com/resources/v2/projects/nfts/update-an-nft#update-an-nft) and [partial update](https://docs.underdogprotocol.com/resources/v2/projects/nfts/update-an-nft#partial-update-an-nft) endpoints.&#x20;
{% endhint %}

The claimer is determined by the optional `claimerAddress` in the request body.&#x20;

### Setting a Claimer

When the `receiverAddress` is set in the request body, only the specified address can mint and claim the NFT.&#x20;

When you know the claimer address ahead of time, this ensures that the Non-Transferable NFT is claimed by the right claimer. Only a wallet with the specified `receiverAddress` can sign the transaction to claim the NFT.&#x20;

### Without a Claimer Address

If you don't know the `receiverAddress` ahead of time, you can exclude it from the request body. This generate a one-time password (OTP) that can be used to claim the NFT.&#x20;

The OTP must be passed in along with the claimer address to generate the claim transaction for the Non-Transferable NFT. This will be covered in more detail in the next section.&#x20;

### API Reference

{% content-ref url="/pages/QLihY5NN86TVp0os2lJU" %}
[Create an NFT](/resources/projects/nfts/create-an-nft.md)
{% endcontent-ref %}

## Claim a Non-Transferable NFT

<figure><img src="/files/bKJvFmrFFvfB8rDXNtWA" alt=""><figcaption><p>The claim page for the Non-Transferable NFT</p></figcaption></figure>

Once you've created your NFT, you can send the claim link to your desired claimer. The claim page sends a POST request to the API that generate a transaction the claimer can sign to mint & claim the NFT.&#x20;

{% hint style="info" %}
Claiming the NFT requires the claimer to sign the transaction. The claimer pays the rent and networks fees to mint the NFT.&#x20;
{% endhint %}

### API Reference

{% content-ref url="/pages/Xxysl85tyZEi8mcweTCs" %}
[Generate Claim Link](/resources/projects/nfts/generate-claim-link.md)
{% endcontent-ref %}

{% content-ref url="/pages/LGaSRCgWfDZCeq52JpOD" %}
[Generate Claim Transaction](/resources/nfts/generate-claim-transaction.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.underdogprotocol.com/resources/projects/non-transferable-projects.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
