Skip to content

$reward

$reward is a chat command for running channel-point reward giveaways. Moderators create a reward, viewers enter by redeeming it with channel points, and moderators draw and resolve winners.

Use $reward help in chat to get the public documentation link.

See the $reward changelog for public release notes.

How Reward Giveaways Work

A reward is a channel-point reward on Twitch or Kick. Once it is open, viewers enter the giveaway by redeeming it — spending their channel points. Each redemption becomes an entry.

  • Entries stay pending (the points are spent but the redemption is not yet fulfilled) until the giveaway is resolved or the entry is refunded.
  • An audience can be required: public (anyone), follower, or subscriber. Redemptions from viewers who don't meet the tier are automatically refunded.
  • With --unique, each viewer can only have one standing entry; a duplicate redemption is refunded. A refunded or cancelled entry frees the viewer to enter again.

The moderator lifecycle is: create the reward → viewers redeem to enter → close entries → draw to pick winners → mark the winners → resolve. Resolving either fulfills the marked winners and cancels (refunds) everyone else, or fulfills everyone, depending on the reward's resolution mode.

You can also adopt an existing channel-point reward and manage rewards from the web dashboard; those flows are not chat commands. A reward whose redemptions are set to skip the request queue (auto-fulfill) cannot be managed, because the giveaway needs redemptions to stay pending so non-winners can be refunded.

Moderator Commands

All $reward subcommands require moderator (or broadcaster) permission. The reward UUID shown when a reward is created is the --id used by every other subcommand.

Create A Reward

text
$reward create --title Mega Drop --prompt Redeem to enter the drop --cost 500 --audience follower --unique --mode winners

Creates a channel-point reward and starts collecting entries. --title and --prompt are greedy — they collect every following non-flag word, so multi-word values need no quoting. --mode chooses how the giveaway resolves (see Options). The reply includes the reward's id.

Update A Reward

text
$reward update --id <uuid> --title New Title --prompt New prompt --cost 750

Changes the title, prompt, and/or cost of a reward that is still open or closed. Provide only the fields you want to change.

Pause / Unpause

text
$reward pause --id <uuid>
$reward unpause --id <uuid>

Pauses or unpauses redemptions on the platform without ending the giveaway. A paused reward is still shown but cannot be redeemed.

Close / Reopen Entries

text
$reward close --id <uuid>
$reward open --id <uuid>

close stops accepting new entries (the reward is disabled on the platform). open reopens a closed reward and collects entries again; reopening clears any previously marked winners so you can draw fresh.

Draw Winners

text
$reward draw --id <uuid> --target wheel

Generates a spin-the-wheel draw from the current pending entrants and replies with the wheel link. --target defaults to wheel. Drawing does not pick winners by itself — use winner mark to record who won.

Mark / Unmark A Winner

text
$reward winner mark --id <uuid> --redemption-id <redemption>
$reward winner unmark --id <uuid> --redemption-id <redemption>

Marks (or unmarks) a specific entry as a winner. In winners fulfillment mode, only marked winners are fulfilled on resolve. Use list participants to find redemption IDs.

List Winners / Participants

text
$reward list winners --id <uuid>
$reward list participants --id <uuid>

list winners shows the entries currently marked as winners. list participants reports the entry count.

Resolve

text
$reward resolve --id <uuid>

Settles a closed giveaway. In winners mode the marked winners are fulfilled and everyone else is cancelled (refunded); in everyone mode every pending entry is fulfilled. Resolution runs in the background.

Remove

text
$reward remove --id <uuid>

Deletes the reward from the platform. Any pending entries are refunded first. Removal runs in the background.

Options

OptionUsed ByMeaning
--id <uuid>every subcommand except create and helpThe reward's UUID, shown when the reward is created.
--title <value>create, updateReward title. Greedy — multi-word values do not need quotes.
--prompt <value>create, updateReward prompt shown to viewers. Greedy like --title.
--cost <number>create, updateRedemption cost in channel points.
--audience <public|follower|subscriber>createMinimum audience tier allowed to enter. Ineligible redemptions are refunded.
--uniquecreateAllow only one standing entry per viewer.
--mode <winners|everyone>createFulfillment strategy: winners fulfills marked winners and cancels the rest; everyone fulfills all pending entries.
--target <wheel>drawDraw target. Currently only wheel.
--redemption-id <value>winner mark, winner unmarkThe redemption to mark or unmark as a winner.

Notes

  • Entries are reconciled against the platform whenever a giveaway is drawn, resolved, or synced, so a missed or out-of-order redemption webhook does not change the outcome — the platform is the source of truth.
  • Channel points for pending entries are only returned when the entry is cancelled (on resolve in winners mode, or on remove). Fulfilled entries keep the points spent.