Skip to main content
The Products API lets you create digital products — tickets, vouchers, perks, and NFT-backed collectibles — and distribute them to your users. Products are associated with events and support a full item lifecycle: creation, issuance, redemption, transfer, and sales tracking.

Key Concepts

Product Types

Every product has a type that defines its purpose:
TypeDescription
admissionEntry tickets for events (e.g., general admission, VIP)
presaleEarly access or presale offers
perksVouchers and extras (e.g., drink coupons, merchandise credits)

Product Configuration

Products offer fine-grained control over distribution and usage:
FieldDescriptionDefault
stockTotal available inventory. null for unlimited.Unlimited
max_per_accountMaximum items a single user can hold. null for unlimited.Unlimited
redemption_quantityNumber of times each item can be redeemed before it is fully consumed.1
is_transferableWhether items can be transferred between users.false
is_claimableWhether items can be claimed via a direct URL.false
min_rep_balanceMinimum reputation balance required to receive an item.0
max_itemsMaximum items in the collection. null for unlimited.Unlimited
activeWhether the product is currently active and items can be issued.true

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_count tracking how many times it has been redeemed
  • An is_fully_redeemed flag indicating whether all redemptions have been used
  • Owner information (user ID, email, name)
Items can be issued in bulk — up to 550 users per request — by providing user IDs, email addresses, or a mix of both.

Redemption

Redeeming an item increments its redemption_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 has is_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_account limit

NFT Minting

Products can optionally mint an NFT for each issued item by setting mint_nft to true. When enabled:
  • A metadata_uri is required — a URL pointing to a JSON file with name, image, and description fields
  • A chain must be specified: AssetHub (Polkadot) or WestendAssetHub (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_id is used as the on-chain NFT ID

Pricing and Sales

Products support optional pricing via the price 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