Season 0is live: try Veiling with free test SOL and earn points. 43 days left.Join →

How Veiling works

Veiling sells new tokens and NFT collections through sealed bids and a single final price. This page explains what happens to your bid, your deposit and your sale, and what everyone else can see.

On this pageHow an auction works

How an auction works

  1. The seller opens it

    A new token's sale names the token and sets a target, which fixes its minimum price; nothing is minted yet. A collection sale creates the collection and sets how many NFTs are for sale, a minimum price and the most NFTs one bid may ask for.

  2. Buyers place sealed bids

    A token bid is a SOL budget and the most it would pay per token. A collection bid is a number of NFTs and the most it would pay for each. Both are encrypted in the buyer's browser; SOL that covers them goes into the bid as its deposit.

  3. The bids are checked in private

    After bidding closes, Arcium's network checks each bid against the terms and its deposit, four at a time. No single machine ever sees a bid.

  4. The final price is revealed

    The highest price at which the bids cover the supply. Only that price and the demand at and above it are revealed.

  5. Each bid is settled

    Every winner pays the final price. Payments move to the auction; the rest of each deposit waits for its owner. The bids checked together, four at a time, are settled together too.

  6. Everyone collects

    Winners receive their tokens or NFTs and every bidder gets the unused part of their deposit back. A new token is made first and its pool opened with what the sale raised; a collection's seller claims the proceeds. The seller then closes the auction to get its rent back.

Anyone can take any of the settlement steps for anyone else. Funds and tokens only ever go to their owner, so nobody depends on the seller or the platform to finish an auction.

Bidding

A new token's bidding opens right away and runs for 1, 2 or 5 hours. A collection's seller can open bidding right away or schedule it up to 30 days ahead. A scheduled auction is listed as upcoming, with its terms public and its tokens already held by the program; bids are taken only from its start, for its full bidding time. Until the first bid, the seller can still cancel it.

Set the most you would really pay. Every winner pays the final price, which is never above their own, so bidding your true limit is the simple strategy.

Tokens
Set the SOL you want to spend and your highest price per token, which for a new token is the highest FDV you would pay. If you win above the final price, your whole budget buys tokens at that price, so the lower it ends, the more you get. Both are sealed. Your deposit only has to cover the budget, so it does not show it, and a large deposit says nothing about real demand.
NFTs
Choose how many NFTs, up to the auction's limit per bid, and your highest price for each. The deposit must cover both.

The deposit only has to cover the bid, and it can be set three ways:

Private
Rounds up to 1, 2, 5, 10 and so on: a token budget, or a collection bid's size and price. It shows neither exactly.
Exact
Exactly the budget, or price × NFTs. Cheapest to lock up, but anyone can work out your bid from it.
Custom
Any amount above what it covers. The further from it, the less it reveals.

Until bidding closes you can raise a bid: a higher price or a larger size, sealed again, with more deposit if it needs it. A bid can never be lowered or withdrawn, and a deposit never shrinks, so nobody can show demand and then pull it. An auction starts with room for 256 bids and grows on its own, 256 at a time, up to 1,024 for a token sale and 10,240 for a collection, so even a 10,000-NFT collection can sell out at one NFT a bid. However far it grows, it stays one auction with one final price. The bids that land on the extra room pay for it (see Fees). After that, a new bid can replace the one with the smallest deposit by depositing 10% more, and the replaced bid gets its whole deposit back. A replacement in the last 10 minutes keeps bidding open 10 more minutes, up to 24 hours past the original end, so nobody can be pushed out at the last second without time to answer.

The final price

Bids are lined up from the highest price down. The final price (in auction terms, the clearing price) is the highest price at which the bids at or above it cover everything for sale: for tokens, what their budgets buy at that price; for NFTs, how many they ask for.

  • Bids above the final price win. A token bid spends its whole budget at that price; a collection bid gets every NFT it asked for.
  • Bids exactly at the final price share what is left: token bids by budget, collection bids by size. Shares are rounded down. Tokens lost to rounding are never made; NFTs lost to rounding go to the earliest of those bids, one each, so every NFT is sold. Three NFTs and four bids of one each at that price: the first three bids win.
  • Bids below it win nothing and get their whole deposit back.
  • If the bids never cover the supply, a new token's sale does not go ahead: no token is made and every bid is refunded in full. In a collection sale every valid bid then wins at the minimum price, and the NFTs nobody won are never minted.

A bid below the minimum price counts as no bid, and so does a collection bid that asks for too many NFTs or whose deposit does not cover them. It is refunded in full.

