Key Concepts
Product Types
Every product has atype that defines its purpose:
Product Configuration
Products offer fine-grained control over distribution and usage:Product Items
A product item is a single instance of a product issued to a user. Each item has:- A unique sequential
item_id(also used as the NFT ID if minted) - A
redemption_counttracking how many times it has been redeemed - An
is_fully_redeemedflag indicating whether all redemptions have been used - Owner information (user ID, email, name)
Redemption
Redeeming an item increments itsredemption_count. Once the count reaches the product’s redemption_quantity, the item is marked as fully redeemed and cannot be redeemed again. This supports both single-use items (e.g., event tickets) and multi-use items (e.g., a voucher valid for 3 drinks).
Transfers
When a product hasis_transferable set to true, items can be transferred between users. Transfers are subject to the following rules:
- The sender must be the current owner of the item
- The item must not be fully redeemed
- The recipient must be a user in your project
- Self-transfers are not allowed
- The recipient must not exceed the product’s
max_per_accountlimit
NFT Minting
Products can optionally mint an NFT for each issued item by settingmint_nft to true. When enabled:
- A
metadata_uriis required — a URL pointing to a JSON file withname,image, anddescriptionfields - A
chainmust be specified:AssetHub(Polkadot) orWestendAssetHub(testnet) - Your project wallet must hold at least 2 DOT (AssetHub) or 2 WND (WestendAssetHub) to cover on-chain fees
- Each item’s sequential
item_idis used as the on-chain NFT ID
Pricing and Sales
Products support optional pricing via theprice field (a decimal string, e.g., "9.99"). When products are sold, the Sales endpoint provides paginated access to order history including order numbers, quantities, unit prices, and buyer details.
Available Endpoints
Create Product
Create a new product with type, pricing, stock limits, and optional NFT minting.
List Products
Fetch all products for your project with pagination.
Get Product
Retrieve a single product by ID with full configuration details.
Create Product Items
Issue items to up to 550 users per request by user ID or email.
Redeem Product Item
Redeem an item, incrementing its redemption count.
Transfer Product Item
Transfer an item from one user to another.
List Product Sales
Fetch paginated sales history for a product.