What is Object Display?
Object Display is a way to render any object on Sui using templating syntax. It renders Sui Move object values into human-readable strings, JSON, or encoded representations. A Display object defines a set of key-value pairs where both keys and values are format strings.
Object Display enables onchain management of offchain representation for a type. You can create fully composable and dynamic NFTs by substituting data for an object into a template string.
Check out the interactive preview application to see how you can use Object Display.
Current standard: Display V2
Object Display V2 is the current Object Display standard. It replaces the legacy V1 event-discovery model with a registry-backed model where each type has one deterministic Display<T> derived from the global display registry and the type.
Use the sui::display_registry APIs when creating a display from Move code. For legacy displays, use migrate_v1_to_v2 only if you are explicitly migrating a V1 display that was not already migrated by the system snapshot.
Display V2 brings a richer templating model, improved rendering pipeline, and better tooling, including:
-
Collection access: Use vectors, sets, and maps directly in your display templates.
-
Dynamic field access: Reference dynamic fields on objects in your templates.
-
Object loading: Load and reference objects when resolving display.
-
GraphQL: Rich APIs to use display as a querying tool, not just for rendering.
Read more about the templating language and try the visual display builder.