On this page
- Paste keys one per line, up to 200 characters each and 5,000 unused per product; duplicates are refused, and each paid buyer gets one key.
- If no key is free when the buyer's wallet is about to sign, the checkout stops and tells them the item sold out and nothing was charged.
- Keys are stored encrypted and you never see a whole key again, but receipt pages are public: sell keys that work once, and keep your own list.
How does a Fianto shop deliver a licence key?
A delivery code is a piece of text from a list you upload, given to exactly one paying buyer. For software that is a licence key; for games, a Steam or other store key; it can also be a voucher or a single-use invite. You turn on "Give each buyer a code" for a product in your shop, paste the list, and save. Single-use course coupons work the same way, as in selling an online course for USDC.
When a purchase is paid, the buyer sees their key on the receipt page with a Copy button, and it is in the buyer email if they gave an address. The checkout is the same hosted USDC checkout that every Fianto sale uses: the buyer signs one transaction from a Solana wallet, and the price moves from their wallet to yours in that transaction. There is no balance to withdraw.
Keys sit on top of the rest of the shop, which is covered in the no-code USDC shop post: a page at your-name.fianto.xyz, 23 themes, no custom domain and no cart. This post is about the keys.
How many keys can you load, and in what format?
| Rule | Limit |
|---|---|
| Format | One key per line; blank lines are skipped and each line is trimmed |
| Length | 1 to 200 characters, on one line, with no hidden characters |
| Unused keys per product | Up to 5,000 |
| Per request | The dashboard sends a long paste in batches of up to 500 |
| Duplicates | Refused, within the paste or against keys already added to that product, given out or not |
Duplicates are refused as a whole: the message names how many repeat, and nothing from that batch is added until you remove them. If a later batch of a long paste fails, the dashboard tells you how many were added before it stopped, so you can paste the rest. Letters, numbers and symbols are all fine.
Steam's default allotment is the same number, though it counts keys issued rather than keys waiting to be sold. Valve's Steamworks documentation says "Games and applications launching on Steam may receive up to 5,000 Default Release Steam Keys", as of 15 October 2026, with more reviewed case by case. Steam allows selling keys elsewhere, on conditions:
You should use Steam Keys to sell your game on other stores in a similar way to how you sell your game on Steam.
The same page says "It is important that you don't give Steam customers a worse deal than Steam Key purchasers", and that release-state override (beta) keys, generally limited to 2,500, must never be sold. Price your USDC listing with that parity rule in mind.
What happens to a key while the buyer is paying?
A key is reserved for a buyer while they pay, so two buyers never get the same key and nobody pays for a key that is gone. The sequence:
- The buyer presses Buy. A free key is usually held for that checkout for five minutes.
- When the buyer's wallet is connected and the transaction is built, just before signing, the hold is extended to the end of the 30-minute checkout, and to at least five minutes after that build.
- If no key is free at that moment, the checkout stops before the wallet signs anything and tells the buyer the item sold out while they were paying and nothing has been charged.
- Once the payment is final on chain, the held key becomes that buyer's for good. If the checkout ends unpaid, the key goes back to the free pool.
Two rules stop one person from emptying the shelf without paying. At least a quarter of the keys that nobody is paying for (and always at least one) stay out of reach of Buys that have not reached the wallet yet, and one wallet holds one key of a product at a time: when the same wallet starts paying in a second checkout, that checkout takes over the first one's key. When every free key is held by open checkouts, the shop shows the product as "Reserved" and asks visitors to check back in a few minutes, since an expired checkout gives its key back.
Paste your keys, publish the shop, get paid in USDC. You pay nothing, and there is no Fianto fee during the beta.
See the hosted checkoutWhat happens when your keys run out?
The product shows a disabled "Sold out" button, and under it a line telling visitors to ask your shop when it will have more, with your support email if you set one. Nobody can start a checkout for it. Your dashboard counts the keys as "left" and "given", and you get an email at the sale-notification address when five or fewer are left, once each time stock falls to that mark; adding keys above five resets it.
One edge case still delivers. A payment can settle after its checkout expired and its hold was released, and by then the shelf may be empty. That buyer has paid, so the receipt says the key will appear as soon as you add one, and you get an email saying a buyer is waiting. The next keys you add go to waiting buyers first, in the order they paid, and a buyer whose delivery email already went gets a second email with the key.
"Remove unused codes" deletes every free key of a product, for example a batch that leaked. Keys already given out or held for an open checkout stay.
Who can see a key after it is sold?
The buyer sees their own key once paid, and so does anyone they share the receipt link with: a shop receipt page is not private. You, the merchant, never see a whole key again. Keys are stored encrypted, and the dashboard shows only the last four characters of a key of 12 or more characters (two for 8 to 11, one for 6 or 7, none below that), next to the purchase it went to, enough to tell keys apart and never enough to use one.
- Keep your master list. Fianto cannot show you the full key a buyer received, so the CSV or keygen output you pasted from is your record, matched by those last characters.
- Sell keys that activate once, or once per machine, and check activations on your own licence server. A key that works for anyone forever is not safe on a public receipt.
- To kill a key after a refund, revoke it on your licence server or store. Fianto cannot take a key back, and a refund is USDC you send back from your own wallet.
Which kinds of keys fit delivery codes?
| What you sell | Fits | How to set it up |
|---|---|---|
| Steam or other store keys | Yes | One key per line; follow the store's parity rules |
| Software licences with activation limits | Yes | Paste pre-generated keys; check activations on your server |
| A bundle of three keys | Yes | Make the bundle its own product and put the three keys on one line, separated by spaces, within 200 characters |
| Yearly licences | Partly | One key at the first payment; expire it yourself when the subscription ends |
| Keys generated per buyer | No | Use the checkout API and webhooks, and issue the key from your server |
A buyer cannot pick a quantity: each purchase is one price of one product. A "mystery key" sold at a fixed price, where the buyer does not know which game they get, deserves a look at Fianto's acceptable-use policy first: it lists games of chance with a prize under unlicensed gambling. That is a question to raise with Fianto before listing, not legal advice.
What does selling keys for USDC cost?
You pay nothing, and a one-time key sale carries no USDC network fee. The buyer pays your price, plus the Solana fee of the one transaction they sign, under $0.01; the checkout tells them the exact SOL they need. There is no Fianto fee during the beta; after it, the buyer pays about 0.1 to 0.5% on top of your price, and you still pay nothing.
A worked example with an invented studio: Thrummet loads 400 keys for its game at 12.00 USDC. If all 400 sell, 4,800.00 USDC lands in its wallet, sale by sale, and each buyer paid 12.00 USDC plus their transaction fee in SOL. Stock falls to five, the low-stock email goes out, Thrummet pastes the next batch.
Shops publish and take payments once your merchant account is approved, so submit for review first. Then add the product, turn on codes, paste a small batch, and buy one yourself to see the receipt. The buyer's side is in the Fianto docs on buying from a shop, and refund mechanics are in how to refund a USDC payment.