Campaigns

Campaign Guide

Campaigns let you group payment links with shared settings like network, facilitator, pricing, and dates. They support simple link collections, win/loss randomization, and lottery-style USDC rewards.

Tip: Campaigns are the recommended way to organize and distribute payment links at scale. Each campaign generates its own set of unique links that can be shared with users.

Campaign Types

There are three campaign types, each suited for different use cases:

Simple

Manually add payment links to the campaign. Best for curated collections where you control each link individually.

  • • Add links one by one
  • • Full control over each link
  • • No randomization
Win/Loss

Auto-generates a set of links where some are "winners" (redirect to reward URLs) and the rest are "losers" (redirect to a default URL).

  • • Randomized link distribution
  • • Custom redirect URLs for winners
  • • Default URL for non-winners
Lottery

Like Win/Loss, but winners receive an automatic USDC payout instead of a redirect. Requires a funded campaign wallet.

  • • Automatic USDC rewards
  • • Dedicated campaign wallet
  • • Requires funding before activation
  • • Reward must be greater than entry price

Creating a Campaign

Navigate to Dashboard → Campaigns → Create Campaign. The form guides you through these steps:

Step 1: Basic Info

Name*

A short, descriptive name for the campaign (e.g. "Holiday Raffle").

Description(optional)

Visible on public campaign pages. Use it to explain what the campaign is about.

Step 2: Campaign Type & Configuration

Choose between Simple, Win/Loss, or Lottery. For Win/Loss and Lottery campaigns, you also configure:

FieldDescription
Total LinksTotal number of links generated (min 2)
RewardsNumber of winning links (must be less than total)
Price (USDC)Entry price per link — how much users pay to participate
Access DurationHow long the link result is accessible after payment
Reward per Winner(Lottery only) USDC amount each winner receives. Must be greater than the entry price.

Step 3: Network & Facilitator

Select the blockchain network and payment facilitator. All links in the campaign will use these settings.

Network

Solana or Base. Determines which blockchain processes payments.

Facilitator

RelAI, OpenFacilitator, Dexter, PayAI, or AutoIncentive. Each has different fee structures.

Payment Address*

Your wallet address where entry fees are sent. Auto-filled if your wallet is connected.

Step 4: Schedule & Status

Start / End Date(optional)

Set a time window for the campaign. Links won't work before start or after end.

Status

Active or Inactive. Inactive campaigns don't accept payments. Lottery campaigns start inactive and must be activated after funding.

Public(admin only)

Makes the campaign visible on a public landing page with a shareable URL.

Lottery Campaigns (Step-by-Step)

Lottery campaigns are the most powerful campaign type. Winners automatically receive USDC rewards directly to their wallet after paying the entry fee. Here's how to set one up from start to finish:

How It Works

  1. 1You create a lottery campaign specifying total links, number of winners, entry price, and reward amount per winner.
  2. 2The system generates a dedicated campaign wallet to hold the reward funds.
  3. 3You fund the campaign wallet with the required USDC (winners × reward amount).
  4. 4Once funded, you activate the campaign.
  5. 5Users pay the entry price on a random link. If they land on a winning link, the reward is sent automatically to their wallet.
  6. 6After the campaign ends, you can withdraw remaining funds from the campaign wallet.

Funding the Campaign Wallet

Important: The campaign wallet must be funded with enough USDC to cover all potential winners before the campaign can be activated.

After creating a lottery campaign, you'll see a Campaign Wallet section on the campaign card with:

  • Wallet address — the dedicated address to send USDC to
  • Required amount — calculated as winners × reward per winner
  • QR Code — scan to send funds from a mobile wallet
  • Copy button — copy the address to clipboard
  • Check Balance — verify the current wallet balance

Example:

A lottery with 10 total links, 2 winners, and $5.00 reward per winner requires2 × $5.00 = $10.00 USDCin the campaign wallet.

Note (Solana): On Solana, transaction fees (SOL) are covered by the platform treasury wallet, so you only need to send USDC — no SOL required in the campaign wallet.

Activating the Campaign

Once the wallet is sufficiently funded:

  1. 1. Click Check Balance on the campaign card to verify funding.
  2. 2. A green ✓ Funded badge will appear when the balance meets the requirement.
  3. 3. Click the green Activate Campaign button that appears.
  4. 4. The campaign status changes to Active and links become operational.
Cannot activate? If you see an error like "Cannot activate: campaign wallet needs $X USDC but has $Y", you need to send more USDC to the campaign wallet.

Winner Payouts

When a user pays the entry fee and lands on a winning link:

  • • The reward USDC is automatically sent from the campaign wallet to the payer's wallet.
  • • The user sees a green "You Won!" banner with the reward amount and transaction link.
  • • Non-winners see a "Better luck next time" message with the campaign description.
  • • Each winning link can only be claimed once.

Withdrawing Remaining Funds

After the campaign ends or is deactivated, you can withdraw any unclaimed USDC:

  1. 1. Deactivate the campaign (click the power icon) or wait for it to expire.
  2. 2. Click Check Balance to see the remaining balance.
  3. 3. A Withdraw button appears if the campaign is inactive and has a balance.
  4. 4. Click Withdraw — funds are sent to your connected wallet.
Important: You cannot withdraw funds while a campaign is active. Disable it first.

Campaign Lifecycle

Campaign Statuses

StatusMeaningLinks Accept Payments?
ActiveCampaign is live and operationalYes
InactiveCampaign is disabled; can be re-activatedNo
ScheduledStart date is in the futureNo (until start date)
ExpiredEnd date has passedNo

Public Campaigns

Public campaigns get a dedicated landing page at /campaign/[id]. The landing page:

  • • Shows the campaign name, description, and a link to participate
  • • Displays a "Campaign Ended" banner if expired, with the description still visible
  • • Shows a "Coming Soon" banner if the start date is in the future
  • • Blocks the claim button when the campaign is not active

Ending a Campaign

A campaign ends when:

  • • The end date passes (automatic)
  • • You deactivate it manually (click the power icon)
  • • All winning links have been claimed (lottery/win-loss)

For lottery campaigns, remember to withdraw any remaining funds after ending the campaign.

FAQ

Can I edit a campaign after creation?

Yes, but only the name, description, dates, status, and public visibility can be changed. Network, facilitator, type, and link configuration are locked after creation.

Can I delete a lottery campaign?

Lottery campaigns (with a reward wallet) cannot be deleted — only deactivated. This ensures the wallet funds are never lost. You can withdraw funds after deactivating.

What happens if a winner's wallet can't receive USDC?

The payout may fail if the recipient wallet doesn't have a USDC token account (Solana) or can't receive the token. The funds remain in the campaign wallet.

Do I need SOL in the campaign wallet for Solana campaigns?

No. The platform treasury wallet covers all Solana transaction fees (SOL). You only need to fund the campaign wallet with USDC.

Can the reward be less than the entry price?

No. The reward per winner must always be greater than the entry price. This is enforced on both the form and the backend.

How are winning links distributed?

Links are randomly shuffled when the campaign is created. Each link is assigned as a winner or non-winner. The order is random and not predictable.