On-chain · BOTChain · Block order

Your place
in line,
on chain.

Projects open a queue. Wallets join in block order — no screenshots, no spreadsheets, no trust. Positions are yours to hold or transfer.

0x1681…E606 · BOTChain
queue.surf/queue/1
Early Access — Season 1
Created 2m ago · 5/100 joined
Open
#10x4f3c…8a1b
#20xd72e…3f90
#30x9b1a…cc42you
#40x1e4d…77f3
#50xab82…0091

Block order, not trust

Position is determined when your transaction mines. No one can cut the line, no admin can reshuffle.

Transferable positions

Your slot is yours. Send it to any wallet that isn't already in the queue — OTC, gifting, whatever you need.

Creator controls

Open or close the queue at any time. Set a cap. The on-chain state is always the source of truth.

How it works

Four steps.
No middleman.

Every action is a transaction. Every position is a slot on the contract. Nothing happens off-chain.

01
Open
Any wallet calls createQueue() with a name, optional cap, and description.
02
Join
Wallets call join(). Your position equals the block your tx mines in — first in, lowest number.
03
Hold or Transfer
Call transfer(to) to move your slot to any other wallet. Vacate with leave().
04
Close
Creator calls setOpen(false). The final slot list is immutable on-chain forever.

The product

Exactly what it looks like

No dashboards, no wallets-of-spreadsheets. Just a list of positions, in order, on chain.

Genesis Allowlist
Created 2m ago · 12/50 joined
Open
#10x4f3c…8a1b
#20xd72e…3f90
#30x9b1a…cc42
Beta Tester Cohort 2
Created 2m ago · 3/20 joined
Closed
#10x1e4d…77f3you
#20xab82…0091
#30x33cf…b210

Ready to run a fair waitlist?

One transaction to open. Anyone can join. Block order decides.

Open a Queue