## Referencing Assets Applications that process messages that contain a `uint32` field that references an asset such as a cover photo or video, should interpret this value as a zero based index into an array/vector that is received external (out of band) to the protobuf message. Example in context of query-node processing the runtime event `VideoCreated` ```rust // Runtime event associated with creating a Video VideoCreated(video_id: VideoId, video: Video, assets: Vec, params: VideoCreationParameters) struct VideoCreationParameters { in_category: VideoCategoryId, // binary serialized VideoMetadata protobuf message meta: Vec, } // suppose assets is a vector of two elements. This is the "out of band" array being referenced by the VideoMetadata message assets = [ NewAsset::Uri("https://mydomain.net/thumbnail.png"), NewAsset::Upload({ content_id, ipfs_hash, size, ... }), ]; meta = VideoMetadata { ... // refers to second element: assets[1] which is being uploaded to the storage system video: 1, // refers to the first element assets[0] which is being referneced by a url string. thumbnail_photo: 0, ... }; ```