Notifications
You're all caught up.
Swap
From
To
Slippage

Shuffles

A shuffle is a randomized NFT drop. As a creator you load NFTs into a drop wallet, set a price and a schedule, and buyers click Shuffle to be handed an NFT from the pool — paid for and delivered in a single atomic Algorand transaction. This guide covers how to set one up, how phases work, and — importantly — how to run a fair drop where buyers can't peek at what they'll get before they pay. There are two ways to do that: the new claim-token flow (buy blind, reveal after) and the long-standing placeholder-reveal pattern.

Shuffle support is new and evolving. Read this guide — especially preventing peeking — before creating a shuffle, so you pick the right setup for your drop.

How to get there

Shuffles are a creator tool, available to verified collections only.

  1. Connect and log in with the creator wallet — the wallet that owns the verified collection you want to drop.
  2. Open /creator (Creator Tools) and choose Go to my collections.
  3. Pick the collection and create its shuffle. You'll land on the shuffle's Manage page, where everything below happens.
Only the wallet that owns the verified collection can create or manage its shuffle. Every management action (add phase, edit, pause, reveal) re-checks that ownership.

Setting up a drop, step by step

  1. 1
    Create the shuffle
    Give it a name, description, and an optional image URL. This is the public landing card buyers see on the collection's Shuffle tab. It starts hidden and paused — nothing is live until you say so.
  2. 2
    Add a phase
    A phase is one sale window with one price. Set its name, start date, optional end date, payment, the per-buy and per-wallet limits, and (optionally) an eligibility list. Creating a phase generates its dedicated drop wallet — its address is shown on the phase once created.
  3. 3
    Fund the phase wallet
    Send the NFTs you want to sell to the phase's Shuffle wallet address (linked to the explorer on the Manage page). Whatever sits in that wallet — minus the payment asset — is the live pool. You can top it up or pull NFTs back out at any time.
  4. 4
    Make it visible & unpause
    Use Show to make the shuffle appear publicly and Play to unpause it. A phase only sells while it's within its start/end window and the shuffle is unpaused.
The price legs (ALGO / ASA payment) are paid by the buyer straight to the receiveraddress you set on the phase. The phase wallet itself only needs to hold the NFTs (plus the tiny 0.1 ALGO per-asset minimum balance Algorand requires to hold each one).

How phases work

Phases are how you run a drop in stages — e.g. an allowlist phase first, then a public phase, or tiered pricing over time. Each phase is independent: its own wallet, its own price, its own window, its own limits and eligibility. Buyers only ever see phases that are currently active.

  • Schedule — a start date and an optional end date. Before the start the phase is upcoming (shown on the timeline); after the end it's closed. Overlapping windows are allowed, so multiple phases can be live at once.
  • PaymentAlgo Payment, Asset Transfer (an ASA / token), or Payment + Asset Transfer (both). You set the amount(s), the ASA id where relevant, and the receiver address that collects the proceeds.
  • Max NFTs per claim (1–10) — the most NFTs a buyer can take in a single shuffle. It doubles as the random pool size: on a standard phase the buyer is handed this many candidates and their wallet signs one at random, so a higher number means a wider draw per click.
  • Max per wallet (0 = unlimited) — a lifetime cap on how many NFTs one wallet can take from this phase. Setting a cap turns on per-asset reservations so two buyers can't be handed the same NFT, and the count is measured from NFTs actually delivered on-chain — a buyer whose signing failed simply gets re-offered the same asset, never locked out.
  • Claim tokens (open phases only) — the fair-drop toggle. Buyers pay first and reveal later, so there's nothing to peek at. See preventing peeking below.
  • Eligibility — optional. Leave it empty and the phase is open to everyone. Upload a list and it becomes private to those recipients (see below).
Editing a phase — even after it has started — is safe. Buyers always pay according to the group they actually sign; already-signed groups are immutable on-chain, and any new buy is built from the current config. So you can fix a name, price, or end date on a live phase.

Eligibility (allowlists & allocations)

Each phase has a single private eligibility list, managed from Manage Eligibilityon the phase. You upload a CSV in one of two formats (auto-detected from the columns):

  • Random assignment (count column) — each recipient is randomly assigned that many NFTs from the pool.
  • Specific assets (asset_id column, one row per asset) — you pick exactly which NFTs each recipient gets.

A recipient is either an explicit address or a holding_asset — whoever holds that 1/1 NFT at buy time is eligible, so the allocation follows the NFT if it changes hands. Uploading either format replaces the whole list; Clear removes it and reopens the phase to the public.

Don't re-upload an eligibility list once the drop is live unless you mean to. Re-uploading re-allocates assets, which can let buyers who already claimed their allocation claim again.

What happens when someone shuffles

  1. The buyer clicks Shuffle on an active phase.
  2. downbad reads the NFTs still in the phase wallet, checks eligibility, and selects up to “assets to sign for limit” candidates for that buyer.
  3. It returns one self-contained atomic group per candidate (payment leg(s), the buyer's opt-in, and the phase wallet's NFT transfer). The buyer's wallet signs one group.
  4. The group is submitted and settles atomically — pay and receive, or nothing at all.

The phase wallet co-signs only the NFT transfer, which is grouped with the buyer-funded legs and can never be submitted on its own.

