본문으로 건너뛰기

Rich Media and Randomness

Mirage Garden v1.2 supports image, animation, audio, and markdown object media. The same seed model that selects visual traits can also drive compact music, writing, game state, access state, and other rich media.

The important constraint is storage: v1.2 assets are fully on-chain and each uploaded item is capped at 50 KB. For rich media, that usually means storing small instructions, snippets, or components instead of full finished files.

Music

A music soToken should usually store deterministic music ingredients, not a full song.

Useful slots include:

  • scale or mode
  • tempo range
  • instrument or synth patch name
  • rhythm pattern
  • chord movement
  • lead note or motif
  • short audio sample
  • unlock text for a larger off-chain experience

For example, a renderer can use the object seed to choose a scale, lead motif, and rhythm pattern from weighted on-chain tables. The object metadata can expose those choices as traits, while a viewer or partner app interprets them into sound.

Rich Media

Rich media can be treated the same way: store compact, deterministic pieces and let the seed assemble them.

Examples:

  • markdown lore cards
  • game character stats
  • quest state
  • access badges
  • tiny audio snippets
  • APNG or GIF-style animation frames
  • SVG scenes assembled from weighted parts

Markdown is stored and rendered safely; uploaded markdown is content, not executable code.

Randomness

Object seeds are deterministic at birth. They are useful for stable trait selection, not for gambling, hidden odds manipulation, or post-launch changes.

Creators should freeze the media table before launch and treat the seed plus frozen asset table as the public rarity source. If a future hook, game, or integration adds extra context, that context should be part of the birth path so collectors can understand why the object was born the way it was.

Practical Guidance

  • Keep assets small and simulation-friendly.
  • Prefer weighted slots over large complete files.
  • Put important traits in metadata so marketplaces and integrations can read them.
  • Use markdown for readable state and compact lore.
  • Use audio uploads for short samples, not full tracks.
  • Use external viewers only as interpreters; the core object data should still be understandable from the on-chain metadata.