With more than 256 bids, Arcium finds the same price a page of 256 bids at a time, four bits of the price per pass over the pages: 9 steps for 2 pages, 25 for 4, 313 for a collection's full 40 (about an hour). Each pass reveals only the next four bits of the final price, which becomes public anyway; the demand added up in between stays encrypted. Bids are still checked and settled four at a time, so the more bids, the longer settling takes after bidding ends.

Drops and collections

NFTs can be launched two ways, as on OpenSea. Either way they sell through the same sealed auction: buyers bid for a number of NFTs, everyone who wins pays one price, and which NFTs each winner gets is drawn at random after the sale.

Drop
A whole collection at once. Upload one image per NFT, up to 10,000, or one image every NFT shares, or link to metadata you host. A metadata sheet can give every NFT its own name, description, link and traits. The art can stay hidden until the sale ends.
Collection
Built item by item, up to 500 items. Each item has its own image, name, description, link and traits, and a number of editions: an item with three editions is three NFTs, named Name #1 to Name #3; an item with one is named just Name.

The metadata sheet

A CSV file in the format OpenSea uses for drops, one row per NFT. Every column is optional, and spreadsheets saved with semicolons work too. The launch page offers a template with your files already listed.

ColumnWhat it holds
tokenIDThe NFT's number, from 1 (or from 0) with none missing. Without it, rows are numbered in order.
nameThe NFT's name, up to 24 bytes, for drops of up to 500 NFTs. Leave it empty to name them Name #1, Name #2 and so on.
descriptionThe NFT's own description; without one, the collection's.
file_nameWhich of the chosen images the NFT shows. Without it, images go in file-name order.
external_urlA link to the NFT's page on your site (https).
attributes[Trait]One column per trait, such as attributes[Background]; an empty cell leaves the trait out.

Hidden art

  • A drop can keep its art hidden until bidding ends, as OpenSea's drops do before their reveal. Bidders see the collection's name, logo, description and a preview image.
  • The link to the art is fixed on chain when the auction opens, so the seller cannot swap the art after seeing the bids. Art uploaded here is signed at launch and stored encrypted, under a key that only the seller's wallet can make again; the reveal publishes exactly those files at that link. Art the seller hosts must be online at that link when they reveal.
  • The seller has 7 days after bidding ends to reveal. Until then no NFT can be minted and the seller is not paid. If they do not reveal in time, every winner takes their payment back and no NFT is ever minted.
  • Hidden art is stored twice, sealed at launch and in the open at the reveal, so it costs about twice as much to store. Hidden drops are numbered rather than named, as names would show before the reveal.

NFT collections

A collection sale creates a new Metaplex Core collection when the auction opens, of up to 10,000 NFTs. While the sale runs, only the auction can add NFTs to it.

  • NFTs are minted only when a winner collects them, straight to the winner. NFTs nobody wins are never minted.
  • The NFTs are Name #1, Name #2 and so on, or named per item: a collection's item list, stored with its auction, gives every NFT its item's name and edition. With one metadata file per NFT, #1 shows the first (0.json in the folder), #2 the second.
  • Which NFTs each winner gets is random. As each winning bid settles it takes the next places in line, one per NFT it won. Once every bid is settled, Arcium's network draws a random seed together, so no single node picks it, and the seed shuffles places into NFT numbers. Nobody knows the seed while places are handed out, so nobody can pick an NFT, not even by timing their bid or their claim. If the draw has still not happened when the safety net opens, each place keeps its own number so winners can always collect.
  • Sellers can upload the art when they launch: a collection image, and one image for every NFT or one per NFT. The app stores the images and their metadata on Arweave through ArDrive Turbo, where they are public and permanent. Sellers pick how: compressed, with each image made 100 KB or smaller, which is free up to 10 MB in all; or their original files, up to 10 MB each. Either way, hidden details such as where a photo was taken are removed first.
  • Storage beyond the free allowance is paid by the seller, once, in SOL, before the auction opens; the price comes from Turbo when they launch, and bidders never pay for storage. The seller's wallet signs a message that makes their upload key, then sends the SOL to Turbo's address with a note crediting that key. The key can only upload and spend that credit, and credit left over stays for the seller's next upload.
  • Minting costs about 0.0033 SOL per NFT in rent and Metaplex fees, paid by whoever collects. Up to 5 NFTs are minted per transaction.
  • A seller can add a royalty of up to 10% on resales, paid to them by marketplaces that honour it.
  • When the sale is closed, the seller becomes the collection's update authority. Like any creator, they can then change the collection's and its NFTs' metadata.

