Gamehub
A little more you.

Sign in to save your favorites and make yourself at home.

For developers and publishers
Browse docs Payouts & withdrawals
On this page

Show what was paid.

Try it first

Trace a receipt to an actual transfer#

You need A studio-owned test receipt and the intended recipient address.

  1. Distinguish IAP revenue from contest entry funds and prize credit.
  2. Inspect the relevant settlement or withdrawal transaction.
  3. Confirm its canonical receipt and recipient balance.

Check your result You can show whether funds transferred or remain claimable, with a transaction and recipient.

Separate studio revenue, credited player prizes, withdrawal transactions and completed transfers.

Studio IAP revenue#

Configure your payout wallet before paying with your own studio key. IAP’s Playmos fee is 1%; use the receipt’s exact amount, fee and net rather than rounding displayed cents into a ledger. A studio pool has its own immutable split; its studio share is paid to the configured sink at entry.

Legacy round payout notices#

rounds.payoutNotices({ roundId, wallet }) reads GET /v1/rounds/:id/payout-notices. The optional wallet filter must be a 20-byte address. Top-level status is the round’s status; each notice has its own status and integer amountMicro.

NoticeWhat the player sees
claimable, positive amountAvailable to withdraw. No transfer to the player is proven.
funded, positive amount, valid nonzero txHashA recorded funding transaction; reconcile that transfer.
Zero amountNo prize, even if a notice row exists.
Missing or invalid funding hashUnverified; do not label paid.

The shared sandbox’s documented path uses pull credits (prizepool_pull_credit). A settled round can still have claimable prizes. Never infer payment from notices.length.

Player withdrawals#

Read the balance through an RPC pinned to the key’s chain. The player uses rounds.withdraw for legacy PrizePool or epochs.withdraw for EpochPrizePool. The round notice route has no epochs twin; epochs use epochs.prize for the prize pool and withdrawable(wallet) for the pool’s credited balance.

Render pending, confirmed and failed withdrawal outcomes separately. A returned hash is not confirmation. Never turn an unavailable amount read into $0.00.

Operator push#

rounds.pushWinnings is a secret-key operation for settled legacy rounds and replays recorded notices. A 409 means the round is not settled. Calling it does not guarantee a funded notice; the pull-credit path stays claimable until a player withdrawal.

Bank payouts are not available#

Wallet revenue uses the configured payout address. payouts.setMode('usdc') does not forward the service-required payoutWalletAddress; do not use that helper as a complete wallet setup. Configure IAP with the server-only payouts.setAddress helper or through POST /v1/studio/payout. A later wallet change remains pending until independent approval. For the lower-level mode route, explicitly send both mode and payoutWalletAddress to POST /v1/payouts/mode on your backend. The SDK exposes createOnboardingLink and fiat mode, but the sandbox’s Bridge bank onboarding/off-ramp is a stub. Do not offer it as working ACH/SEPA or infer bank completion from a returned link.

If it did not work#

A prize pool total or WinnerCredited event is not money received. Inspect the recoverable credit and original payout path.

Try one variation Compare WinnerSent with WinnerCredited in existing test evidence. Explain which proves a transfer and which needs recovery.

Continue with the next guide →