1package grc721v223type IGRC721CollectionMetadata interface {4 Name() string // Name returns the name of the collection.5 Symbol() string // Symbol returns the symbol of the collection.6}78type IGRC721Metadata interface {9 IGRC721CollectionMetadata10 TokenURI(tid TokenID) (string, error) // TokenURI returns the URI of a specific token.11}1213type IGRC721MetadataOnchain interface {14 IGRC721CollectionMetadata15 TokenMetadata(tid TokenID) (Metadata, error)16}1718type Trait struct {19 DisplayType string20 TraitType string21 Value string22}2324type Metadata struct {25 Image string // URL, IPFS/Arweave path, or (commonly here) a data: URI holding the image itself.26 ImageData string // Raw SVG image data, if generating images on the fly. Only used if Image is empty.27 ExternalURL string // URL shown alongside the asset on marketplaces, linking back to the collection's own site.28 Description string // Human-readable description of the item. Markdown is supported.29 Name string // Name of the item.30 Attributes []Trait // Attributes for the item, shown on marketplace pages for the item.31 BackgroundColor string // Background color of the item on marketplaces. Six-character hex, no leading #.32 AnimationURL string // URL/data URI to a multimedia attachment for the item.33 YoutubeURL string // URL to a YouTube video (only used if AnimationURL is not provided).34}35Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.