# Metadata Structure

### 🧾 Metadata & Hosting

This page outlines how CRAFT Hotties metadata is structured, uploaded, and validated — ensuring every NFT is mapped correctly, loads instantly, and maintains long‑term integrity.

#### 🗂️ Metadata Structure

* Metadata is stored in a **CSV file formatted for OpenSea’s bulk upload system**
* Each row represents one NFT, with columns for **Name, Description, Image, and Attributes**
* Trait headers are normalized for consistency, rarity tracking, and collector clarity
* The system supports up to **28 attributes per NFT**, though most use far fewer
* Blank traits are omitted unless “None” or “Unknown” adds meaningful context
* Descriptions are CSV‑safe — no line breaks, quotes, or special characters that could break formatting

#### 🌐 Hosting Strategy

* All images are uploaded directly through **OpenSea’s bulk upload system**
* No external hosting or IPFS pinning was used — avoiding broken links and ensuring fast, reliable access
* Image links are automatically managed by OpenSea once the CSV is processed
* This approach ensures fast loading and seamless integration with the platform

#### 🧪 Validation & Troubleshooting

To ensure flawless mapping and zero ambiguity, the following checks are run before launch:

* **File existence check** — confirms every image referenced in the CSV actually exists
* **Duplicate check** — ensures no repeated filenames or trait combinations
* **Row alignment** — verifies that metadata rows match image files exactly
* **Trait logic audit** — confirms rarity and tier logic are correctly applied
* **Manual spot checks** — visual review of top‑tier NFTs and random samples
* **Trait visibility check** — ensures blank traits are omitted and “None”/“Unknown” only appear when meaningful

#### 🛠️ PowerShell Scripts

Custom PowerShell scripts are used to automate validation:

* Check for missing or duplicate files
* Confirm row count matches image count
* Flag any mismatches between filenames and metadata
* Scripts are annotated for clarity and future reuse

```
Last updated: March 22, 2026
```


---

# 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://craft-digital.gitbook.io/craft-hotties/metadata-structure.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.
