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.
any
Any valid record key
Properties
acceptedAt
string
datetime
Required
When the player accepted this item.
asset
blob
Optional
The item's sprite layer artwork (144x192 PNG). Required for 'layer' items, optional for 'inventory' items.
assetCid
string
Optional
CID of the canonical asset or icon blob. Must match the give record's assetCid for verification.
maxLength: 200 bytescategory
string
Optional
Generator layer category for 'layer' items (e.g. 'tops', 'righthand'). Ignored for 'inventory' items.
maxLength: 30 bytescontext
string
Optional
Origin description copied from the give record.
maxLength: 200 bytesdescription
string
Optional
Flavour text or description.
maxLength: 500 bytesgive
string
at-uri
Required
AT URI of the equipment.rpg.give record on the provider's PDS.
icon
blob
Optional
Small standalone icon for the item (e.g. 64x64 PNG). Used in inventory displays and profile panels.
item
string
Required
Item identifier matching the give record (e.g. 'popcorn', 'theatre_shirt').
maxLength: 50 byteskind
string
Optional
Item kind. 'layer' for sprite-generator wearables, 'inventory' for non-wearable items like keys or potions. Defaults to 'layer' if omitted.
maxLength: 20 bytesprovider
string
did
Required
DID of the provider who gave this item.
stats
object
Optional
Item properties copied from the give record at acceptance time.
title
string
Required
Display name for the item.
maxLength: 100 bytesView raw schema
{
"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."
}