Answers for your first build, your next launch, and everything after.
29 questions
UniPlays brings browser games, game tokens, and creator tools together. Players can discover a game, play it, and explore its token from the same game page.
Creators can start with a template or their own browser game, add features through the SDK, then validate, preview, and prepare a launch.
No. You can use the SDK for standard player and token features without writing their underlying contracts. Start with a template, bring your own code, or work with an AI coding agent.
An agent can help build and check your game. You still need to test the gameplay and review the result before launch.
No. Your game runs in the browser. Its token launch, token trades, and supported item transactions happen onchain. Movement, controls, and other gameplay do not need a transaction for every action.
Use onchain features where they add something to your game. For gameplay that needs trusted results, use a backend that verifies the player and the action.
Players can start as guests without signing in. A game may set token requirements for particular features, but basic guest play does not require a wallet.
Guest SDK saves stay with that guest identity and expire after 30 days. Account saves support access across devices.
You need a wallet session to launch a game or trade tokens. Players also need one for wallet-based actions, such as sharing their wallet address or checking their token balance.
Token gates return false without a wallet. Keep guest gameplay available wherever your game does not need these features.
Yes. Bring a browser game or a supported single-threaded web export. Phaser, Pixi, Three.js, Godot, Unity, PlayCanvas, Construct, and vanilla JavaScript are supported.
Set the matching engine in game.json, keep executable code in the bundle, and place boot code in external JavaScript files. The build guide explains the packaging requirements.
Yes. Declare storage in your game’s capabilities and use the SDK to read and save progress. Account saves support access across devices; guest saves are tied to the guest identity and expire after 30 days.
Your game decides what to save and how to handle changes between versions. Use the storage methods in the SDK reference to get started.
Connect your agent to the UniPlays MCP server to give it SDK documentation, templates, and tools for uploads, validation, previews, and game management. You can ask it to build a game, fix validation errors, and prepare an update.
The publish tool prepares an unsigned transaction request. You review the launch or update and sign it with your wallet.
Bundle JavaScript and WebAssembly with your game. The sandbox blocks inline scripts, remote scripts, eval, the Function constructor, service workers, and threaded WebAssembly.
For external data APIs, declare the HTTPS origins in network.allow. These rules keep game code within the platform’s runtime boundaries.
Each game version supports an upload of up to 90 MB and 400 MiB extracted, with up to 3,000 files. Individual files can be up to 64 MiB.
Keep the compression ratio at or below 20:1 and folder depth at or below 16. Include game.json at the root of the archive.
UniPlays is still in testing, and availability depends on the feature and deployment. Use the SDK reference and test your chosen features in a preview before building your game around them.
Items, purchases, rewards, and optional hosting may need services or contracts that are not enabled in every environment. Handle not_available and related errors so the rest of your game can keep working.
Upload your bundle, run full validation, and play through the preview. Fix errors, review warnings, and check controls, saves, and the player experience before launch.
Static validation checks the archive, manifest, scripts, and WebAssembly. Full validation adds a browser test. The launch page uses full validation; with MCP, set mode: "full" when calling validate.
The launch fee is a fixed 0.0004 ETH, plus network gas and any optional first token purchase. Games that run without a backend, or use your own backend, do not need UniPlays hosting credit.
Optional UniPlays backend hosting starts with $25 prepaid credit when available. Review the payment details in the launch flow. Hosting payments are nonrefundable, unused credit carries forward, and there is no monthly subscription.
There is no reserved token allocation for the creator or UniPlays. Creators can buy tokens, including an optional first purchase in the launch transaction.
Creator trading fees are separate from token ownership. You do not need a free token allocation to receive your share of the standard trading fee.
When a game token trades, the standard fee is 1% of the WETH amount. That fee is split equally: 50% to the creator and 50% to UniPlays. This applies on the bonding curve and the graduated pool.
Creators can withdraw accrued fees in WETH. Earnings depend on trading activity; they are not guaranteed.
Each game launches an ERC-20 token with a fixed supply of 1 billion and 18 decimals. Players can explore and trade that token from the game page.
The current launch contracts put approximately 71.43% on the bonding curve, up to 20.41% into liquidity at graduation, and 8.16% into a permanent token lock. The reserved liquidity tokens the graduation fee frees are burned. The creator and platform receive no free allocation.
When the bonding curve completes on Robinhood Chain, a graduation fee of 0.3 WETH goes to UniPlays from the raised funds, never more than half of the WETH that would seed the pool. The rest of the raise and the same share of the reserved liquidity tokens create a trading pool that opens at the curve’s final price within rounding, and the reserved tokens left over are burned. Liquidity principal and the permanent token reserve are locked without a withdrawal path.
The 1% trading fee continues in the pool, split 50% to the creator and 50% to UniPlays. A graduated token trades through the supported pool integration. Availability depends on the network and configured router.
No. After initialization, the game token contract has no additional minting, transfer tax, blacklist, or pause function. Its supply is fixed.
Suspending a game on UniPlays does not pause the underlying token contract.
Holder rewards send all or part of a game’s extra trading fee to the holders of its earning NFTs. Each earning NFT type has a weight, and rewards are shared by weight. The split and the weights are fixed at launch.
Rewards follow the NFT: whoever holds it when claiming receives what it has earned, so a seller can claim before selling, and a contract that holds the NFT can claim for it. A burned NFT stops earning, including one sold to the game’s item desk, which burns what it buys. The developer chooses how earning NFTs are handed out and may hold them, unless a type’s whole supply is in a draw. The item resale royalty never goes to holders.
A serial earns from its mint. Its share from before the mint is taken from holders when it is minted: the token is burned and the WETH goes to UniPlays. Shares of serials never minted stay in the contract for good.
Income is claimable only once it is collected. A claim made before a collection pays less than one made after it, and whoever holds the NFT later gets its share of what is collected then.
Only serials within both the collection cap and the table cap earn, and a type declared stackable earns nothing. The rewards page lists the permissions UniPlays prepared for its own key; each excluded every weighted type and every draw type when it was prepared. A permission the developer signs for that address by other means is not listed there.
A game’s treasury is not locked: the developer can move its funds to any address. Awards, item desk purchases and chance prizes each have their own daily budget, counted in UTC days. Over any 24 hours the treasury pays out at most six times the daily limit set at launch, or four times when no chance game is set up. That counts awards and desk purchases paid plus prizes set aside, less prize money returned in the same period, from older rounds too. Repeated transfers, deposits and later payouts from older rounds are not counted. Current limits can be lower, and older vouchers and firm bids keep the limits that applied when they were made.
One player address receives at most three times the per-player launch limit in a UTC day from awards and the item desk together. Chance winnings and other token transfers are not counted, and each address has its own limit. A new payout signer cancels every unpaid award.
Each play is decided by a public drand random number published after the play. The draw panel shows when UniPlays reveals a draw’s results. If a result has not arrived 30 seconds after its round, the game page offers a Reveal button, which costs a network fee and reveals every earlier waiting play too.
Plays settle in order, so a play further back waits for the plays ahead of it. The first play in line, if nobody reveals it, times out 24 hours after its round while no later random number is stored, and 7 days after it otherwise. Once its random number is stored it must be revealed instead. When the first play in line times out, every play pending at that moment becomes refundable, including a win left unrevealed behind it. A refund returns the price but still counts toward the wallet’s play limit.
UniPlays sends each win to its winner for the draws it reveals. A win still waiting shows in the draw panel with Claim prize, which can send it to another address if your wallet cannot receive it.
Games can define ERC-1155 items and a marketplace priced in the game token. The assets.* methods cover inventory and item data; market.* covers listings, quotes, and trading actions. One manifest version declares at most 256 item types, and a game’s collection holds at most 4,096 over its whole life; a declared type is never removed.
Availability depends on the game’s declared catalog, the deployment, and the required confirmation services. Test these features in preview: an item outside the pinned catalog and a listing read the market service cannot answer both refuse with not_available, so keep the rest of your game working when one does.
Set the creator royalty explicitly with assets.royaltyBps: from 0 to 1000 basis points, which is 0% to 10%. The royalty is deducted from the seller’s proceeds when an item sells.
This item resale royalty is separate from the game token’s trading fee.
Declare item IDs, names, and positive decimal prices in store.items. Use store.pricing set to usd for dollar prices, or token for a fixed amount of your game token. Publish a new manifest to change purchase prices.
store.purchase opens the shell confirmation, which prices the item from the pinned manifest and settles through the Checkout contract this network pins. A network with no Checkout binding refuses the purchase instead of charging the player, so test the flow in your preview.
USD prices convert on chain at a 30-minute average price, and a game’s market must pass a depth floor first. On a thin market, a buyer who holds most of the token’s float can spend it on USD-priced items or draws at catalog prices worth several times what selling it would return (about 4.3 times at the default floor), because no per-buyer cap applies; the floor and monitoring bound this, not a limit per wallet. After graduation, holders selling back into the pool can also lower its depth to about 57 % of what the floor measured. Keep a USD catalog small while the market is young, or price in tokens.
Declare the draw in draws and its prize types in assets, then publish. Open your game under My games and use the Paid draws tab. Create draw asks UniPlays to prepare the call; this page rebuilds it from your published manifest and the pinned factory and sends nothing that differs. Creation fixes the price, odds, per-wallet limit, burn and prize pool for good, and a game can create at most 4,096 draws over its life.
The draw then mints its whole prize pool into its own stock. Review and sign its stocking delegation (up to 30 days, only for the draw and only for its prize types), which is stored in the draw. The page shows how many prizes are left, how many transactions that takes and the most the network fee can be. Stock mints the next call’s worth (at most 128 prizes), and Stock all sends as many calls as the stock needs, reading the draw before each one, so a refused or failed call stops it and the next Stock all goes on from what the draw holds. UniPlays keeps stocking where it can. Plays open one hour after the stock is complete, and from then on no other NFT of those types can be minted.
A draw holds the whole supply of its prize types, so a type with any mint cannot be drawn at all, and each type’s count in the draw must equal its supply. From creation until the stock is complete, a mint of a prize type by anyone but the draw (a voucher you signed, a key you delegated or a hosted reward key) stops the draw for good: it never opens, the prizes already stocked stay locked in it and its types stay reserved. Create draw revokes every voucher and key delegation first unless you untick it; bump the signer epoch in Settings yourself if you send the creation another way, and sign nothing that covers the prize types until plays open.
Upload a bundle with a higher version number, validate it, and sign the update with your wallet. Include developer notes to tell players what changed. The new version appears after the update transaction is confirmed and processed.
Updates can change game code, artwork, capabilities, gates, shop prices, and allowed network origins. The token’s name and symbol, its description and links, and the one-liner shown under your game’s name are set at launch and never change. To roll back, select a previously published version and sign the rollback transaction.
New hosted backend requests stop when the available credit cannot cover them. Parts of your game that work independently in the browser can continue, and protected saves are retained under the disclosed retention policy.
A confirmed manual recharge restores eligible hosting. It does not remove a security suspension. Existing valid NFT vouchers may still be redeemed, with network gas paid separately.
Access depends on the permissions you give the key. uniplays:read is required for tools such as scaffold, stats, token, versions, and list_items.
Add uniplays:publish for uploads, validation, previews, publishing, catalog updates, and leaderboard seasons. Create and manage access keys in your profile.
The hosted game and its platform calls are blocked. SDK calls return game_suspended until the suspension is resolved.
Suspension does not pause the underlying token contracts. Stop retrying blocked calls and contact UniPlays support to resolve the game’s status.