On a claim-token phase the flow splits in two: the buy transaction delivers a claim token instead of an NFT (no asset is chosen yet), and a later Reveal assigns and delivers the random NFT. See preventing peeking.

Fees

downbad takes its cut from the sale price itself — there's no separate listing or setup fee for running a shuffle.

  • ALGO payment phases — the price splits 95% to your receiver address and 5% to downbad, settled inside the same atomic group as the NFT transfer.
  • ASA / token payment phases — currently no platform fee; the full token amount goes to your receiver.
  • Payment + Asset Transfer phases — the 5% platform fee applies to the ALGO portion only (95% to you); the ASA portion goes to your receiver in full.

Two small network costs sit alongside the price and are not downbad charges:

  • Algorand network fees — the standard 0.001 ALGO per transaction in the buy group, a fraction of a cent in total.
  • Asset opt-in MBR — 0.1 ALGO the buyer's account reserves to hold the new NFT. It's held by the network, not paid to anyone, and is returned if they ever opt out.
The fee comes out of the price the buyer pays — you receive your 95% (ALGO) or 100% (ASA) at your receiver address. You don't pre-fund anything beyond the ~0.1 ALGO per NFT the phase wallet needs to hold each asset while it's for sale.

Preventing peeking (fair drops)

The single most important thing to understand before running a shuffle: on Algorand, NFTs are pre-minted — they exist on-chain, sitting in the shuffle wallet, before anyone buys. Unlike Ethereum drops that mint at claim time, the assets (and, if their real metadata is revealed, the art and rarity) are visible up front. Left unaddressed, a buyer can inspect the wallet — or the buy transaction they're asked to sign — and only pay when they'd receive something rare, or connect a fresh wallet to re-roll until they do.

There are two ways to prevent this. You can use either, or both together.

1. Claim tokens — buy blind, reveal after (new)

Claim tokens are rolling out in preview. If you don't see the toggle yet, it isn't enabled for your account — the placeholder approach below works for every drop today.

Turn on Claim tokens when you create or edit an open phase (one with no eligibility list). It changes the buyer flow into two steps:

  1. Shuffle (pay) — the buyer pays and receives a claim token in a single atomic transaction. No specific NFT is chosen or shown at this point, so there is nothing to peek at.
  2. Reveal — afterwards the buyer reveals, and downbad assigns a random NFT then and delivers it. The assignment is locked in before the NFT is shown, and the claim token can't be moved to another wallet — so a buyer can't reject the result and re-roll.

Good to know:

  • Open phases only, single-edition NFTs. Claim tokens don't apply to allowlist/allocation phases (those assign specific NFTs by design) or to multi-edition assets.
  • Deposit NFTs any time. The pool isn't fixed up front — top it up whenever; newly deposited NFTs become buyable immediately. The claim token is created automatically on the first purchase (keep a little ALGO in the phase wallet for that).
  • Reveal whenever. A paid claim is honoured even after the phase ends — buyers can hold and reveal later.
  • It stops peeking and re-rolling. It doesn't by itself stop someone buying a lot blind — pair it with Max per wallet if you want to cap that.

2. Placeholder reveal (works for every drop)

The long-standing pattern used by serious Algorand projects: don't put the final art in the pool — drop a mystery box and reveal afterward. This works for any phase type, including allowlist phases.

  1. Mint with placeholders — create every NFT with generic “mystery” artwork and metadata so they all look identical in the wallet.
  2. Run the shuffle on those placeholders — buyers receive a random one, and there is nothing to peek at because every asset is the same.
  3. Reveal after transfer — once an NFT has left the shuffle wallet, swap its metadata to the real art (using the ARC19 mutable-metadata standard), or airdrop the real NFTs to placeholder holders once the drop closes.
  • Store the final artwork securely off-chain (e.g. on IPFS) until reveal.
  • Do the metadata swap after transfer (via ARC19) for the genuine random experience collectors expect.
  • Identical-looking items (same art, same rarity) are always fine to drop directly — mixed rarity you want kept secret needs claim tokens, placeholders, or both.
Projects such as Mostly Frens and The Lost Bots use the placeholder-reveal approach — it's a well-established pattern for blind, un-snipeable Algorand drops, and combines cleanly with claim tokens.

Managing a live shuffle

  • Pause / Play — instantly stops or resumes all buying across every phase without changing the schedule.
  • Hide / Show — controls whether the shuffle appears publicly. Hide it to stage a drop before going live.
  • Edit — change the shuffle's details, or any phase's settings, at any time (safe even mid-drop, as noted above).
  • Delete — remove a phase or the whole shuffle. First pull every NFT and any ALGO back out of the phase wallets, since deleting drops your handle on them.

Recovering a phase wallet (reveal mnemonic)

To withdraw unsold NFTs or the leftover minimum-balance ALGO from a phase wallet, reveal its passphrase: on the phase, click Mnemonic. Because this hands over full control of the wallet, it's gated by a second confirmation — you sign a zero-ALGO transaction from the owner wallet to prove it's really you, then the 25-word passphrase is shown.

Import that passphrase into any Algorand wallet to move the remaining assets out. Store it securely and treat it like any other private key.

Anyone with the passphrase has full control of the phase wallet. Only reveal it when you need to recover funds, and never share or paste it anywhere untrusted.

See also

Manage your drops from Creator Tools. For setting the royalties that apply to secondary sales of your collection, see royalties for creators.