RUEN

← Forecaster← Forecaster

События и метаданные: рынки, которые собираются в матчи

Events & metadata: markets that group into matches

Гайд для создателей рынков: как проставить метаданные, чтобы Forecaster показал ваши рынки одной карточкой события — с исходами, коэффициентами и «ещё N линий».

A market-creator guide: set the right metadata and Forecaster renders your markets as one event card — outcomes, odds and a "+N more lines" drill-down.

Как это работает

How it works

Один матч — это несколько независимых on-chain рынков: «кто победит», «тотал», «первый Рошан». Специальных «родительских» объектов в протоколе нет — группировку задаёт создатель через поле metadata (JSON-строка в операции pm_create_market). Нода индексирует белый список ключей; клиент читает готовые индексы.

One match is several independent on-chain markets: "who wins", "total", "first Roshan". The protocol has no special "parent" objects — the creator defines grouping via the metadata field (a JSON string in pm_create_market). The node indexes a whitelist of keys; the client reads ready-made indexes.

Три ключа склейкиThree grouping keys

event — общий slug матча у всех его рынков (ключ склейки); event_title — человекочитаемое имя события на карточках; child: 1 — дочерняя линия (проп): скрыта из общих лент, видна на странице события. Рынок БЕЗ child — родительский (лицо карточки).

event — a slug shared by all markets of the match (the join key); event_title — the human-readable event name on cards; child: 1 — a child line (prop): hidden from general feeds, visible on the event page. The market WITHOUT child is the parent (the face of the card).

Пример: три рынка одного матча

Example: three markets of one match

// Родитель (винлайн) — БЕЗ child          // Parent (moneyline) — NO child
{"title":"MOUZ победит Vici Gaming?",
 "category":"esports","tags":["dota-2"],
 "event":"dota2-mouz-vg-2026-07-12",
 "event_title":"Dota 2: MOUZ vs Vici Gaming"}

// Дочерняя линия (проп)                    // Child line (prop)
{"title":"Тотал убийств больше 45.5?",
 "category":"esports","tags":["dota-2"],
 "event":"dota2-mouz-vg-2026-07-12",
 "event_title":"Dota 2: MOUZ vs Vici Gaming",
 "child":1}

Правила: одинаковый event у всех линий матча (точное совпадение строки — регистр и дефисы важны, ключ выбирайте до создания); винлайн без child; остальным линиям child: 1. Заголовок родителя со словом «победит» / «winner» / «moneyline» помогает клиенту выбрать его лицом карточки.

Rules: the same event on every line of the match (exact string match — case and dashes matter, pick the key before creating markets); the moneyline without child; every other line gets child: 1. A parent title containing "winner" / "moneyline" helps the client pick it as the card face.

Ключи, которые индексирует нода

Keys the node indexes

КлючKeyЗачемPurpose
titleВопрос рынка на карточке.The market question on the card.
category, tagsРазделы и фильтры листингов (теги — массивом).Listing sections and filters (tags as an array).
imageОбложка (URL, не хостится on-chain).Cover (URL, not hosted on-chain).
descriptionКраткие правила резолва.Short resolution rules.
event, event_titleКлюч и имя события (склейка).Event key and name (grouping).
child1 = дочерняя линия, скрыта из лент.1 = child line, hidden from feeds.
banned_jurisdictionsЮрисдикционный фильтр клиентов.Jurisdiction filter for clients.

Остальные ключи JSON не индексируются, но остаются в сыром metadata — свои клиенты могут читать их напрямую.

Other JSON keys are not indexed but stay in the raw metadata — custom clients can read them directly.

Что получается в Forecaster

What Forecaster renders

Полная версия гайда — в документации ноды: события и метаданные.

The full guide lives in the node documentation: events & metadata.