Central Hub is a comprehensive social betting feature that can be integrated directly into the Virtual Stadium widget. It enables users to:
When enabled in Virtual Stadium, Central Hub appears as an integrated component accessible via a dedicated button, providing seamless access to social betting features without leaving the match experience.
Central Hub can be integrated in two ways:

To enable Central Hub in your Virtual Stadium widget, simply set the enableCentralHub property to true:
enableCentralHub boolean optional
Enables the Central Hub widget integration within Virtual Stadium. When enabled, a Central Hub button appears in the widget interface, providing access to all social betting features.
Default: false
<!DOCTYPE html>
<html>
<head>
<title>Virtual Stadium with Central Hub</title>
<!-- Virtual Stadium Script Loader -->
<script>
/**
* TODO(developer): Replace <CLIENT_ID> with your actual client ID
* provided by Sportradar before running this code.
*/
(function(a, b, c, d, e, f, g, h, i) {
a[e] || (i = a[e] = function() {
(a[e].q = a[e].q || []).push(arguments)
}, i.l = 1 * new Date, i.o = f,
g = b.createElement(c),
h = b.getElementsByTagName(c)[0],
g.async = 1, g.src = d,
g.setAttribute("n", e),
h.parentNode.insertBefore(g, h)
)})(window, document, "script",
"https://widgets.sir.sportradar.com/<CLIENT_ID>/widgetloader",
"SIR", {
language: "en"
});
</script>
</head>
<body>
<div id="virtual-stadium-container"></div>
<script>
/**
* TODO(developer): Replace 'your-jwt-token' with your actual JWT token
* and 'your-channel-id' with your actual channel ID before running this code.
*/
SIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true // Enable Central Hub feature
});
</script>
</body>
</html>Central Hub requires certain features to be properly implemented for full functionality. These features enable core social betting interactions.
The Bet Share feature allows users to share their betslips to the social feed where other users can view, comment on, and copy their bets.
Implementation Required:

