World Cup Resolver
Overview
WorldCupResolver is a read-only smart contract deployed on BSC mainnet that reads 2026 FIFA World Cup match outcomes from the on-chain oracle system and exposes the results to downstream consumers.
Deployed address (BSC mainnet): 0x134C6b9562E226096947e018ddEe4804c9146921
The contract covers 43 entries: the 32 tournament teams, a selection of additional national teams with odds, and an "Other" catch-all. Each team maps to a unique oracle question: "Will [Team] win the 2026 FIFA World Cup?" The underlying oracle resolves each question as YES or NO on-chain.
How It Works
Oracle questions and team resolution
For every team, there is exactly one oracle question: "Will this team win the World Cup?"
reportedAt > 0
The oracle has published a result for this team
results == true
The result is YES — this team won
results == false
The result is NO — this team did not win (eliminated)
flaggedAt > 0
The result is currently under dispute; treat as unresolved
A team is confirmed as the final winner only when all three conditions hold simultaneously:
reportedAt > 0— oracle has reported.results == true— result is YES.flaggedAt == 0— result is not flagged/disputed.
Resolving the final winner
Call resolveWinner(). It scans all 43 entries and returns a WinnerResult struct:
isResolved = true→ a confirmed winning team was found; readwinnerIndexandwinnerName.isResolved = false→ no confirmed winner yet; inspectstatuses[]for per-team progress.
Resolving a single match (team elimination)
Because every oracle question is about the overall World Cup winner, an answer of NO for a team means that team has been definitively eliminated — they can never win the tournament.
This makes it possible to infer match outcomes incrementally, well before the final is played:
Example — Group stage match: Team A vs Team B
Call
resolveWinner()and readstatuses[].Check Team A's status:
isReported = true,result = false,isFlagged = false→ Team A is eliminated (they lost and are out of the tournament).Check Team B's status:
isReported = false→ Team B is still in contention (their question has not yet been resolved).
In this scenario Team A's result is fully settled — it can be used to pay out prediction positions — while Team B remains pending until a later match resolves their fate.
Interface
Supported Teams
getSupportedTeams() returns 43 entries. The index is stable and matches the TeamStatus.index field returned by resolveWinner().
0
Spain
22
Canada
1
France
23
Scotland
2
England
24
South Korea
3
Argentina
25
Paraguay
4
Brazil
26
Ivory Coast
5
Portugal
27
Egypt
6
Germany
28
Iran
7
Netherlands
29
Ghana
8
Norway
30
Algeria
9
Italy
31
Tunisia
10
Belgium
32
Austria
11
USA
33
New Zealand
12
Morocco
34
Haiti
13
Colombia
35
Jordan
14
Japan
36
Curacao
15
Uruguay
37
Uzbekistan
16
Croatia
38
South Africa
17
Mexico
39
Cape Verde
18
Switzerland
40
Qatar
19
Ecuador
41
Saudi Arabia
20
Senegal
42
Other
21
Australia
Integration Examples
Check for the final winner (Solidity)
Check whether a specific team has been eliminated (Solidity)
Read all statuses off-chain (ethers.js)
Deployment Details
Network
BSC Mainnet
Contract address
0x134C6b9562E226096947e018ddEe4804c9146921
Last updated