New tokens

A new token is sold before it exists, and only comes into being if its sale succeeds. The creator gives it a name, a symbol and an image, and picks a target of at least 10 SOL.

  • 50% of the supply for sale. Every new token has a total supply of at most 1,000,000,000. 50% of it is sold by sealed bid, from 0.1 SOL a bid. The minimum price is the target divided by that share, so the token is made only if the sale sells out.
  • Priced as FDV. A new token's prices are shown, and bid, as its fully diluted value: the price per token times its whole supply of 1,000,000,000. A bid names the highest FDV it would pay. The minimum FDV is twice the target, and the token starts trading at the final FDV.
  • Born with its pool. If it sells out, anyone can make the token: exactly the share that was sold and the share its pool takes are minted, and nobody can ever make more. Every SOL raised, less the sale fee, opens a Meteora pool at the final price with up to the other 50% of the supply. What the pool does not take is never made. Winners collect their tokens once the pool is open, so nobody holds any before it.
  • Or never at all. If it misses the target, no token is ever made and every bid's deposit comes back in full (the small processing fee each bid paid does not). The creator closes the sale and gets their deposit and rents back; only the listing fee and what settlement used are spent.
  • No creator allocation. The creator holds none of the supply and takes no SOL from the sale. They earn 80% of the pool's trading fees after Meteora's share, for good.

The token's pool

A new token's pool opens on Meteora as soon as its sale settles, at exactly the final price. Winners can trade right away, and the market starts from the price everyone paid.

  • Every SOL raised. All of the proceeds after the platform fee go into the pool, with the share of the supply that SOL buys at the final price. The creator picks the pool's trading fee (0.25%, 1%, 2%) before any bid, and it cannot change.
  • Locked forever. The pool belongs to the program, which has no way to withdraw it. Nobody, the creator included, can pull the liquidity.
  • No snipers. Trading opens with a 50% fee that falls to the pool's fee over 10 minutes, so bots gain nothing by buying first. Nobody holds the token before the pool opens, so nobody can open a pool of their own first.
  • Fees for as long as it trades. Meteora keeps 20% of every trading fee. Anyone can pay out the rest, in SOL: 80% to the creator and 20% to Veiling.

Checking a sale

Before you bid, a sale's page shows what you need to trust it, and links to where you can check it yourself.

  • Verified creator. A creator can link their X account to their sale: they post the sale's address from that account and sign with the wallet that opened it. The sale then shows a Verified badge with a link to the post. It proves who runs the sale, not that the project is good.
  • The lock, checked on chain. Once a new token's pool is open, its page reads the pool's position from Meteora and shows that all of its liquidity is permanently locked, with a link to the transaction that locked it.
  • Who can bid. A creator can open a sale to everyone, or only to the wallets on a list, and limit how much each listed wallet can deposit. The rules are set in the same transaction that opens the sale, so they apply to the first bid, and the list is published so every bidder can check it.
  • Reminders. Remind me on a sale adds it to your calendar, or sends a browser notification or an email 30 minutes before bidding ends and again when the sale is over.

Fees

FeeNowWho pays, and when
Listing0.02 SOLThe seller, when the auction opens. Not refunded if the auction is cancelled.
Sale1% of the proceedsOut of the proceeds: when a collection's seller claims them, or when a new token's pool opens. Buyers pay nothing extra.
Processing fund0.0356 SOL per auction (0.003 SOL more for a collection), 0.0026 SOL per bidThe seller when the auction opens, and each bidder when bidding. It pays whoever runs the private steps that settle the sale. Not refunded to bidders; what is left goes back to the seller. If more than 256 bids come, it also pays for the extra room and for finding the price across it: each bid that lands there adds a room fee, its share of that room (about 0.0011 SOL), so full room pays for itself, and what partly filled room leaves short comes out of the proceeds.
NFT mintingabout 0.0033 SOL eachWhoever collects the NFT. This is rent and Metaplex's fee, not a platform fee.

The program caps the platform's fees at 0.5 SOL to list and 5% of a sale. A seller opens an auction only at the fees shown when signing, and each auction keeps the sale fee it opened with. Account rent for the auction and every bid comes back when they are closed.

The private steps after bidding (checking the bids, finding the price, settling each bid and, for a collection, the shuffle) each cost a network fee to start. Anyone can start them, and each pays whoever did it a fixed reward from the auction's processing fund once it succeeds, a little above that fee. So a sale does not depend on the seller, the bidders or us being online, and running the steps never costs anyone money.

