# equipment.rpg.item

> Published by [rpg.actor](https://lexicon.garden/identity/did:plc:kwgllf365cwmxbnxitx4pjdj)

✓ This is the authoritative definition for this NSID.

## Description

A player's owned item, accepted from a provider's give record. Lives on the player's PDS.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/equipment.rpg.item)
- [Documentation](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/equipment.rpg.item/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/equipment.rpg.item/examples)

## Definitions

### `equipment.rpg.item`

**Type**: `record`

An item in the player's inventory. Self-contained with all data needed for rendering and display. The give URI and assetCid enable verification against the provider's attestation. Each record is one item.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `give` | `string` (at-uri) | Yes | AT URI of the equipment.rpg.give record on the provider's PDS. |
| `icon` | `blob` | No | Small standalone icon for the item (e.g. 64x64 PNG). Used in inventory displays and profile panels. |
| `item` | `string` | Yes | Item identifier matching the give record (e.g. 'popcorn', 'theatre_shirt'). |
| `kind` | `string` | No | Item kind. 'layer' for sprite-generator wearables, 'inventory' for non-wearable items like keys or potions. Defaults to 'layer' if omitted. |
| `asset` | `blob` | No | The item's sprite layer artwork (144x192 PNG). Required for 'layer' items, optional for 'inventory' items. |
| `stats` | `object` | No | Item properties copied from the give record at acceptance time. |
| `title` | `string` | Yes | Display name for the item. |
| `context` | `string` | No | Origin description copied from the give record. |
| `assetCid` | `string` | No | CID of the canonical asset or icon blob. Must match the give record's assetCid for verification. |
| `category` | `string` | No | Generator layer category for 'layer' items (e.g. 'tops', 'righthand'). Ignored for 'inventory' items. |
| `provider` | `string` (did) | Yes | DID of the provider who gave this item. |
| `acceptedAt` | `string` (datetime) | Yes | When the player accepted this item. |
| `description` | `string` | No | Flavour text or description. |

## Examples

The following examples demonstrate valid data for this lexicon. [View all examples](https://lexicon.garden/lexicon/did:plc:kwgllf365cwmxbnxitx4pjdj/equipment.rpg.item/examples)

### Example 1 (`#main`)

**Description**: A player's accepted inventory item — a non-wearable popcorn bucket with icon.

```json
{
  "give": "at://did:plc:exampleprovider/equipment.rpg.give/3abc123",
  "icon": {
    "ref": {
      "$link": "bafkreig2xxrkjuph63yqwtrb5zwnqaokjdp5k4e6i3f7jhwycbkq4vmqm"
    },
    "size": 4096,
    "$type": "blob",
    "mimeType": "image/png"
  },
  "item": "popcorn",
  "kind": "inventory",
  "$type": "equipment.rpg.item",
  "title": "Bucket of Popcorn",
  "context": "Avonlea Theatre popcorn vendor",
  "assetCid": "bafkreig2xxrkjuph63yqwtrb5zwnqaokjdp5k4e6i3f7jhwycbkq4vmqm",
  "provider": "did:plc:exampleprovider",
  "acceptedAt": "2026-04-06T12:01:00.000Z",
  "description": "A warm bucket of popcorn from the Avonlea Theatre vendor."
}
```

## Raw Schema

```json
{
  "id": "equipment.rpg.item",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "item",
          "title",
          "give",
          "provider",
          "acceptedAt"
        ],
        "properties": {
          "give": {
            "type": "string",
            "format": "at-uri",
            "description": "AT URI of the equipment.rpg.give record on the provider's PDS."
          },
          "icon": {
            "type": "blob",
            "accept": [
              "image/png"
            ],
            "description": "Small standalone icon for the item (e.g. 64x64 PNG). Used in inventory displays and profile panels."
          },
          "item": {
            "type": "string",
            "maxLength": 50,
            "description": "Item identifier matching the give record (e.g. 'popcorn', 'theatre_shirt')."
          },
          "kind": {
            "type": "string",
            "maxLength": 20,
            "description": "Item kind. 'layer' for sprite-generator wearables, 'inventory' for non-wearable items like keys or potions. Defaults to 'layer' if omitted."
          },
          "asset": {
            "type": "blob",
            "accept": [
              "image/png"
            ],
            "description": "The item's sprite layer artwork (144x192 PNG). Required for 'layer' items, optional for 'inventory' items."
          },
          "stats": {
            "type": "object",
            "description": "Item properties copied from the give record at acceptance time."
          },
          "title": {
            "type": "string",
            "maxLength": 100,
            "description": "Display name for the item."
          },
          "context": {
            "type": "string",
            "maxLength": 200,
            "description": "Origin description copied from the give record."
          },
          "assetCid": {
            "type": "string",
            "maxLength": 200,
            "description": "CID of the canonical asset or icon blob. Must match the give record's assetCid for verification."
          },
          "category": {
            "type": "string",
            "maxLength": 30,
            "description": "Generator layer category for 'layer' items (e.g. 'tops', 'righthand'). Ignored for 'inventory' items."
          },
          "provider": {
            "type": "string",
            "format": "did",
            "description": "DID of the provider who gave this item."
          },
          "acceptedAt": {
            "type": "string",
            "format": "datetime",
            "description": "When the player accepted this item."
          },
          "description": {
            "type": "string",
            "maxLength": 500,
            "description": "Flavour text or description."
          }
        }
      },
      "description": "An item in the player's inventory. Self-contained with all data needed for rendering and display. The give URI and assetCid enable verification against the provider's attestation. Each record is one item."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "A player's owned item, accepted from a provider's give record. Lives on the player's PDS."
}
```
