Skip to main content

Items

An Item is an abstraction of an ownable asset. In another terms, an item is an NFT for Phosphor Platform. It is created with a set of attributes in a NOT_MINTED state. The platform generates the item's metadata from these attributes automatically and pin it on IPFS.

An item must be created from a deployed collection. It inherits the collection's token ID assignment strategy, which determines how it will receive its token ID. When it is minted, an NFT is created from the collection's token contract with this token ID. This token ID uniquely associates an NFT with its metadata.

Metadata for an item can be specified at will, as long as their values respect the general type restrictions. An optional way to apply a structure to NFT metadata is by creating an Item Type, a JSON schema that is applicable to one item, or all items within the same collection. You can manage item types using a JSON file upload endpoint in the API.

Items must be locked before it can be minted, listed, transferred or sent through an email claim.

caution

Once you link an item type to an item or collection, you can't update its JSON schema or delete it. We recommend creating a second item type with the new, updated JSON schema.

Metadata

When creating an item in the platform you can set attributes which are fields that further describe the item, such as it's image or title.

The ERC721 and ERC1155 standards have a way to provide a uri for each token. This is commonly referred to as the token metadata. The OpenSea metadata standard has become the de-facto standard for metadata, and the platform generates metadata conforming to this standard. The platform transforms the item's attributes to the appropriate metadata. To fine-tune the generated metadata, you can use some reserved attributes:

Attribute NameDescription
titleThe title of the item. Maps to name in the OpenSea metadata.
descriptionA description of the item. Maps to description in the OpenSea metadata.
image_urlThe url to the image representing the item. Maps to image in the OpenSea metadata.
meta_animation_urlOptional url to an animation. Maps to animation_url in the OpenSea metadata.
meta_external_urlOptional url to an external url. Maps to external_url in the OpenSea metadata.
meta_background_colorMaps to background_color in the OpenSea metadata.
meta_youtube_urlMaps to youtube_url in the OpenSea metadata.
*Any other attribute will be mapped as an entry in the attributes array in the OpenSea metadata.

Restrictions

You can create as many item types as you want, and each one is specific to your organization.

To define an item type, the platform uses a subset of the JSON Schema specification, with the following limitations in order to correctly generate attributes compatible with the Enjin/OpenSea metadata structure, and keep the implementation simple:

  • All properties must have a unique name.
  • No nested properties are allowed.
  • Only primitive property types (number, boolean, string, number, null) are allowed.
  • Some special format values are supported, such as uri (which allows you to pin a file on IPFS) and data-url (which allows you to upload a file as a data URI reference).

Item Lifecycle

Items (NFTs) on Phosphor Developer start in a ‘draft’ state. To enable distribution actions like listing, minting, transferring, or emailing, items must be locked.

Before locking the item you are able to create, edit and delete item. After locking you can’t take some those actions anymore.

During locking, specify the maximum supply for the item (relevant for ERC1155 tokens, set to 1 for ERC721). Remember, only locked items can be:

  • Listed
  • Transferred
  • Minted
  • Emailed

To avoid action conflicts, a reservation system is used once an item is locked, ensuring smooth transactions across all distribution channels.