No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
Use casesProduct8 min read

Sell licence keys and game keys for USDC, one key per paid buyer.

Fianto's shop sells licence keys and game keys through delivery codes: you paste your keys into a product, each buyer who pays in USDC gets exactly one, on the receipt and in the buyer email, and the product shows as sold out when none are left. A product holds up to 5,000 unused keys, a key is reserved while its buyer pays so two buyers never get the same one, and you are emailed when five or fewer remain.

On this page
How does a Fianto shop deliver a licence key?How many keys can you load, and in what format?What happens to a key while the buyer is paying?What happens when your keys run out?Who can see a key after it is sold?Which kinds of keys fit delivery codes?What does selling keys for USDC cost?SourcesQuestions
TL;DR
  • 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?

RuleLimit
FormatOne key per line; blank lines are skipped and each line is trimmed
Length1 to 200 characters, on one line, with no hidden characters
Unused keys per productUp to 5,000
Per requestThe dashboard sends a long paste in batches of up to 500
DuplicatesRefused, 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.

Steamworks documentation, Steam Keys

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:

  1. The buyer presses Buy. A free key is usually held for that checkout for five minutes.
  2. 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.
  3. 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.
  4. 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 checkout

What 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 sellFitsHow to set it up
Steam or other store keysYesOne key per line; follow the store's parity rules
Software licences with activation limitsYesPaste pre-generated keys; check activations on your server
A bundle of three keysYesMake the bundle its own product and put the three keys on one line, separated by spaces, within 200 characters
Yearly licencesPartlyOne key at the first payment; expire it yourself when the subscription ends
Keys generated per buyerNoUse 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.

Sources
Questions

Questions about selling keys for USDC.

How many licence keys can one product hold?

Up to 5,000 unused keys per product, each 1 to 200 characters on one line. The dashboard sends long pastes in batches of up to 500.

Can two buyers receive the same key?

No. A key is held for one checkout while the buyer pays and assigned to one purchase only, and a key already in the list cannot be added twice.

What does the buyer see if the keys run out?

A disabled Sold out button. If no key is free when the wallet is about to sign, the checkout refuses before anything is paid.

Can I see which key a buyer received?

Only its last few characters, next to the purchase. Keys are stored encrypted and never shown to you in full, so keep your own list.

Do subscribers get a new key at every renewal?

No. A subscriber keeps the key from their first payment, and renewals hand out no new key.

Read next.

Use cases8 min read

Sell an online course for USDC: shop, Zapier enrolment or coupon codes

Keep the course where it is and sell it from a Fianto shop: when a buyer pays in USDC, the shop sends a purchase.paid event to a Zapier or Make webhook, and an action such as Teachable's "Enroll User in Course" or Kajabi's "Grant Access to an Offer" enrols the buyer's email. For a one-time course with no automation at all, paste single-use coupon codes from your course platform as delivery codes, one per buyer.

Product7 min read

Zapier and Make automations for USDC shop sales

A Fianto shop can send its sales to Zapier or Make with no code: paste a Zapier "Catch Hook" URL or a Make "Custom webhook" URL into Connect an app in your shop settings. Fianto then posts two events as flat JSON, purchase.paid when someone pays and subscription.ended when a subscription bought in the shop ends. Only shop sales are sent: payment link and API sales, renewals and failed renewals are not.

Guides9 min read

How to refund a USDC payment and record it, with a refund policy template

To refund a USDC payment taken with Fianto, you send USDC from your own receiving wallet to the customer's wallet, because Fianto never holds the money and has no refund API. That transfer is yours: you sign it and pay its Solana fee in SOL. Fianto charges you nothing for it, and cannot see it either, so you keep the record yourself.

Load the keys. Fianto hands them out.

Turn on codes for one product and paste your first batch.

New posts are announced on X and Discord.