{ "catalogVersion": "2026.0.1", "contentType": "fan-passport.challenge-catalog", "tournamentId": "fifa-world-cup-2026", "ruleSchemaVersion": "1.0.0", "updatedAt": "2026-01-15T00:00:00Z", "defaultTiming": { "startAt": "2026-06-01T00:00:00Z", "endAt": "2026-07-20T23:59:59Z", "timezone": "UTC" }, "challengeSets": [ { "id": "set_onboarding", "title": "Passport Kickoff", "description": "Fast first-session goals that teach fans how the passport works.", "categories": ["onboarding"], "phase": ["pre_tournament", "group_stage", "knockout_stage"], "unlockStrategy": "available_to_all" }, { "id": "set_daily_return", "title": "Daily Return Rituals", "description": "Trivia, check-ins, and streak loops designed to bring fans back every day.", "categories": ["daily", "quiz"], "phase": ["group_stage", "knockout_stage", "final"], "unlockStrategy": "available_to_all" }, { "id": "set_team_journeys", "title": "Team Journeys", "description": "Watch, follow, and complete the tournament stories of key nations.", "categories": ["watch", "collection"], "phase": ["group_stage", "knockout_stage", "final"], "unlockStrategy": "available_after_team_selection" }, { "id": "set_group_completion", "title": "Complete Every Group", "description": "Collect teams and check in across Groups A-H.", "categories": ["collection", "watch"], "phase": ["group_stage"], "unlockStrategy": "available_when_draw_confirmed" }, { "id": "set_stadium_collectors", "title": "Host Stadium Passport", "description": "Collect stamps, postcards, and trivia from all World Cup 2026 venues.", "categories": ["stadium", "collection", "quiz"], "phase": ["pre_tournament", "group_stage", "knockout_stage", "final"], "unlockStrategy": "available_to_all" }, { "id": "set_predictions", "title": "Prediction Arena", "description": "Pre-match and tournament prediction challenges, including upsets and giant killings.", "categories": ["prediction"], "phase": ["pre_tournament", "group_stage", "knockout_stage", "final"], "unlockStrategy": "available_to_all" }, { "id": "set_sticker_albums", "title": "Virtual Sticker Albums", "description": "Album-completion objectives for teams, stadiums, matchdays, rares, and final foils.", "categories": ["sticker", "collection"], "phase": ["pre_tournament", "group_stage", "knockout_stage", "final", "post_tournament"], "unlockStrategy": "available_to_all" }, { "id": "set_memories", "title": "Tournament Memories", "description": "Prompted fan memories that turn the passport into a personal World Cup diary.", "categories": ["memory"], "phase": ["group_stage", "knockout_stage", "final", "post_tournament"], "unlockStrategy": "available_to_all" }, { "id": "set_knockout_moments", "title": "Knockout Moments", "description": "High-intensity check-ins and predictions for the knockout rounds and final.", "categories": ["watch", "prediction", "memory"], "phase": ["round_of_32", "round_of_16", "quarter_final", "semi_final", "third_place_playoff", "final"], "unlockStrategy": "available_when_bracket_confirmed" }, { "id": "set_global_mastery", "title": "Global Passport Mastery", "description": "Long-form completionist goals for fans who explore the whole tournament.", "categories": ["collection", "watch", "quiz", "prediction", "sticker", "memory"], "phase": ["group_stage", "knockout_stage", "final", "post_tournament"], "unlockStrategy": "available_to_all" } ], "rewardTables": { "difficultyDefaults": { "starter": { "xp": 100, "coins": 25 }, "easy": { "xp": 200, "coins": 50 }, "medium": { "xp": 400, "coins": 125 }, "hard": { "xp": 800, "coins": 250 }, "elite": { "xp": 1500, "coins": 500 } }, "stickerPackDefaults": { "starter": { "quantity": 1, "minimumRarity": "common" }, "standard": { "quantity": 2, "minimumRarity": "common" }, "premium": { "quantity": 3, "minimumRarity": "rare" }, "legendary": { "quantity": 5, "minimumRarity": "epic" } } }, "ruleEvents": [ "passport_created", "fan_team_selected", "profile_completed", "sticker_pack_opened", "sticker_collected", "sticker_swapped", "prediction_submitted", "prediction_settled", "quiz_answered", "quiz_completed", "app_opened", "match_check_in", "stadium_stamp_collected", "memory_created", "challenge_completed" ], "challenges": [ { "id": "chal_onboarding_create_passport", "setId": "set_onboarding", "title": "Open Your Fan Passport", "description": "Create a Fan Passport and receive your first official tournament stamp.", "category": "onboarding", "difficulty": "starter", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "passport_created", "target": { "count": 1 }, "distinctBy": "userId" } ], "rewards": { "xp": 100, "coins": 25, "badges": ["badge_passport_opened"], "stickerPacks": [{ "setId": "welcome-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_passport_opened"], "stickerSets": ["welcome-2026"] }, "tags": ["onboarding", "passport", "first-session"], "riskFlags": [] }, { "id": "chal_onboarding_choose_team", "setId": "set_onboarding", "title": "Pick Your Flag", "description": "Choose the national team you will follow most closely during the tournament.", "category": "onboarding", "difficulty": "starter", "repeatability": "once", "phase": ["pre_tournament", "group_stage"], "rules": [ { "type": "event_count", "event": "fan_team_selected", "target": { "count": 1 }, "distinctBy": "teamId" } ], "rewards": { "xp": 100, "coins": 25, "badges": ["badge_flag_chosen"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_flag_chosen"], "stickerSets": ["team-crests-2026"] }, "tags": ["onboarding", "team-selection"], "riskFlags": [] }, { "id": "chal_onboarding_first_sticker", "setId": "set_onboarding", "title": "First Sticker Pull", "description": "Open your first virtual sticker pack.", "category": "sticker", "difficulty": "starter", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "sticker_pack_opened", "target": { "count": 1 }, "distinctBy": "packOpenId" } ], "rewards": { "xp": 100, "coins": 25, "badges": ["badge_first_sticker_pack"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_first_sticker_pack"], "stickerSets": ["team-crests-2026"] }, "tags": ["onboarding", "stickers"], "riskFlags": [] }, { "id": "chal_onboarding_first_prediction", "setId": "set_onboarding", "title": "First Prediction Locked", "description": "Submit any match or tournament prediction before its lock time.", "category": "prediction", "difficulty": "starter", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "prediction_submitted", "target": { "count": 1 }, "distinctBy": "predictionId", "scope": { "mustBeBeforeLock": true } } ], "rewards": { "xp": 125, "coins": 30, "badges": ["badge_first_prediction"], "stickerPacks": [] }, "contentRefs": { "achievements": ["badge_first_prediction"] }, "tags": ["onboarding", "predictions"], "riskFlags": ["provider_dependent"] }, { "id": "chal_onboarding_first_memory", "setId": "set_onboarding", "title": "Save Your First Memory", "description": "Add a journal entry, reaction, or photo memory to your passport.", "category": "memory", "difficulty": "starter", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final", "post_tournament"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "distinctBy": "memoryId" } ], "rewards": { "xp": 125, "coins": 30, "badges": ["badge_first_memory"], "stickerPacks": [] }, "contentRefs": { "achievements": ["badge_first_memory"] }, "tags": ["onboarding", "memories"], "riskFlags": [] }, { "id": "chal_onboarding_complete_profile", "setId": "set_onboarding", "title": "Complete Your Fan Profile", "description": "Add your display name, country, favourite team, and privacy preference.", "category": "onboarding", "difficulty": "starter", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "profile_completed", "target": { "count": 1 }, "distinctBy": "userId", "scope": { "requiredFields": ["displayName", "countryCode", "fanTeamId", "privacyTier"] } } ], "rewards": { "xp": 150, "coins": 50, "badges": ["badge_profile_complete"], "stickerPacks": [] }, "contentRefs": { "achievements": ["badge_profile_complete"] }, "tags": ["onboarding", "profile"], "riskFlags": [] }, { "id": "chal_daily_trivia_today", "setId": "set_daily_return", "title": "Daily World Cup Trivia", "description": "Answer the daily World Cup trivia question.", "category": "quiz", "difficulty": "easy", "repeatability": "daily", "phase": ["group_stage", "knockout_stage", "final"], "timing": { "startAt": "2026-06-11T00:00:00Z", "endAt": "2026-07-19T23:59:59Z", "cadence": "daily", "timezone": "UTC" }, "rules": [ { "type": "event_count", "event": "quiz_answered", "target": { "count": 1 }, "distinctBy": "quizId", "scope": { "quizType": "daily_trivia" } } ], "rewards": { "xp": 150, "coins": 40, "badges": [], "stickerPacks": [] }, "contentRefs": { "quizSets": ["daily-world-cup-trivia"] }, "tags": ["daily", "trivia", "return-loop"], "riskFlags": ["anti_spoiler"] }, { "id": "chal_daily_trivia_three_day_streak", "setId": "set_daily_return", "title": "Three-Day Trivia Streak", "description": "Complete daily trivia on three consecutive tournament days.", "category": "quiz", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "streak", "event": "quiz_completed", "target": { "days": 3 }, "distinctBy": "calendarDay", "scope": { "quizType": "daily_trivia" } } ], "rewards": { "xp": 350, "coins": 100, "badges": ["badge_trivia_three_day_streak"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_trivia_three_day_streak"], "stickerSets": ["host-city-icons-2026"] }, "tags": ["daily", "trivia", "streak"], "riskFlags": [] }, { "id": "chal_daily_trivia_seven_day_streak", "setId": "set_daily_return", "title": "Seven-Day Trivia Streak", "description": "Complete daily trivia on seven consecutive tournament days.", "category": "quiz", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "streak", "event": "quiz_completed", "target": { "days": 7 }, "distinctBy": "calendarDay", "scope": { "quizType": "daily_trivia" } } ], "rewards": { "xp": 800, "coins": 250, "badges": ["badge_trivia_seven_day_streak"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_trivia_seven_day_streak"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["daily", "trivia", "streak"], "riskFlags": [] }, { "id": "chal_daily_group_stage_return", "setId": "set_daily_return", "title": "Group Stage Daily Return", "description": "Open your passport on ten different group-stage days.", "category": "daily", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "event_count", "event": "app_opened", "target": { "count": 10 }, "distinctBy": "calendarDay", "scope": { "stage": "group_stage" } } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_stage_regular"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_group_stage_regular"], "stickerSets": ["team-crests-2026"] }, "tags": ["daily", "group-stage", "retention"], "riskFlags": [] }, { "id": "chal_daily_knockout_return", "setId": "set_daily_return", "title": "Knockout Daily Return", "description": "Open your passport on five different knockout-round days.", "category": "daily", "difficulty": "medium", "repeatability": "once", "phase": ["round_of_32", "round_of_16", "quarter_final", "semi_final", "third_place_playoff", "final"], "rules": [ { "type": "event_count", "event": "app_opened", "target": { "count": 5 }, "distinctBy": "calendarDay", "scope": { "stageGroup": "knockout" } } ], "rewards": { "xp": 500, "coins": 150, "badges": ["badge_knockout_regular"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_knockout_regular"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["daily", "knockout", "retention"], "riskFlags": [] }, { "id": "chal_daily_perfect_trivia_round", "setId": "set_daily_return", "title": "Perfect Trivia Round", "description": "Answer every question correctly in a five-question daily trivia round.", "category": "quiz", "difficulty": "medium", "repeatability": "weekly", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "quiz_score", "event": "quiz_completed", "target": { "minimumCorrect": 5, "questions": 5 }, "scope": { "quizType": "daily_trivia" } } ], "rewards": { "xp": 300, "coins": 100, "badges": ["badge_perfect_trivia_round"], "stickerPacks": [] }, "contentRefs": { "achievements": ["badge_perfect_trivia_round"] }, "tags": ["quiz", "skill"], "riskFlags": ["anti_spoiler"] }, { "id": "chal_daily_host_city_specialist", "setId": "set_daily_return", "title": "Host City Specialist", "description": "Correctly answer ten host-city trivia questions across the tournament.", "category": "quiz", "difficulty": "medium", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "quiz_score", "event": "quiz_answered", "target": { "minimumCorrect": 10 }, "scope": { "category": "host_city" }, "distinctBy": "quizQuestionId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_host_city_specialist"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 2, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_host_city_specialist"], "stickerSets": ["host-city-icons-2026"] }, "tags": ["quiz", "host-cities", "stadiums"], "riskFlags": [] }, { "id": "chal_daily_fourteen_day_streak", "setId": "set_daily_return", "title": "14-Day Passport Streak", "description": "Open your passport on fourteen consecutive tournament days.", "category": "daily", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "streak", "event": "app_opened", "target": { "days": 14 }, "distinctBy": "calendarDay" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_fourteen_day_passport_streak"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_fourteen_day_passport_streak"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["daily", "streak", "retention"], "riskFlags": [] }, { "id": "chal_team_england_every_match", "setId": "set_team_journeys", "title": "Watch Every England Match", "description": "Check in for every England fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "england" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_england_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["england"], "achievements": ["badge_watch_england_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "england", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_united_states_every_match", "setId": "set_team_journeys", "title": "Watch Every United States Match", "description": "Check in for every United States fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "united-states" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_united_states_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["united-states"], "achievements": ["badge_watch_united_states_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "united-states", "watch", "host-nation"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_mexico_every_match", "setId": "set_team_journeys", "title": "Watch Every Mexico Match", "description": "Check in for every Mexico fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "mexico" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_mexico_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["mexico"], "achievements": ["badge_watch_mexico_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "mexico", "watch", "host-nation"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_canada_every_match", "setId": "set_team_journeys", "title": "Watch Every Canada Match", "description": "Check in for every Canada fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "canada" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_canada_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["canada"], "achievements": ["badge_watch_canada_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "canada", "watch", "host-nation"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_brazil_every_match", "setId": "set_team_journeys", "title": "Watch Every Brazil Match", "description": "Check in for every Brazil fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "brazil" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_brazil_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["brazil"], "achievements": ["badge_watch_brazil_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "brazil", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_argentina_every_match", "setId": "set_team_journeys", "title": "Watch Every Argentina Match", "description": "Check in for every Argentina fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "argentina" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_argentina_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["argentina"], "achievements": ["badge_watch_argentina_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "argentina", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_france_every_match", "setId": "set_team_journeys", "title": "Watch Every France Match", "description": "Check in for every France fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "france" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_france_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["france"], "achievements": ["badge_watch_france_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "france", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_spain_every_match", "setId": "set_team_journeys", "title": "Watch Every Spain Match", "description": "Check in for every Spain fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "spain" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_spain_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["spain"], "achievements": ["badge_watch_spain_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "spain", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_germany_every_match", "setId": "set_team_journeys", "title": "Watch Every Germany Match", "description": "Check in for every Germany fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "germany" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_germany_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["germany"], "achievements": ["badge_watch_germany_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "germany", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_portugal_every_match", "setId": "set_team_journeys", "title": "Watch Every Portugal Match", "description": "Check in for every Portugal fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "portugal" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_portugal_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["portugal"], "achievements": ["badge_watch_portugal_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "portugal", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_japan_every_match", "setId": "set_team_journeys", "title": "Watch Every Japan Match", "description": "Check in for every Japan fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "japan" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_japan_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["japan"], "achievements": ["badge_watch_japan_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "japan", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_team_morocco_every_match", "setId": "set_team_journeys", "title": "Watch Every Morocco Match", "description": "Check in for every Morocco fixture that becomes available during their World Cup journey.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "dynamic_collection", "event": "match_check_in", "target": { "mode": "all_available", "entity": "matches_for_team" }, "scope": { "teamId": "morocco" }, "distinctBy": "matchId", "verification": ["stadium_check_in", "broadcast_check_in", "post_match_recap_claim"] } ], "rewards": { "xp": 900, "coins": 350, "badges": ["badge_watch_morocco_all_matches"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["morocco"], "achievements": ["badge_watch_morocco_all_matches"], "stickerSets": ["team-crests-2026"] }, "tags": ["team-journey", "morocco", "watch"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_a_complete", "setId": "set_group_completion", "title": "Complete Group A", "description": "Collect every Group A team crest and check in to at least two Group A matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-a", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-a", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_a_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-a"], "achievements": ["badge_group_a_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-a", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_b_complete", "setId": "set_group_completion", "title": "Complete Group B", "description": "Collect every Group B team crest and check in to at least two Group B matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-b", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-b", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_b_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-b"], "achievements": ["badge_group_b_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-b", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_c_complete", "setId": "set_group_completion", "title": "Complete Group C", "description": "Collect every Group C team crest and check in to at least two Group C matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-c", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-c", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_c_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-c"], "achievements": ["badge_group_c_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-c", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_d_complete", "setId": "set_group_completion", "title": "Complete Group D", "description": "Collect every Group D team crest and check in to at least two Group D matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-d", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-d", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_d_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-d"], "achievements": ["badge_group_d_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-d", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_e_complete", "setId": "set_group_completion", "title": "Complete Group E", "description": "Collect every Group E team crest and check in to at least two Group E matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-e", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-e", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_e_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-e"], "achievements": ["badge_group_e_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-e", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_f_complete", "setId": "set_group_completion", "title": "Complete Group F", "description": "Collect every Group F team crest and check in to at least two Group F matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-f", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-f", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_f_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-f"], "achievements": ["badge_group_f_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-f", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_g_complete", "setId": "set_group_completion", "title": "Complete Group G", "description": "Collect every Group G team crest and check in to at least two Group G matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-g", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-g", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_g_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-g"], "achievements": ["badge_group_g_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-g", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_h_complete", "setId": "set_group_completion", "title": "Complete Group H", "description": "Collect every Group H team crest and check in to at least two Group H matches.", "category": "collection", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_group_teams" }, "scope": { "groupId": "group-h", "setRole": "team_crests" }, "distinctBy": "teamId" }, { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "groupId": "group-h", "stage": "group_stage" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_group_h_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "groups": ["group-h"], "achievements": ["badge_group_h_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "group-h", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_group_all_complete", "setId": "set_group_completion", "title": "Complete Every Group", "description": "Complete Groups A through H.", "category": "collection", "difficulty": "elite", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "challenge_completion_count", "event": "challenge_completed", "target": { "count": 8 }, "scope": { "challengeIds": ["chal_group_a_complete", "chal_group_b_complete", "chal_group_c_complete", "chal_group_d_complete", "chal_group_e_complete", "chal_group_f_complete", "chal_group_g_complete", "chal_group_h_complete"] }, "distinctBy": "challengeId" } ], "rewards": { "xp": 1600, "coins": 600, "badges": ["badge_all_groups_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 5, "minimumRarity": "epic" }] }, "contentRefs": { "groups": ["group-a", "group-b", "group-c", "group-d", "group-e", "group-f", "group-g", "group-h"], "achievements": ["badge_all_groups_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["group", "completionist", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_first_stamp", "setId": "set_stadium_collectors", "title": "First Stadium Stamp", "description": "Collect your first stadium stamp from any World Cup 2026 venue page or match check-in.", "category": "stadium", "difficulty": "easy", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "stadium_stamp_collected", "target": { "count": 1 }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 200, "coins": 50, "badges": ["badge_first_stadium_stamp"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_first_stadium_stamp"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "collection"], "riskFlags": [] }, { "id": "chal_stadium_collect_all", "setId": "set_stadium_collectors", "title": "Collect All Stadiums", "description": "Collect a passport stamp for every World Cup 2026 stadium.", "category": "stadium", "difficulty": "elite", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final", "post_tournament"], "rules": [ { "type": "dynamic_collection", "event": "stadium_stamp_collected", "target": { "mode": "all_available", "entity": "tournament_stadiums" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 1500, "coins": 500, "badges": ["badge_all_stadiums_collected"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 5, "minimumRarity": "epic" }] }, "contentRefs": { "achievements": ["badge_all_stadiums_collected"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "completionist", "collection"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_usa_tour", "setId": "set_stadium_collectors", "title": "USA Host Stadium Tour", "description": "Collect stamps from eight United States host stadiums.", "category": "stadium", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "check_in_collection", "event": "stadium_stamp_collected", "target": { "count": 8 }, "scope": { "hostCountry": "USA" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 850, "coins": 275, "badges": ["badge_usa_stadium_tour"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_usa_stadium_tour"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "usa", "host-country"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_mexico_tour", "setId": "set_stadium_collectors", "title": "Mexico Host Stadium Tour", "description": "Collect stamps from all Mexico host stadiums.", "category": "stadium", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "dynamic_collection", "event": "stadium_stamp_collected", "target": { "mode": "all_available", "entity": "host_country_stadiums" }, "scope": { "hostCountry": "MEX" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 500, "coins": 150, "badges": ["badge_mexico_stadium_tour"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_mexico_stadium_tour"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "mexico", "host-country"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_canada_tour", "setId": "set_stadium_collectors", "title": "Canada Host Stadium Tour", "description": "Collect stamps from all Canada host stadiums.", "category": "stadium", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "dynamic_collection", "event": "stadium_stamp_collected", "target": { "mode": "all_available", "entity": "host_country_stadiums" }, "scope": { "hostCountry": "CAN" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_canada_stadium_tour"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_canada_stadium_tour"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "canada", "host-country"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_three_country_tour", "setId": "set_stadium_collectors", "title": "Three-Country Host Tour", "description": "Collect at least one stadium stamp from Canada, Mexico, and the United States.", "category": "stadium", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "check_in_collection", "event": "stadium_stamp_collected", "target": { "count": 3, "groupBy": "hostCountry" }, "scope": { "hostCountries": ["CAN", "MEX", "USA"] }, "distinctBy": "hostCountry" } ], "rewards": { "xp": 800, "coins": 250, "badges": ["badge_three_country_host_tour"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_three_country_host_tour"], "stickerSets": ["host-city-icons-2026"] }, "tags": ["stadiums", "host-countries", "travel"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_opening_venue_stamp", "setId": "set_stadium_collectors", "title": "Opening Match Venue Stamp", "description": "Collect the stamp for the stadium hosting the opening match.", "category": "stadium", "difficulty": "easy", "repeatability": "once", "phase": ["pre_tournament", "group_stage"], "rules": [ { "type": "event_count", "event": "stadium_stamp_collected", "target": { "count": 1 }, "scope": { "matchRole": "opening_match" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 250, "coins": 75, "badges": ["badge_opening_venue_stamp"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_opening_venue_stamp"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "opening-match"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_final_venue_stamp", "setId": "set_stadium_collectors", "title": "Final Venue Stamp", "description": "Collect the stamp for the stadium hosting the World Cup Final.", "category": "stadium", "difficulty": "medium", "repeatability": "once", "phase": ["knockout_stage", "final"], "rules": [ { "type": "event_count", "event": "stadium_stamp_collected", "target": { "count": 1 }, "scope": { "matchRole": "final" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 400, "coins": 125, "badges": ["badge_final_venue_stamp"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_final_venue_stamp"], "stickerSets": ["finals-foils-2026"] }, "tags": ["stadiums", "final"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_stadium_trivia_tour", "setId": "set_stadium_collectors", "title": "Stadium Trivia Tour", "description": "Correctly answer one stadium trivia question for each host venue.", "category": "quiz", "difficulty": "hard", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "quiz_score", "event": "quiz_answered", "target": { "mode": "all_available", "entity": "tournament_stadiums" }, "scope": { "category": "stadium", "mustBeCorrect": true }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_stadium_trivia_tour"], "stickerPacks": [{ "setId": "stadium-postcards-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_stadium_trivia_tour"], "stickerSets": ["stadium-postcards-2026"] }, "tags": ["stadiums", "quiz", "host-cities"], "riskFlags": ["anti_spoiler"] }, { "id": "chal_prediction_giant_killing", "setId": "set_predictions", "title": "Predict a Giant Killing", "description": "Correctly predict an upset where a lower-ranked team beats a much higher-ranked opponent.", "category": "prediction", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "round_of_32", "round_of_16"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_giant_killing", "target": { "count": 1, "outcome": "correct" }, "scope": { "minimumRankGap": 20, "winnerMustBeLowerRanked": true }, "distinctBy": "matchId" } ], "rewards": { "xp": 1000, "coins": 350, "badges": ["badge_giant_killing_predictor"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "predictions": ["pred_template_giant_killing"], "achievements": ["badge_giant_killing_predictor"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["predictions", "upset", "giant-killing"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_group_winner", "setId": "set_predictions", "title": "Pick a Group Winner", "description": "Correctly predict the winner of any World Cup group before the group begins.", "category": "prediction", "difficulty": "medium", "repeatability": "once", "phase": ["pre_tournament", "group_stage"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_group_winner", "target": { "count": 1, "outcome": "correct" }, "scope": { "lockBeforeFirstGroupMatch": true }, "distinctBy": "groupId" } ], "rewards": { "xp": 450, "coins": 150, "badges": ["badge_group_winner_predictor"], "stickerPacks": [] }, "contentRefs": { "predictions": ["pred_template_group_winner"], "achievements": ["badge_group_winner_predictor"] }, "tags": ["predictions", "groups"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_exact_score", "setId": "set_predictions", "title": "Exact Score Hero", "description": "Correctly predict the exact score of any match.", "category": "prediction", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_exact_score", "target": { "count": 1, "outcome": "correct" }, "distinctBy": "matchId" } ], "rewards": { "xp": 800, "coins": 250, "badges": ["badge_exact_score_hero"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "predictions": ["pred_template_exact_score"], "achievements": ["badge_exact_score_hero"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["predictions", "exact-score"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_golden_boot", "setId": "set_predictions", "title": "Golden Boot Prophet", "description": "Correctly predict the tournament Golden Boot winner before the knockout rounds begin.", "category": "prediction", "difficulty": "elite", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "post_tournament"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_golden_boot", "target": { "count": 1, "outcome": "correct" }, "scope": { "lockBeforeStage": "round_of_32" }, "distinctBy": "playerId" } ], "rewards": { "xp": 1500, "coins": 500, "badges": ["badge_golden_boot_prophet"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 2, "minimumRarity": "epic" }] }, "contentRefs": { "predictions": ["pred_template_golden_boot"], "achievements": ["badge_golden_boot_prophet"], "stickerSets": ["finals-foils-2026"] }, "tags": ["predictions", "awards", "golden-boot"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_clean_sheet", "setId": "set_predictions", "title": "Clean Sheet Caller", "description": "Correctly predict a team to keep a clean sheet.", "category": "prediction", "difficulty": "medium", "repeatability": "weekly", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_clean_sheet", "target": { "count": 1, "outcome": "correct" }, "distinctBy": "matchId" } ], "rewards": { "xp": 350, "coins": 100, "badges": ["badge_clean_sheet_caller"], "stickerPacks": [] }, "contentRefs": { "predictions": ["pred_template_clean_sheet"], "achievements": ["badge_clean_sheet_caller"] }, "tags": ["predictions", "defence"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_penalty_shootout", "setId": "set_predictions", "title": "Penalty Shootout Oracle", "description": "Correctly predict a knockout match that goes to penalties.", "category": "prediction", "difficulty": "hard", "repeatability": "once", "phase": ["round_of_32", "round_of_16", "quarter_final", "semi_final", "final"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_penalty_shootout", "target": { "count": 1, "outcome": "correct" }, "scope": { "stageGroup": "knockout" }, "distinctBy": "matchId" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_penalty_shootout_oracle"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "predictions": ["pred_template_penalty_shootout"], "achievements": ["badge_penalty_shootout_oracle"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["predictions", "knockout", "penalties"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_comeback_win", "setId": "set_predictions", "title": "Comeback King", "description": "Correctly predict a match winner in a game where that team trails before winning.", "category": "prediction", "difficulty": "elite", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_match_winner", "target": { "count": 1, "outcome": "correct" }, "scope": { "winnerTrailedDuringMatch": true }, "distinctBy": "matchId" } ], "rewards": { "xp": 1300, "coins": 450, "badges": ["badge_comeback_king"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 3, "minimumRarity": "epic" }] }, "contentRefs": { "predictions": ["pred_template_match_winner"], "achievements": ["badge_comeback_king"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["predictions", "comeback"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_dark_horse_semi", "setId": "set_predictions", "title": "Dark Horse Semi-Finalist", "description": "Correctly predict a team outside the top seeds to reach the semi-finals.", "category": "prediction", "difficulty": "elite", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "semi_final"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_dark_horse_semi_finalist", "target": { "count": 1, "outcome": "correct" }, "scope": { "seedBand": "outside_top_16" }, "distinctBy": "teamId" } ], "rewards": { "xp": 1600, "coins": 550, "badges": ["badge_dark_horse_spotter"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 2, "minimumRarity": "epic" }] }, "contentRefs": { "predictions": ["pred_template_dark_horse_semi_finalist"], "achievements": ["badge_dark_horse_spotter"], "stickerSets": ["finals-foils-2026"] }, "tags": ["predictions", "dark-horse", "semi-final"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_host_nation_upset", "setId": "set_predictions", "title": "Host Nation Upset Alert", "description": "Correctly predict Canada, Mexico, or the United States to beat a higher-ranked opponent.", "category": "prediction", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_host_upset", "target": { "count": 1, "outcome": "correct" }, "scope": { "winnerTeamIds": ["canada", "mexico", "united-states"], "winnerMustBeLowerRanked": true }, "distinctBy": "matchId" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_host_upset_predictor"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["canada", "mexico", "united-states"], "predictions": ["pred_template_host_upset"], "achievements": ["badge_host_upset_predictor"], "stickerSets": ["host-city-icons-2026"] }, "tags": ["predictions", "host-nations", "upset"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_finalist_forecast", "setId": "set_predictions", "title": "Finalist Forecast", "description": "Correctly predict one team that reaches the World Cup Final.", "category": "prediction", "difficulty": "hard", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "final"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_finalist", "target": { "count": 1, "outcome": "correct" }, "distinctBy": "teamId" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_finalist_forecaster"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "predictions": ["pred_template_finalist"], "achievements": ["badge_finalist_forecaster"], "stickerSets": ["finals-foils-2026"] }, "tags": ["predictions", "final"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_perfect_matchday", "setId": "set_predictions", "title": "Perfect Matchday Predictions", "description": "Get five predictions correct on the same matchday.", "category": "prediction", "difficulty": "elite", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "prediction_batch_score", "event": "prediction_settled", "target": { "correctInSingleMatchday": 5 }, "distinctBy": "predictionId" } ], "rewards": { "xp": 1400, "coins": 500, "badges": ["badge_perfect_matchday_predictor"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 4, "minimumRarity": "epic" }] }, "contentRefs": { "achievements": ["badge_perfect_matchday_predictor"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["predictions", "matchday", "skill"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_prediction_first_goal", "setId": "set_predictions", "title": "First Goal Marker", "description": "Correctly predict the team that scores first in any match.", "category": "prediction", "difficulty": "medium", "repeatability": "weekly", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "prediction_outcome", "event": "prediction_settled", "predictionTemplateId": "pred_template_first_goal_team", "target": { "count": 1, "outcome": "correct" }, "distinctBy": "matchId" } ], "rewards": { "xp": 350, "coins": 100, "badges": ["badge_first_goal_marker"], "stickerPacks": [] }, "contentRefs": { "predictions": ["pred_template_first_goal_team"], "achievements": ["badge_first_goal_marker"] }, "tags": ["predictions", "first-goal"], "riskFlags": ["requires_live_result", "provider_dependent"] }, { "id": "chal_sticker_team_crest_album", "setId": "set_sticker_albums", "title": "Complete the Team Crest Album", "description": "Collect one crest sticker for every qualified team.", "category": "sticker", "difficulty": "elite", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "post_tournament"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "qualified_teams" }, "scope": { "setId": "team-crests-2026" }, "distinctBy": "teamId" } ], "rewards": { "xp": 1600, "coins": 550, "badges": ["badge_team_crest_album_complete"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 2, "minimumRarity": "epic" }] }, "contentRefs": { "achievements": ["badge_team_crest_album_complete"], "stickerSets": ["team-crests-2026", "finals-foils-2026"] }, "tags": ["stickers", "album", "teams", "completionist"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_sticker_stadium_postcards", "setId": "set_sticker_albums", "title": "Complete the Stadium Postcards", "description": "Collect every World Cup 2026 stadium postcard sticker.", "category": "sticker", "difficulty": "hard", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage", "post_tournament"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "tournament_stadiums" }, "scope": { "setId": "stadium-postcards-2026" }, "distinctBy": "stadiumId" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_stadium_postcards_complete"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_stadium_postcards_complete"], "stickerSets": ["stadium-postcards-2026", "host-city-icons-2026"] }, "tags": ["stickers", "stadiums", "album"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_sticker_host_nation_pages", "setId": "set_sticker_albums", "title": "Complete the Host Nation Pages", "description": "Complete the sticker pages for Canada, Mexico, and the United States.", "category": "sticker", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "post_tournament"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "count": 3, "entity": "team_pages" }, "scope": { "teamIds": ["canada", "mexico", "united-states"], "setRole": "team_page" }, "distinctBy": "teamId" } ], "rewards": { "xp": 850, "coins": 275, "badges": ["badge_host_nation_pages_complete"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["canada", "mexico", "united-states"], "achievements": ["badge_host_nation_pages_complete"], "stickerSets": ["host-city-icons-2026"] }, "tags": ["stickers", "host-nations", "album"], "riskFlags": [] }, { "id": "chal_sticker_england_page", "setId": "set_sticker_albums", "title": "Complete the England Sticker Page", "description": "Collect every England sticker in the team-page set.", "category": "sticker", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "post_tournament"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "mode": "all_available", "entity": "team_page_stickers" }, "scope": { "teamId": "england", "setRole": "team_page" }, "distinctBy": "stickerId" } ], "rewards": { "xp": 500, "coins": 150, "badges": ["badge_england_sticker_page_complete"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "teams": ["england"], "achievements": ["badge_england_sticker_page_complete"], "stickerSets": ["team-crests-2026"] }, "tags": ["stickers", "england", "album"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_sticker_rare_hunter", "setId": "set_sticker_albums", "title": "Rare Sticker Hunter", "description": "Collect ten unique rare-or-better stickers.", "category": "sticker", "difficulty": "medium", "repeatability": "once", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "sticker_collected", "target": { "count": 10 }, "scope": { "rarities": ["rare", "epic", "legendary"] }, "distinctBy": "stickerId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_rare_sticker_hunter"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_rare_sticker_hunter"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["stickers", "rare", "collection"], "riskFlags": [] }, { "id": "chal_sticker_swap_ten_duplicates", "setId": "set_sticker_albums", "title": "Swap Ten Duplicates", "description": "Trade or recycle ten duplicate stickers through the album system.", "category": "sticker", "difficulty": "easy", "repeatability": "weekly", "phase": ["pre_tournament", "group_stage", "knockout_stage"], "rules": [ { "type": "event_count", "event": "sticker_swapped", "target": { "count": 10 }, "distinctBy": "swapId" } ], "rewards": { "xp": 250, "coins": 75, "badges": ["badge_duplicate_swapper"], "stickerPacks": [{ "setId": "team-crests-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_duplicate_swapper"], "stickerSets": ["team-crests-2026"] }, "tags": ["stickers", "swap", "economy"], "riskFlags": [] }, { "id": "chal_sticker_matchday_moments", "setId": "set_sticker_albums", "title": "Matchday Moments Album", "description": "Collect twenty unique Matchday Moments stickers.", "category": "sticker", "difficulty": "hard", "repeatability": "once", "phase": ["group_stage", "knockout_stage", "final", "post_tournament"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "count": 20 }, "scope": { "setId": "matchday-moments-2026" }, "distinctBy": "stickerId" } ], "rewards": { "xp": 900, "coins": 300, "badges": ["badge_matchday_moments_album"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 3, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_matchday_moments_album"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["stickers", "moments", "album"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_sticker_final_foil_chase", "setId": "set_sticker_albums", "title": "Final Foil Chase", "description": "Collect three unique final-week foil stickers.", "category": "sticker", "difficulty": "hard", "repeatability": "once", "phase": ["semi_final", "third_place_playoff", "final", "post_tournament"], "rules": [ { "type": "sticker_collection", "event": "sticker_collected", "target": { "count": 3 }, "scope": { "setId": "finals-foils-2026" }, "distinctBy": "stickerId" } ], "rewards": { "xp": 850, "coins": 275, "badges": ["badge_final_foil_chase"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 2, "minimumRarity": "epic" }] }, "contentRefs": { "achievements": ["badge_final_foil_chase"], "stickerSets": ["finals-foils-2026"] }, "tags": ["stickers", "final", "foil"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_memory_opening_match", "setId": "set_memories", "title": "Opening Match Memory", "description": "Save a memory for the opening match.", "category": "memory", "difficulty": "easy", "repeatability": "once", "phase": ["group_stage"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "matchRole": "opening_match" }, "distinctBy": "memoryId" } ], "rewards": { "xp": 250, "coins": 75, "badges": ["badge_opening_match_memory"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_opening_match_memory"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["memories", "opening-match"], "riskFlags": [] }, { "id": "chal_memory_first_goal_reaction", "setId": "set_memories", "title": "First Goal Reaction", "description": "Save a reaction memory after watching your first tournament goal.", "category": "memory", "difficulty": "easy", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "promptKey": "first_goal_reaction" }, "distinctBy": "memoryId" } ], "rewards": { "xp": 250, "coins": 75, "badges": ["badge_first_goal_reaction"], "stickerPacks": [] }, "contentRefs": { "achievements": ["badge_first_goal_reaction"], "memoryPrompts": ["first_goal_reaction"] }, "tags": ["memories", "goals"], "riskFlags": [] }, { "id": "chal_memory_watch_party_snapshot", "setId": "set_memories", "title": "Watch Party Snapshot", "description": "Save a memory from a watch party, fan zone, pub, home gathering, or stadium crowd.", "category": "memory", "difficulty": "easy", "repeatability": "weekly", "phase": ["group_stage", "knockout_stage", "final"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "promptKey": "watch_party", "mediaRequired": true }, "distinctBy": "memoryId" } ], "rewards": { "xp": 250, "coins": 75, "badges": ["badge_watch_party_snapshot"], "stickerPacks": [{ "setId": "host-city-icons-2026", "quantity": 1, "minimumRarity": "common" }] }, "contentRefs": { "achievements": ["badge_watch_party_snapshot"], "memoryPrompts": ["watch_party"], "stickerSets": ["host-city-icons-2026"] }, "tags": ["memories", "social", "watch-party"], "riskFlags": ["requires_manual_review"] }, { "id": "chal_memory_upset_diary", "setId": "set_memories", "title": "Upset Diary Entry", "description": "Save a memory after a lower-ranked team defeats a higher-ranked opponent.", "category": "memory", "difficulty": "medium", "repeatability": "once", "phase": ["group_stage", "knockout_stage"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "promptKey": "upset_reaction", "matchResultTag": "upset" }, "distinctBy": "memoryId" } ], "rewards": { "xp": 400, "coins": 125, "badges": ["badge_upset_diary"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_upset_diary"], "memoryPrompts": ["upset_reaction"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["memories", "upset"], "riskFlags": ["requires_live_result"] }, { "id": "chal_memory_penalty_nerves", "setId": "set_memories", "title": "Penalty Shootout Nerves", "description": "Save a memory for a match decided by penalties.", "category": "memory", "difficulty": "medium", "repeatability": "once", "phase": ["round_of_32", "round_of_16", "quarter_final", "semi_final", "final"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "promptKey": "penalty_shootout", "matchResultTag": "penalty_shootout" }, "distinctBy": "memoryId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_penalty_nerves"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_penalty_nerves"], "memoryPrompts": ["penalty_shootout"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["memories", "penalties", "knockout"], "riskFlags": ["requires_live_result"] }, { "id": "chal_memory_final_time_capsule", "setId": "set_memories", "title": "Final Time Capsule", "description": "Save a final-day memory that captures where you watched, who you watched with, and how the tournament felt.", "category": "memory", "difficulty": "medium", "repeatability": "once", "phase": ["final", "post_tournament"], "rules": [ { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "promptKey": "final_time_capsule", "minimumTextCharacters": 140 }, "distinctBy": "memoryId" } ], "rewards": { "xp": 500, "coins": 150, "badges": ["badge_final_time_capsule"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_final_time_capsule"], "memoryPrompts": ["final_time_capsule"], "stickerSets": ["finals-foils-2026"] }, "tags": ["memories", "final", "time-capsule"], "riskFlags": [] }, { "id": "chal_knockout_round_of_32_scout", "setId": "set_knockout_moments", "title": "Round of 32 Scout", "description": "Check in to four Round of 32 matches.", "category": "watch", "difficulty": "medium", "repeatability": "once", "phase": ["round_of_32"], "rules": [ { "type": "event_count", "event": "match_check_in", "target": { "count": 4 }, "scope": { "stage": "round_of_32" }, "distinctBy": "matchId" } ], "rewards": { "xp": 450, "coins": 125, "badges": ["badge_round_of_32_scout"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_round_of_32_scout"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["knockout", "watch", "round-of-32"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_knockout_round_of_16_regular", "setId": "set_knockout_moments", "title": "Round of 16 Regular", "description": "Check in to four Round of 16 matches.", "category": "watch", "difficulty": "medium", "repeatability": "once", "phase": ["round_of_16"], "rules": [ { "type": "event_count", "event": "match_check_in", "target": { "count": 4 }, "scope": { "stage": "round_of_16" }, "distinctBy": "matchId" } ], "rewards": { "xp": 500, "coins": 150, "badges": ["badge_round_of_16_regular"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_round_of_16_regular"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["knockout", "watch", "round-of-16"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_knockout_quarter_final_connoisseur", "setId": "set_knockout_moments", "title": "Quarter-Final Connoisseur", "description": "Check in to at least two quarter-finals.", "category": "watch", "difficulty": "medium", "repeatability": "once", "phase": ["quarter_final"], "rules": [ { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "stage": "quarter_final" }, "distinctBy": "matchId" } ], "rewards": { "xp": 550, "coins": 175, "badges": ["badge_quarter_final_connoisseur"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 2, "minimumRarity": "rare" }] }, "contentRefs": { "achievements": ["badge_quarter_final_connoisseur"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["knockout", "watch", "quarter-final"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_knockout_semi_final_scholar", "setId": "set_knockout_moments", "title": "Semi-Final Scholar", "description": "Check in to both semi-finals and answer a semi-final trivia question correctly.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["semi_final"], "rules": [ { "type": "event_count", "event": "match_check_in", "target": { "count": 2 }, "scope": { "stage": "semi_final" }, "distinctBy": "matchId" }, { "type": "quiz_score", "event": "quiz_answered", "target": { "minimumCorrect": 1 }, "scope": { "category": "semi_final", "mustBeCorrect": true }, "distinctBy": "quizQuestionId" } ], "rewards": { "xp": 850, "coins": 275, "badges": ["badge_semi_final_scholar"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 1, "minimumRarity": "epic" }] }, "contentRefs": { "achievements": ["badge_semi_final_scholar"], "stickerSets": ["finals-foils-2026"] }, "tags": ["knockout", "watch", "semi-final", "quiz"], "riskFlags": ["requires_official_feed", "anti_spoiler"] }, { "id": "chal_knockout_final_day_passport", "setId": "set_knockout_moments", "title": "Final Day Passport", "description": "Check in to the Final and save a final-day memory.", "category": "watch", "difficulty": "hard", "repeatability": "once", "phase": ["final"], "rules": [ { "type": "event_count", "event": "match_check_in", "target": { "count": 1 }, "scope": { "stage": "final" }, "distinctBy": "matchId" }, { "type": "memory_count", "event": "memory_created", "target": { "count": 1 }, "scope": { "promptKey": "final_time_capsule" }, "distinctBy": "memoryId" } ], "rewards": { "xp": 1000, "coins": 350, "badges": ["badge_final_day_passport"], "stickerPacks": [{ "setId": "finals-foils-2026", "quantity": 3, "minimumRarity": "epic" }] }, "contentRefs": { "achievements": ["badge_final_day_passport"], "memoryPrompts": ["final_time_capsule"], "stickerSets": ["finals-foils-2026"] }, "tags": ["knockout", "final", "memory"], "riskFlags": ["requires_official_feed"] }, { "id": "chal_knockout_full_bracket_builder", "setId": "set_knockout_moments", "title": "Build the Full Bracket", "description": "Submit a complete knockout bracket before the Round of 32 begins.", "category": "prediction", "difficulty": "medium", "repeatability": "once", "phase": ["round_of_32"], "rules": [ { "type": "event_count", "event": "prediction_submitted", "target": { "count": 1 }, "scope": { "predictionTemplateId": "pred_template_full_bracket", "mustBeBeforeStage": "round_of_32", "requiresCompleteBracket": true }, "distinctBy": "predictionId" } ], "rewards": { "xp": 500, "coins": 150, "badges": ["badge_full_bracket_builder"], "stickerPacks": [{ "setId": "matchday-moments-2026", "quantity": 1, "minimumRarity": "rare" }] }, "contentRefs": { "predictions": ["pred_template_full_bracket"], "achievements": ["badge_full_bracket_builder"], "stickerSets": ["matchday-moments-2026"] }, "tags": ["knockout", "bracket", "predictions"], "riskFlags": ["provider_dependent"] } ] }