# SRC-721

**Official Github Link:**\
<https://github.com/DerpHerpenstein/src-721>

**Purpose:** The SRC-721 specification proposes a cost-effective method for creating high-resolution, layered Non-Fungible Tokens (NFTs) using the STAMPS protocol. This method involves minting a small JSON file that references already stored data on-chain. This drastically reduces the file size and minting cost. It also future-proofs the collections from potential changes to the STAMPS protocol by using counterparty asset IDs.

**Key Components:**

1. **Deploy:** Establishes the initial settings for the NFT collection like its name, symbol, price, and description. It also defines traits (t0-tx) which are layered to form the final NFT image.
2. **Reveal:** This operation reveals traits of the NFT.
3. **Mint:** This operation creates a new NFT within the established collection.
4. **Transfer and Use:** SRC-721 transactions are valid counterparty assets and can be used as such.

**Token Requirements:** Tokens must be 1-5 characters long and can include alphanumeric characters, underscores, specific special characters, and most printable emojis. Numeric values are only allowed in "max" and "lim" fields.

**Other Rules:** The counterparty asset for deployment and mint must meet certain conditions such as locked status and value restriction. JSON strings aren't case or order sensitive.

**Allowed Unicode Characters:** Emojis that present a distinct emoji-style appearance, characters that can be modified by emoji modifiers (like skin tone modifiers), and the emoji modifiers themselves.

**Excluded Unicode Characters:** Characters used to create complex emojis, such as skin tone modifiers and hair components, and additional pictographic characters not covered by Emoji\_Presentation are excluded. Tokens with these characters are not recognized as valid SRC-721 transactions.


---

# 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://patches-1.gitbook.io/ordinals-standards-discussions/ordinals-standards-proposals/src-721.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.
