> ## Documentation Index
> Fetch the complete documentation index at: https://docs.prizerail.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

From a new campaign to your first drawn prize, in four steps.

## 1. Create your campaign

Sign in to the partner portal at [prizerail.com/login](https://www.prizerail.com/login) and choose **Campaigns → New campaign**. You set:

* Its name and slug. The slug is the last part of its public page: `https://www.prizerail.com/campaigns/acme-daily` is `acme-daily`.
* The schedule: how often it draws, at what time, in which time zone, and how long before the draw the winner list closes (the cutoff).
* How many winners each draw takes.
* The prize table. The default one pays $5 to $100,000 out of 100,000 rolls. See [Prize tables](/campaigns/prize-tables).
* The payout wallet: a USDC address on Base where prizes are sent.

New campaigns start as drafts. A draft doesn't draw and its page is hidden.

## 2. Publish your winners at a URL

For each draw, serve its winner list as JSON at a URL Prizerail can fetch, exactly as many winners as the campaign draws:

```json theme={null}
{ "winners": ["u_8f3a…", "u_27c1…", "u_b904…"] }
```

The URL can include placeholders that Prizerail fills in for each draw, such as `{drawingId}` or `{date}`:

```
https://api.acme.com/prizerail/{drawingId}
```

Until your draw has happened, return `404` or an empty list. Prizerail checks every 5 minutes in the 2 hours before each cutoff, and the list locks at the cutoff. See [Let Prizerail fetch winners](/api/pull-winners) for every placeholder and rule.

Winner ids are public in each draw's proof, so use ids that can't be guessed or linked to a person. An HMAC of your user id with a secret key works well. See [Concepts](/getting-started/concepts#winner).

## 3. Set the URL and activate

In the portal, open the campaign and put the URL in its **Winners** section. Then set its **Status** to active. Drawings appear about two days ahead, and the first one draws at the next scheduled time.

## 4. Read the results

An owner creates an API key under **Team → API keys**. The key is shown once, in a dialog, so copy it into your backend's secrets before closing it. One key covers every campaign of yours.

After the draw, each winner has a roll and a prize:

```bash theme={null}
curl https://www.prizerail.com/api/v1/campaigns/acme-daily/drawings/d7k2m9q4x1wz \
  -H "Authorization: Bearer $PRIZERAIL_KEY"
```

When `status` is `paid`, the prizes are in your wallet, ready for you to pay your winners. See [Drawings](/api/drawings).

<Info>
  Rather post the winners yourself before every draw? Switch the campaign to push and see [Send winners](/api/send-winners).
</Info>

## Trying it out

Ask us for a test account. Test keys look like `pr_test_…` (production keys are `pr_prod_…`) and each works only in its own environment. In the test environment draws use test randomness and payouts aren't real, so you can run the whole flow before anything is paid.

To see a whole draw quickly, make your test campaign hourly with a 5-minute cutoff. Each drawing then locks, settles and pays within the hour, and you can watch its `status` move through every stage.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.