Skip to content

Draw Roulette (NFT holders)

Access prerequisites

  • Permission (module): manageToken
  • License/Feature: None specific (depends on tokenization/NFTs)
  • Access: GENERAL → Tokenization → NFTs/AssetsRoulette button on an NFT (route /roulette/:id)

What it is / when to use

A draw/giveaway tool among the holders of a specific NFT. The screen loads all owners of the asset given in the URL (/roulette/:id), cross-references the user database to display email/name, and provides a full-screen roulette that randomly selects a winner.

Use it for promotions of the type "whoever holds NFT X enters the draw for a prize". Access is from the NFT listing (Tokenization), not through a dedicated menu item.

Prerequisites

  • Permission: manageToken registered for the operator's role (dual permission: CPM enum + dynamic module in the DB). The route guard requires this module.
  • License/Feature: depends on the tenant having tokenization/NFTs enabled.
  • Dependencies on other screens: the NFT/collection must exist and have holders. Access starts from Tokenization → NFTs/Assets (/manage-assets), via a button that navigates to roulette/<assetId>.

Step by step

  1. In Tokenization → NFTs/Assets, locate the NFT and click the action that opens the Roulette.
  2. The screen lists the holders (customer, email, token, price paid).
  3. (Optional) Use Show/Hide price paid to display the amount paid by each holder.
  4. Click Spin to open the roulette in full screen and draw a winner.
  5. Click a holder to see Owner details.
  6. Use Export CSV to download the user base flagging who holds the NFT.

Filters and columns

Filter / ColumnWhat it showsData source
Customer (customer)NFT holdergetAllOwners(assetId) cross-referenced with the user database
Email (email)Holder's emailcustomer_id → user map
TokenToken/NFT identifierowner record
Price paid (price_paid)Amount the holder paidshown only with the toggle on; formatted via BigNumber (2 decimal places)
Show price paidToggles the price column on/offshowPricePaid (client)

Actions and modals

  • Spin: opens the RouletteFullScreen modal with all holders and visually draws a winner (the roulette rendering limit is handled inside the modal to support many participants).
  • Owner details: opens RouletteOwnerDetailsModalComponent with the selected holder's data.
  • Export CSV: downloads users_<date>.csv with the user base and a haveNFT column (Yes for those who hold the raffle NFT).
  • Back: returns to the previous screen (location.back()).

Business rules / cautions

Attention

  • The draw considers only the current holders of the loaded asset — anyone who sold/transferred the NFT before loading is excluded.
  • The price paid is sensitive information: keep the column hidden during public presentations.
  • The roulette result is a visual draw on the client; record the winner manually for prize purposes (the screen does not persist the result).
  • Financial values: the price paid is treated as BigNumber and displayed with 2 decimal places — non-finite values appear as "-".