Glossary

A guide to Muxy MEDKit and GameLink SDK terminology

Term

Meaning

See more

Admin

A user role that authorizes extension-wide changes which affect all channels running the extension.

Authentication tokens with the admin or backend role have highest-tier access to API routes. The admin user has the same access rights as a backend user, but can be assigned the role in the Muxy Developer Portal.

Set up User Simulation

Aggregation

A basic technique for scaling up by accumulating data from large numbers of viewers and subjecting the aggregated data to analysis of various kinds, such as ranking the popularity of particular responses.

Data Aggregation

Authentication

Proof that a call into the Muxy API comes from a registered extension.

An unauthorized connection to Muxy servers uses a provided Extension Client ID to associate the connection with an extension, so that further calls can be authorized.

Compare authorization.

Register your Extension

Basic Muxy Login Workflow

Authentication

Authorization

A connection to Muxy servers that identifies the user operating the connection and allows the appropriate access rights.

Provide a registered Client ID in an unauthorized call to establish a connection and obtain the credentials that authorize all subsequent calls into the Muxy SDK.

The authorization process is handled automatically from within an extension by Twitch and the MEDKit SDK, but must be performed explicitly when using the GameLink library.

Register your Extension

Basic Muxy Login Workflow

Authentication

Backend

The backend user role authorizes an external server for server-to-server communication with the Muxy server.

The backend user role has the same access rights as admin, but the user must generate their own JWT from a known extension secret.

Communication API

Broadcast messaging

A messaging protocol allows bidirectional data flow between extensions and Muxy servers.
Allows game-generated data and events to be communicated back to all viewers of a channel, and viewer-generated events (such as votes or item purchases) to be sent back to the game client.

Messages can be directed at all viewers or a subset (such as subscribers only, or single viewer IDs).

The broadcast messaging system also allows private backchannel communication for coordinating activity among extension instances across channels. Backchannel calls are authorized by a JWT with the backend role.

Communication API

Client-Server Communication

Broadcaster

A user who is broadcasting a Muxy-powered Twitch extension.
A JWT with the broadcaster role authorizes the caller to access a greater range of functionality than one with the viewer role.

Set up User Simulation

Client ID

To authenticate your extension to the Muxy server, you must have a valid Twitch Extension Client ID in the Twitch Developer Console, and register it with Muxy.

Once registered, the Twitch Extension Client ID becomes a valid Muxy Client ID.

Register your Extension

Configuration data

The MEDKit SDK provides two data stores with different scopes for developer-defined data that is expected to be used mainly on extension startup.

Data Tracking

Store Configuration Data

Config API

State and Configuration Handling

Data stores

The MEDKit SDK provides tools for defining, storing, and retrieving configuration data and real-time extension state data.

Data Tracking

Event handling

In the GameLink API, event subscriptions and notifications are handled slightly differently in different areas.

Muxy GameLink Library

Using the WebSocket Protocol

Extension Client ID

A unique identifier for a Muxy-powered Twitch extension, created in Twitch and registered with Muxy.

See Client ID, Authentication.

Quick Start for Developers

GameLink

The GameLink API lets a game developer establish a permanent connection to Muxy backend servers to send and receive real-time data and events.
This allows a game to present channel viewers with up-to-the-second information and instantly respond to in-extension viewer actions.

Muxy GameLink Library

Using the WebSocket Protocol

JWT

A JSON Web Token (JWT) is a credential that can grant access to resources. A JWT obtained from the Muxy SDK is associated with a user role that determines the level of access.

Authentication

Basic Muxy Login Workflow

MEDKit SDK

A JavaScript library for building viewer-facing extensions on Twitch. It uses the MEDKit REST API, which you can also use directly.

Developing with MEDKit

PIN authorization

An authentication/authorization workflow with these steps:

  1. A JWT with the broadcaster user role (such as that provided by the extension config and live pages) is used to request a unique authorization PIN code.
  2. The PIN is displayed to the user.
  3. The user enters the PIN into the game client, which uses the GameLink library to provide credentials for current and future authorization.

The PIN expires when it is used or 5 minutes after being generated.

See also Stored refresh-token authorization.

Generating a PIN

User-entered PIN Authentication

Basic Muxy Login Workflow

Polls

The polling and voting service allows admins or broadcasters to set up and manage user polls that are displayed to all viewers, who can submit votes. The service accumulates votes and sends results in real time to the admin or broadcaster.

Polls and User Voting

Poll Management

Refresh token

A JWT that can be stored and exchanged for a new authorization token when a current authorization token expires.

A refresh token is provided in response to the GameLink authenticate() call, along with a current JWT.

See also Stored refresh-token authorization.

Authentication

Role

A caller's role (one of viewer, broadcaster, or admin) determines what functionality the caller is entitled to access. For example, an admin or broadcaster can set up and manage a poll, and viewers can submit votes in that poll.

The role of the calling user is encoded in the JWT that authorizes calls. Roles can be simulated in the sandbox environment for testing and debugging.

See also User role.

Set up User Simulation

Sandbox

A staging area for testing and debugging API calls with simulated authorization.

Data is regularly wiped and the environment is not accessible from a “live” extension.

The MEDKit SDK and GameLink libraries all have methods to switch environments.

Set up User Simulation

Developing in the Sandbox

SDK object

In the GameLink and MEDKit JavaScript APIs, a singleton instance of the control class that gives you access to all Muxy functionality.

SDK Class

Developing with MEDKit

State data

The MEDKit SDK provides four data stores with different scopes for developer-defined data that is expected to be accessed frequently in real time.

Data Tracking

Store Extension and Viewer State

State API

State and Configuration Handling

Stored refresh-token authorization

When a user authenticates using the PIN authorization method, the server provides a refresh token. Use this token in subsequent calls to the ‘authenticate()’ method to re-authorize a GameLink connection without requiring user interaction.

Generating a PIN

User-entered PIN Authentication

Basic Muxy Login Workflow

Transactions

The Muxy SDK provides tools for handling Twitch Extension Bits purchases of products that you offer through your extension.
Set up product offers using the Twitch Extension Bits Monetization API.

Transaction Management

Purchase Transactions

Trivia contests

The trivia service allows admins or broadcasters to set up and manage contests with multiple-choice questions, and viewers to choose answers.

Trivia Contests
Trivia Contest Management

Unauthorized call

A REST API call that requires no Authorization header, used to obtain authorization credentials for subsequent calls.

An unauthorized call to the pin endpoint must be authenticated with a registered Client ID.

See also PIN authorization.

Authentication

Basic Muxy Login Workflow

User role

All connections to Muxy’s servers, whether through GameLink, a backend server, or from a Twitch extension, are associated with a user role that determines access rights. A user's role is encoded in the JWT that authorizes an API call. Access limitations are enforced on the server side.

Access levels range from anonymous viewer with limited access to resources, up to administrative access that can authorize extension-wide changes.

Set up User Simulation

Viewer

An end user of a Muxy-powered Twitch extension.

Calls submitted from a viewer's instance are authorized by a JWT with the viewer role.

Set up User Simulation

Web Socket

A messaging protocol for data exchanges between a game or Twitch extension and a Muxy server, using the GameLInk API.

Using the WebSocket Protocol