1ad3162cbuildShareDisplay() over the payload shapes the wallet sends after phantom/wallet#29343. Run locally in packages/services/share, backend PR #32370.
Badge: Lewis Hamilton #1B4AC4
{
"kind": "new_position",
"market": "prediction",
"ticker": "KXF1DRIVER-26",
"outcome": "Lewis Hamilton",
"outcomeId": "driver-hamilton",
"eventTitle": "F1 2026 Drivers' Champion",
"chanceMultiplier": "4",
"valueUsd": "25",
"priceSeriesSet": [
{
"label": "Lewis Hamilton",
"outcomeId": "driver-hamilton",
"series": [
"0.30",
"0.28"
],
"color": "#1B4AC4"
},
{
"label": "Max Verstappen",
"outcomeId": "driver-verstappen",
"series": [
"0.50",
"0.52"
],
"color": "#C41B4A"
}
]
}{
"badge": {
"text": "Lewis Hamilton",
"colorHex": "#1B4AC4"
},
"heading": {
"type": "multi_series",
"title": "F1 2026 Drivers' Champion",
"series": [
{
"text": "Lewis Hamilton"
},
{
"text": "Max Verstappen"
}
]
},
"stats": [
{
"label": "Outcome",
"value": "Lewis Hamilton"
},
{
"label": "Chance",
"value": "25%"
}
]
}Badge: Up #12B76A
{
"kind": "new_position",
"market": "prediction",
"ticker": "UpDownGe34",
"outcome": "Up",
"outcomeId": "up",
"eventTitle": "BTC above $100k?",
"chanceMultiplier": "2",
"valueUsd": "10",
"priceSeriesSet": [
{
"label": "Up",
"outcomeId": "up",
"series": [
"0.60",
"0.62"
],
"color": "#12B76A"
},
{
"label": "Down",
"outcomeId": "down",
"series": [
"0.40",
"0.38"
],
"color": "#F04438"
}
]
}{
"badge": {
"text": "Up",
"colorHex": "#12B76A"
},
"heading": {
"type": "multi_series",
"title": "BTC above $100k?",
"series": [
{
"text": "Up"
},
{
"text": "Down"
}
]
},
"stats": [
{
"label": "Outcome",
"value": "Up"
},
{
"label": "Chance",
"value": "50%"
}
]
}Badge: — none —
{
"kind": "new_position",
"market": "prediction",
"ticker": "KXUSOPENW-26",
"outcome": "Aryna Sabalenka \u2022 Yes",
"eventTitle": "US Open 2026 Women's Singles Winner",
"chanceMultiplier": "4",
"valueUsd": "25",
"priceSeriesSet": [
{
"label": "Aryna Sabalenka",
"series": [
"0.30",
"0.28"
],
"color": "#1B4AC4"
}
]
}{
"badge": null,
"heading": {
"type": "multi_series",
"title": "US Open 2026 Women's Singles Winner",
"series": [
{
"text": "Aryna Sabalenka"
}
]
},
"stats": [
{
"label": "Chance",
"value": "25%"
}
]
}Badge: — none —
{
"kind": "new_position",
"market": "prediction",
"ticker": "KXUSOPENW-26",
"outcome": "Aryna Sabalenka",
"outcomeId": "missing-id",
"eventTitle": "US Open 2026 Women's Singles Winner",
"chanceMultiplier": "4",
"valueUsd": "25",
"priceSeriesSet": [
{
"label": "Aryna Sabalenka",
"outcomeId": "sabalenka",
"series": [
"0.30"
],
"color": "#1B4AC4"
}
]
}{
"badge": null,
"heading": {
"type": "multi_series",
"title": "US Open 2026 Women's Singles Winner",
"series": [
{
"text": "Aryna Sabalenka"
}
]
},
"stats": [
{
"label": "Chance",
"value": "25%"
}
]
}Payloads carrying an outcomeId that identifies a line badge that line's label — no • Yes suffix — and take its color. Payloads identifying no line (old builds, or an id naming no line) carry no badge at all, which is the accepted break.
Note the series colour field is color, not colorHex; colorHex is the name on the served badge.