The Copy Bet Button enables users to copy betslips shared by other users directly to their own betting slip.
Implementation Required:
onAction callback handler for copy bet events
Both Bet Share and Copy Bet Button features must be implemented for Central Hub to function correctly. Without these features, users will have a degraded experience.
When Central Hub is enabled in Virtual Stadium, users can access various screens (drawers) for different social betting activities. You can programmatically control which screen opens using the drawerState configuration.
SIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true,
drawerState: {
screenName: 'centralHub',
params: {
activeTab: 'bets',
filterBy: 'followerBets'
}
}
});Drawer states allow you to programmatically control which screen is displayed when the Central Hub widget loads. Each drawer represents a specific view or functionality within the Central Hub.
The main dashboard that serves as the home screen for the social betting experience. Users can switch between two tabs:
drawerState: {
screenName: 'centralHub',
params:
{ activeTab: 'profile' } |
{
activeTab: 'bets',
filterBy: 'all' | 'followerBets' | 'mySharedBets' |
'myConversations' | 'winningBets',
sort: 'CREATED' | 'COMMENT_COUNT' | 'COPY_COUNT',
}
}
Shows a list of available betslips that can be shared to the social feed. Users can select from their active or settled betslips to share with their followers.
drawerState: { screenName: 'shareBetslipList' }
Opens the betslip sharing interface where users can add a caption, review the bet details, and publish it for their followers to see and potentially copy.
Requires a betslip parameter containing the BetSlip object to be shared.
drawerState: {
screenName: 'shareBetslip',
params: {
betslip: BetSlip
}
}
Opens the conversation thread for a specific shared betslip. Users can view all comments, add new comments, and engage in discussions about the bet.
Requires a betShareId parameter to identify which shared bet's comments to display.
drawerState: {
screenName: 'betslipCommenting',
params: {
betShareId: 'string'
}
}
Manage user relationships and discover new users to follow. This drawer provides three tabs:
Requires a userId parameter to identify which user's relationships to display.
drawerState: {
screenName: 'users',
params: {
activeTab: 'following' | 'followers' | 'search',
userId: 'string',
userDisplayName: 'string'
}
}
Displays a detailed profile view of another user. Shows their shared bets and provides options to follow/unfollow. Typically opened when clicking on a username from a shared bet or user list.
Requires a userId parameter to identify which user's profile to display.
drawerState: {
screenName: 'otherUserProfile',
params: {
userId: 'string'
}
}
Allows users to modify their profile information including display name, avatar, bio, and other personal settings.
drawerState: { screenName: 'editUserProfile' }
Displays all notifications related to comments on the user's shared bets — when someone comments on their bets or replies to their comments. Each notification links to the relevant betslip commenting screen.
drawerState: { screenName: 'commentsNotifications' }
Shows notifications related to betslip activity, including when users copy your bets or when followed users share new bets.
drawerState: { screenName: 'betslipsNotifications' }
Displays notifications about social interactions such as new followers, follow requests, and other user relationship events.
drawerState: { screenName: 'socialsNotifications' }
An onboarding screen shown to new users when they first access the Central Hub. Introduces key features and guides users through initial setup.
drawerState: { screenName: 'centralHubFirstTimeView' }
An introductory screen displayed when users first navigate to the Bets tab. Explains how to browse shared bets, use filters, and engage with the betting community.
drawerState: { screenName: 'betsSectionFirstTimeView' }
All Central Hub-specific configuration options that can be applied when integrating with Virtual Stadium.
bookmakerThemeVersion object optional
Customize the appearance of shared betslips with your bookmaker's branding.
SIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true,
bookmakerThemeVersion: {
backgroundColor: '#1a1a1a',
textColor: '#ffffff',
oddNameBackgroundColor: '#333333',
oddNameTextColor: '#ffffff',
oddValueBackgroundColor: '#007bff',
oddValueTextColor: '#ffffff',
logoImage: 'https://example.com/logo.png',
hasBorder: true
}
});avatarGeneratorConfiguration object optional
Configure how user avatars are generated based on user ID.
Properties:
saturation (number) — Saturation value for avatar colors (0-100)lightness (number) — Lightness value for avatar colors (0-100)range (number) — Color range for avatar generationSIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true,
avatarGeneratorConfiguration: {
saturation: 0.7,
lightness: 0.5,
range: 360
}
});isRelativeTimeFormat boolean optional
Controls time display format in Central Hub.
Default: true (shows "4m ago")
When false: Shows absolute time ("12
SIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true,
isRelativeTimeFormat: false // Show absolute time
});dateFormat 'narrow' | 'short' | 'long' optional
Defines the date format style used in Central Hub.
Default: 'narrow'
Recommendation: Use 'long' for better readability in some languages
SIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true,
dateFormat: 'long'
});Track user interactions within Central Hub using the onTrack callback.
onTrack function optional
Callback function for tracking Central Hub events.
Central Hub Event Types:
data_change — Widget data updatessocial_share — User shares a betbet_copy — User copies another's betcomment_post — User posts a commentuser_follow — User follows another userSIR('addWidget', '#virtual-stadium-container', 'virtualStadium', {
jwt: 'your-jwt-token',
channelId: 'your-channel-id',
enableCentralHub: true,
onTrack: function(eventType, data) {
console.log('Central Hub Event:', eventType, data);
// Send to analytics
if (eventType === 'social_share') {
analytics.track('bet_shared', {
betslip_id: data.betslipId,
user_id: data.userId
});
}
if (eventType === 'bet_copy') {
analytics.track('bet_copied', {
original_betslip_id: data.originalBetslipId,
copied_by: data.userId
});
}
}
});Follow this checklist to ensure proper Central Hub integration:
onAction callback handler implementedenableCentralHub: true in widget configurationbookmakerThemeVersion for branding (optional)avatarGeneratorConfiguration (optional)onTrack callback for analytics (optional)drawerState for deep linking (optional)Learn how to implement the adapter methods required for users to share their betslips to the Central Hub social feed.
Set up the functionality that allows users to copy betslips shared by other users in Central Hub.
Central Hub button not appearing:
enableCentralHub: true is setBet sharing not working:
Copy bet functionality not working:
onAction callback is implementedUsers cannot see shared bets:
Need help with Central Hub integration?
For technical support, contact your Sportradar integration specialist or refer to the main Virtual Stadium documentation.