Experience our multichain game demo leveraging In-App Wallets and Account Abstraction built in three weeks - Web3 Warriors.
Build games for WebGL, Desktop, and Mobile using 1000+ supported chains, with various login options!
Wallet Provider | WebGL | Desktop | Mobile |
---|---|---|---|
In-App Wallet (Email, Phone, Socials, Custom) | ✔️ | ✔️ | ✔️ |
Ecosystem Wallet (IAW w/ partner permissions) | ✔️ | ✔️ | ✔️ |
Private Key Wallet (Guest Mode) | ✔️ | ✔️ | ✔️ |
Wallet Connect Wallet (400+ Wallets) | ✔️ | ✔️ | ✔️ |
MetaMask Wallet (Browser Extension) | ✔️ | — | — |
Smart Wallet (Account Abstraction) | ✔️ | ✔️ | ✔️ |
✔️ Supported ❌ Not Supported — Not Applicable
- Download: Head over to the releases page and download the latest
.unitypackage
file. - Explore: Try out
Scene_Playground
to explore functionality and get onboarded. - Learn: Explore the Unity v5 SDK Docs and the .NET SDK Docs to find a full API reference.
Notes:
- Tested on Unity 2021.3+, 2022.3+, Unity 6 Preview. We recommend using 2022 LTS.
- Newtonsoft DLL included; deselect if already installed to avoid conflicts.
- If using .NET Framework and encountering
HttpUtility
errors, createcsc.rsp
with-r:System.Web.dll
underAssets
. - Use version control and test removing duplicate DLLs if conflicts arise.
- Build Settings: Use
Smaller (faster) Builds
/Shorter Build Time
. - Player Settings: Use IL2CPP over Mono when available.
- Stripping Level: Set
Managed Stripping Level
toMinimal
(Player Settings
>Other Settings
>Optimization
). (Alternatively, if you do not want to use Minimal Stripping, you may use a linker.xml instead to preserve assemblies that are being stripped and causing errors at runtime)
- WebGL Template: None enforced, feel free to customize!
- Compression Format: Set to
Disabled
(Player Settings
>Publishing Settings
) for final builds. - Testing WebGL Social Login Locally: Host the build or run it locally with
Cross-Origin-Opener-Policy
set tosame-origin-allow-popups
.
Example setup for testing In-App Wallet (Social Login) locally:
// YourWebGLOutputFolder/server.js
const express = require("express");
const app = express();
const port = 8000;
app.use((req, res, next) => {
res.header("Cross-Origin-Opener-Policy", "same-origin-allow-popups");
next();
});
app.use(express.static("."));
app.listen(port, () =>
console.log(`Server running on http://localhost:${port}`)
);
// run it with `node server.js`
No action needed for hosted builds.
- EDM4U: Comes with the package, resolves dependencies at runtime. Use
Force Resolve
fromAssets
>External Dependency Manager
>Android Resolver
. - Redirect Schemes: Set custom schemes matching your bundle ID in
Plugins/AndroidManifest.xml
or equivalent to ensure OAuth redirects.
See https://portal.thirdweb.com/unity/v5/migration-guide
For any questions or support, visit our Support Portal.
Thank you for trying out the Thirdweb Unity SDK!