NFT / Marketplace·EVM · Polygon · Arbitrum · Base · Solana · Avalanche
Stardust
Wallet-as-a-Service (WaaS) for game studios. Stardust provisions custodial MPC wallets per player, signs transactions server-side via REST + TypeScript SDK, and exposes high-level NFT minting / asset distribution endpoints so games can ship Web3 features without surfacing seed phrases or gas to players.
- 01custodial player wallets for games (MPC)
- 02studio-managed NFT minting and distribution
- 03Unity/Unreal games that want a backend-only Web3 integration
- 04abstracting gas + signatures behind game accounts
- 05EVM and Solana asset issuance
- pnpm add @stardust-gg/stardust-custodial-sdk ethers
| Variable | Scope | Description |
|---|---|---|
| STARDUST_API_KEY | Server | Server-side API key from the Stardust developer dashboard (waas.stardust.gg). |
| STARDUST_APPLICATION_ID | Server | Stardust application ID that scopes wallets to your game. |
Use Stardust server-side: `const sdk = new StardustCustodialSDK(process.env.STARDUST_API_KEY!)`. For each new player call `sdk.createProfile()` then `profile.wallets.create({ chainType: 'EVM' })` to provision a custodial wallet, persist the profileId on your user record. To sign, fetch the wallet (`sdk.getProfile(id).wallets[0]`), get an EthersSigner via `wallet.getEthersSigner(provider)`, and submit transactions from your backend so the player never sees gas or a seed phrase. Asset distribution can use the Stardust Asset / Mint REST endpoints (`POST /assets/mint`) for studio-issued NFTs. Never call Stardust from the browser — the API key is server-only.
- ⚑Stardust is fully custodial — wallets are MPC-managed by Stardust, so there is no seed phrase fallback and account recovery is gated on your auth provider; document the trust model to players.
- ⚑The signer surface is currently Ethers-style (EVM) with Solana support via separate signers — Unity/Unreal games must proxy through their own backend rather than calling Stardust from the game client.
- ⚑Withdrawals to external (self-custody) wallets are an explicit UX flow, not the default — design the in-game economy assuming most players never withdraw, and add a clear 'export to MetaMask' path when they do.
- ⚑Gas is paid by the studio (your funded relayer/paymaster setup) — unfunded apps will see opaque transaction failures rather than user-facing errors.
- ⚑Rate limits on the WaaS API are per-app and undocumented in tiers — batch wallet creation during onboarding spikes (e.g. game launch) and add backoff.
- ⚑Stardust's mint API returns asynchronously; poll the asset/job status endpoint before showing the NFT in-game to avoid race conditions with the player UI.