Campaigns

Everything a creator or donor needs to know about running and supporting a campaign.

Creating a campaign

  1. Connect a wallet on BNB Chain and open Start a campaign.
  2. Enter a title, an optional description and an optional goal.
  3. Confirm one transaction. Gas is the only cost.
  4. Store the claim code that appears. It is shown once and is never saved anywhere. Download it or copy it into an offline password manager before leaving the page.

Field limits

Title1 – 80 bytes. Required.
Description0 – 1,000 bytes. Plain text; line breaks are preserved.
GoalAny amount in BNB, or empty. Purely informational — donations are never capped and the campaign does not auto-close.

Limits are enforced by the contract (InvalidTitle, DescriptionTooLong), so no frontend can bypass them. Metadata is immutable after creation; to change it, close the campaign and start a new one.

Logo and links

A campaign may carry a profile: a square logo and links to a website, X, Telegram, Discord and GitHub. The profile is off-chain — it lives on our server, costs no gas and can be edited any time from Creator tools → Profile.

  • Every change is signed by the creator wallet (an EIP-712 message over the campaign id, links, logo hash and a timestamp). The server verifies the signature against the on-chain creator before storing anything, so only the creator can edit.
  • Logos are resized in your browser to 256 × 256 PNG before upload; the server only stores that one format.
  • Links must be https and, for social networks, point at the matching host (x.com, t.me, discord.gg, github.com).
  • If the profile service is unreachable the campaign still works — the page simply renders without logo and links. Donations and claims never depend on it.

Sharing

Each campaign has a stable URL of the form /campaign?id=N, where N is the sequential id assigned by the contract. Use Copy link on the campaign page. The id can also be read from the CampaignCreated event.

Donating

Enter an amount and confirm. The transaction calls donate(campaignId) with the BNB attached. Donations to a closed campaign revert with CampaignInactive; zero-value donations revert with ZeroAmount.

Your wallet address and the amount are public. If that matters to you, read donor privacy first.

Closing and reopening

From the creator wallet, the campaign page shows Creator tools. Close campaign calls setActive(id, false); donations stop immediately. Closing does not affect the balance — it can still be claimed at any time. Reopen flips the flag back.

Collecting donations

See claim codes. In short: open Claim from a fresh wallet, paste the code, choose a recipient and an amount (or leave empty for everything), confirm.

Lost claim code

The creator wallet can issue a new code at any time with Issue new claim code. This calls rotateClaimKey(id, newKey), replaces the stored address and bumps the nonce so the old code becomes useless. The balance is untouched. Keep the creator wallet safe: it is the only recovery path.