Object Display
Object Display is a template engine that controls how Sui objects appear in wallets, explorers, and other offchain applications. You define a set of key-value pairs where both keys and values are format strings. The keys represent display properties (for example, name, description, image_url, link), and the values are templates that reference fields on your object using {field_name} syntax.
When a client (wallet, explorer, marketplace) renders your object, it reads the Display definition from the chain and substitutes the template variables with the object's actual field values. For example, if an object has a field level: 5, the template Level: {level} renders as Level: 5. This enables onchain management of offchain representation without modifying the object's struct definition.
Common use cases
- NFTs and collectibles: Define
name,description,image_url, andproject_urlso wallets display rich previews. - Gaming items: Use dynamic templates that reference evolving object fields (level, rarity, stats) for composable and dynamic displays.
- Marketplace listings: Set standardized metadata fields so aggregators can index and display your objects consistently.
What happens without a Display
If no Display is defined for a type, clients fall back to rendering raw object data (struct fields and values). The object remains fully functional on Sui, but wallets and explorers cannot show human-readable names, images, or descriptions.
Object Display V2 is the current Object Display standard. Use the sui::display_registry APIs when creating or updating displays from Move code.
Object Display V1 is legacy. Existing V1 displays were migrated to V2 in a system snapshot migration. If you need to manage a migrated display, claim its DisplayCap<T> when you are ready (see Migrating to V2).
To work with Display from Move code, continue to Using Display and the other pages in this section.
What is Object Display?
Object Display is a way to render any object on Sui using templating syntax. The current standard, Display V2, uses a registry-backed model with richer templating, dynamic field access, and GraphQL support, replacing the legacy V1 event-discovery model.
Creating Displays
Learn how to create and manage Object Display V2 using the sui::display_registry APIs, understand the structural differences between V1 and V2 (N displays vs. one deterministic derived display per type), and migrate existing V1 displays to V2.
Object Display Templates
Learn how Object Display V2 templates work, including field-reference syntax and common properties like name, image_url, and link, then try them live in the interactive preview tool.