HederaDrops

Anyone can host an NFT drop on Hedera — a mint, a raffle, or a giveaway — from any collection, through one smart contract. The winners are decided by a single on-chain random number that anyone can check.

You do not have to own the collection. Anything in your wallet can go into a drop, and a single drop can mix NFTs from as many collections as you like — the pool is simply what you deposited.

How a drop works

  1. 1
    Create

    The host opens an empty drop.

  2. 2
    Deposit

    NFTs are sent into the contract.

  3. 3
    Publish

    Price, window and entry count are fixed.

  4. 4
    Enter

    Anyone buys entries. Some may be granted free.

  5. 5
    Reveal

    One random number is drawn and frozen forever.

  6. 6
    Claim

    Winning entries pull their NFT out.

Why the host deposits the NFTs

Anyone can host a drop here — it needs no approval from us. This is one contract on Hedera, and this site is only an interface to it.

Which means safety cannot rest on the host being honest. So a drop opens the way liquidity is added on a DEX: the NFTs are deposited into the drop's pool. While they are in there nobody can send them anywhere — not the host, not us. Every way out is one the contract writes, and the ordinary one is a winner claiming their NFT.

Winners are not on a clock in any practical sense, but they are not on none either: an NFT nobody claims would otherwise sit in the pool forever. So after 100 days an unclaimed one can be returned to the host, and after 300 days anyone may take it. Claim your win and neither applies.

Nor is the host stuck with the decision. Until someone has entered they can call the drop off and take everything straight back — and whatever the sale does not sell comes back to them anyway, through the draw itself.

From then on nothing rests on who the host is. What is in the pool, what it costs and when it closes are on chain before anyone pays.

The reveal

When the sale closes the contract takes one random number from Hedera and freezes it. That number decides which entry takes which NFT, and anyone holding it can work out the same result.

Here is one:

ENTRIESPOOLEntry 0Entry 1Entry 2Entry 3Entry 4Entry 5Entry 6Entry 7NFT 0NFT 1NFT 2NFT 3NFT 4NFT 5NFT 6NFT 7SEED

The crossing is the whole result. Entries are in the order they were bought, the pool is in the order it was filled, and only the drawn number decides how the two line up. Every drop page carries this same map — worked out in your browser, so nobody has to take our word for it.

How is the revealer decided?

Hedera produces the number, so the reveal could be left to whoever wants to send it. It is not, because whoever sends it can grind: work out what the number would be, discard the results they do not like, and try again.

Handing it to an administrator instead would be worse. HederaDrops is a contract, not just this site — anyone can build on it — so one address wired in would put every drop, on every frontend, behind a single operator. Each drop names its own at publish instead. The host picks a third party, the buyer sees it before entering, and entering means accepting it. Drops created on this site name ours.

Whoever it is, it does not choose winners. It sends one transaction; the number is generated by Hedera inside that call and stored by the contract as it comes back.

What kind of drop it is

A mint, a raffle, or something in between — it is one drop either way. The only thing that changes is how many entries stand against the pool. A host may even offer fewer entries than they hold NFTs: the ones nobody buys simply stay with them.

Entries = NFTs

ENTRIESPOOL01234NFT 0NFT 1NFT 2NFT 3NFT 4

Every entry takes one, so it behaves like an ordinary mint — the draw only decides which piece you get.

Entries > NFTs

ENTRIESPOOL01234NFT 0NFT 1

Behaves like a raffle — two of these five draw a prize, the other three draw nothing.

Entries < NFTs

ENTRIESPOOL0123 · host4 · host5 · host6 · host7 · hostNFT 0NFT 1NFT 2NFT 3NFT 4NFT 5NFT 6NFT 7

The host puts fewer entries up for sale than they hold NFTs. Buyers take one each; the rest of the pool is drawn back to the host.

Unlimited entries

ENTRIESPOOL01234567NFT 0NFT 1NFT 2

The host sets no count. Entries run until the sale ends, and the number is fixed then.

Every entry nobody bought belongs to the host— whether it went unsold or was never offered. Those entries stay in under the host's name, so a half-sold drop returns half its pool — not by a special rule, but by the same draw everyone else is in.

Kinds of entry

An entry is assigned by the host before the sale, bought during it, or kept by the host — because nobody bought it, or because it was never put up for sale. They sit in one list and are drawn together.

ENTRIESPOOL0 · granted1 · granted2 · granted3 · granted45 · unsold6 · unsold7 · unsoldNFT 0NFT 1NFT 2
granted
Assigned by the host before publishing — a giveaway. They can assign to themselves too.
entry
Bought during the sale.
unsold
Not bought by the time the sale closed — and entries the host never put up for sale sit here too. Either way they belong to the host and are drawn on the same terms as everyone else.

Why it is fair

chance per entry = pool ÷ entries
expected NFTs = entries held × pool ÷ entries

Both numbers are settled before the reveal, so the odds are a known quantity rather than something that emerges at the end. They do not move with when you entered, how many others joined, or anything the host does afterwards.

And that one chance applies to everyentry above — granted, bought, or the host's. So the leftovers falling to the host is not a concession made to them: it is the same figure applied to the entries they hold. Each side's expected share of the pool is exactly its share of the entries, and the two shares add up to the pool.

Who may enter

A drop is open to everyone unless the host narrows it. There are three ways to do that.

Gate token

Only wallets holding at least one NFT from a named collection may enter. The balance is checked at the moment of entry, so acquiring one just before is enough — and selling it afterwards does not undo an entry already placed.

Max per wallet

A ceiling on how many entries a single wallet may take, counted across every purchase it makes rather than per transaction.

Whitelist

Only listed addresses may enter, each with its own allowance. The host edits the list up until the sale opens; once buying is possible it is settled, so nobody's eligibility can change while the drop is live.

A whitelist carries its own per-address allowance, so it takes the place of the per-wallet cap rather than stacking with it. Turning it on here also clears the gate token — a list of named addresses already says who may enter, and asking them to hold a collection on top of that is a second rule with nothing left to do.

Everything above is one public contract. The reference has its signatures, its guards, and the exact draw — enough to build on it without this site.

Read the docs ↗
Connecting…