What stays private

PublicPrivate
How many bids there are, each deposit and the total depositedThe price of every bid, winning or not
The final price and the demand at and above itThe budget of every losing token bid and the size of every losing collection bid
What each winner received and paidEvery bid while the bids are checked
A hidden drop's details, and the link its art will be atA hidden drop's art, until its seller reveals it

Deposits are public, but a deposit only covers a bid: a token bid's budget and a collection bid's price times size are sealed, and a deposit can be larger to hide them. A winning bid's budget or size becomes known when it is settled, because its payment is public. Veiling shows only the total deposited and never lists who bid. Solana itself is public, though: each deposit and the wallet that made it can be read from the chain by anyone who looks. Bids exactly at the final price are known to be at it once settled.

Your own bids' prices and sizes are saved on chain next to each bid, encrypted under a key that only your wallet can make by signing a message. That is how you see them on another device: sign once and they show. Nobody else, including us, can read them. The small rent each note holds comes back when you collect the bid.

If something gets stuck

If Arcium's network stops answering, nothing stays locked. 3 days after bidding ends, or one day for a new token, anyone can return an unsettled bid's whole deposit to its owner. Settled bids can always be collected: a collection's seller can claim what they paid, and a new token is made with what its settled bids bought.

A hidden drop that its seller does not reveal within 7 days of the end of bidding pays every winner back in full instead of minting anything; anyone can send those refunds.

Stats and points

Every step after bidding is public and paid from the sale itself, so a keeper bot run by Veiling takes each sale to its end as soon as bidding closes: checking the bids, finding the final price, working out every bid, making a new token and its pool, and sending out tokens, NFTs and refunds. If it is ever slow, anyone can press Finish the sale on the sale page: you add a little SOL for network fees to a one-time wallet in your browser, it runs the remaining steps, and what is left comes back to you along with the steps' rewards.

The Stats page counts everything since the first sale, read from the program's transaction history, and ranks wallets by points:

  • 100 points for every SOL you pay for what you win;
  • 50 points for every SOL your sales raise;
  • 5 points per bid, up to 3 bids in each sale;
  • 5 points for each finishing step you run;
  • 25 points for each friend you invite who wins in a sale, plus 10% of the buying points they earn. Your invite link is on your dashboard, and can end in your X name.

Season 0 counts the same points for what happens during the season only, on its own leaderboard.

Points have no cash value, and the rules may change.

Questions

What is Veiling?
Veiling is a launchpad on Solana that sells new tokens and NFT collections by sealed-bid auction. Buyers bid in private, and when bidding closes one final price is found that every winner pays.
How does a sealed bid stay private?
Your price is encrypted in your browser before it leaves it. Arcium's network checks and settles the bids without anyone, Veiling included, seeing them. Only the final price is made public.
Does every winner pay the same price?
Yes. Every winner pays the final price, which is never above their own bid. Bids below it win nothing and get their whole deposit back.
How does a new token launch work?
50% of the supply is sold by sealed bid over 1, 2 or 5 hours. If it sells out, the token is made and everything raised, less the platform fee, opens a Meteora pool at the final price, locked for good. If not, no token is ever made and every deposit comes back in full.
What does FDV mean on Veiling?
A new token's prices are shown and bid as its fully diluted value (FDV): the price per token times its whole supply of 1,000,000,000 tokens. A bid names the highest FDV it would pay, and the token starts trading at the final FDV.
Can a token's creator sell into the market or mint more?
No. The creator gets no tokens and none of the SOL raised, the pool's liquidity is locked forever, and the token's mint is closed for good right after it is made.
What does it cost?
Sellers pay a 0.02 SOL listing fee and 1% of what the sale raises. Each bid pays a small processing fee for the private steps that finish the sale. Deposits that are not spent come back in full.
What happens if a sale gets stuck?
Nothing stays locked. If Arcium's network stops answering, anyone can return every unsettled bid's whole deposit to its owner one day after bidding ends for a new token, or three days for an NFT collection.
Which wallets work with Veiling?
Phantom, Solflare, Backpack and other Solana wallets that support the Wallet Standard.

Source code

Veiling is open source: the Solana program, the Arcium circuits that work with the sealed bids, and this app are all on GitHub. Anyone can read how bids are sealed, how the price is found and where every lamport goes, and check them against the program on chain.

Like any software, Veiling's program and circuits may contain bugs. Bid only what you can afford to lose.