Releases: thirdweb-dev/unity
v4.0.1
What's Changed
All about smart wallets! Create session keys, add and remove admins - enable endless upgrading and signless possibilities for ALL types of EOAs.
- [Native] Exposed
sdk.wallet.CreateSessionKey
- you are now able to easily grant another wallet access to your smart account, with many restrictions possible. - [Native] Exposed
sdk.wallet.AddAdmin
- you can now add new admins to your smart wallet. - [Native] Exposed
sdk.wallet.RemoveAdmin
- you can now remove admins from your smart wallet. - [Native] You can now pass
smartWalletAccountOverride
optional parameter tosdk.wallet.Connect
to connect to a Smart Wallet you are not necessarily the admin signer of. - [Native] Fixed a bug where asking for a signature would get the smart wallet stuck in force deployment mode.
What this means
This may be a small patch, but it unlocks quite literally endless possibilities.
Example Scenarios
- Connect a user to a smart wallet using their Metamask wallet as EOA. Create a session key for a signless wallet like LocalWallet, EmbeddedWallet or your backend wallet - the user now only has to sign once to perform that transaction, and you can connect the new signer to the user's Smart Wallet to interact with contracts on their behalf.
- Connect a user to a smart wallet using a guest wallet as EOA, not asking for commitment from the get go - such as a LocalWallet or EmbeddedWallet EOA. You can then go through an upgrade path where the user can claim the generated smart account with all its assets. Simply add the Metamask account as that smart wallet's admin!
- You might've heard of thirdweb Engine, and you want to execute your transactions using it. Simply create a session key for your backend wallet to execute transactions on your user's behalf. The built in scoping as well as your server acting as a middleman, makes for a great flow!
v4.0.0
It's finally here!
Embrace the modularity of Embedded Wallets as we begin this journey in bringing you the best wallet UX you've seen in Web3 Gaming.
Pair them with Smart Wallets to enhance user experiences with signless and gasless experiences, retaining assets across multiple apps.
What's Changed
- Embedded Wallets - WebGL, Standalone, Android and iOS support
- Email - Login with your email using a one-time password. Automatically login if you weren't signed out previously.
- Google - Login flow through browser on standalone platforms, in app for other platforms.
- Custom Auth - Bring your own auth, currently supports OIDC compatible methods.
- Cross-platform/device compatibility - Ensures you get the same final wallet address no matter where you login from.
- Added
WalletProvider_EmbeddedWallet
UI prefab and related script. - Removed
Magic
login option and related code/prefabs/sprites.- Also removed
WebView
package and related scripts/plugins.
- Also removed
- Removed
Paper
login option and related code/prefabs/sprites. - Added
AuthOptions
to Wallet Connection API. - Added
ThirdwebConfig
to configure mobile custom schemes for deeplinking purposes through theThirdwebManager
. - Added
Thirdweb.Browser
collection of native browser integrations. - Added post-gradle generation script for Android platforms.
- Various improvements and bugfixes.
NB: Login with Email feature in WebGL will automatically be unlocked by end of October, no SDK update required.
This is a major update, you must remove previous SDK folders and reimport for the best upgrade experience.
Additional Links
v3.3.1
What's Changed
- [Native] Parallelized UserOps using multidimensional nonces - sending multiple Smart Wallet transactions at the same time is now much faster!
- [Native] Refactored provider used for reading, added sdk analytics.
- [WebGL] Updated bridge, added sdk analytics.
v3.3.0
What's Changed
-
New Wallet Provider - EmbeddedWallet! The ultimate, secure and seamless email and social login experience.
- Login with the same email cross platform, get the same wallet address.
- Works great as the signer (personal wallet) to use Smart Wallets (ERC4337) with.
- Instead of the normal OTP flow, you can optionally choose to sign in with google (WebGL only for now)
- Does not require the user to keep a recovery code.
- Non-custodial.
- Enable this wallet easily by providing a Client ID with Embedded Wallets service enabled.
-
[General] The Connect Wallet Prefab now exposes
personalWallet
in the Inspector, making it easier to test different EOAs with the Smart Wallet option.
-
[Native] You can now provide a Bundle ID Override as part of the
ThirdwebManager
General Settings, useful for testing api keys.
-
[Native] Smart Wallet Native Transaction Queuing - sending multiple transactions in quick succession / edge cases fixed.
-
[Native] Your app metadata is properly passed to MetaMask now, and sessions are ended on Disconnect by default.
-
[General] NFTLoader in
Scene_Prefabs
spinner is now... less ugly! -
[General] Added Live Preview (Unity WebGL) to the Readme!
This is a minor update, meaning some structure or DLL changes occured. When upgrading, it is best to remove previous SDK files to avoid issues.
v3.2.1
What's Changed
- [WebGL] You can now pass recommended wallet ids to the WalletConnect modal, set in ThirdwebManager inspector to override defaults.
- [WebGL] Updated bridge.
- [General] Removed unnecessary third party Assembly Definitions.
v3.2.0
What's Changed
- Replace
AsyncAwaitUtil
package withRedcode.Awaiting
. - Add namespaces to a lot of third party packages to resolve issues importing in existing web3 projects.
- Follow Asset Store validation rules.
This is a minor update, meaning some structure or DLL changes occured. When upgrading, it is best to remove previous SDK files to avoid issues.
v3.1.1
What's Changed
- [General] Fixed all remaining compiler warnings.
- [Native] Reduced Smart Wallet user op hash polling to 2s + can send without waiting for receipt properly now.
- [Native] Fixed potential issue with
Wallet.Transfer
when using external wallet RPC over passed RPC.
v3.1.0
What's Changed
- [WebGL] Support
Contract.Prepare
andTransaction
Builder (low-level API)- Enjoy full control over your transactions, fine-tune and execute them!
- Send without waiting for receipts.
- Choose what you want to send gaslessly if you have gasless setup.
- Fine tune every part of your
Transaction
object. - Learn More
- [Native] Added support for
WalletConnectV2
(beta) - [Server] Fixed compilation/build issue related to a WebSocket script.
WalletConnectV2 Native Limitations:
- Switching networks is not supported
- Disconnecting then reconnecting may throw an error
This is a minor update, meaning some structure/DLL changes occured. When upgrading, it is best to remove previous SDK files if you encounter import issues.
v3.0.0
Thirdweb's Unity SDK 3.0.0 is officially here!
What's Changed
This Release
TransactionResult
return type now contains all transactionReceipt
data available, cross-platform.- Added
Show Debug Logs
flag onThirdwebManager
, and added more debug logs. - Upgraded the project to 2022 LTS.
- Cleaned up unused files.
- Reduced package size by 25MB.
- Updated main repo project settings.
Beta Releases Summary
- Improved Prefab_ConnectWallet UI/Script example.
- Integrated Hyperplay as a WalletProvider.
- Updated default IPFS gateway.
- Fixed MetaMask connection/request issues on mobile platforms.
- Added support for MetaMask OTP-based session connection/resuming.
- Updated WebGL bridge with bug fixes.
- Fixed transaction underpricing issue on Binance-related chains.
- Fixed issues related to adding a chain to ThirdwebManager.
- Added support for custom chains not available on Ethereum chainlists.
- Bugfixes and additional support for non-standard tokens with < 18 decimals transfers/claiming.
- Less restrictive type conversion for Contract.Read.
- Fix for Thirdweb Wallet Disconnect Null Reference.
- Added a flag to control SDK initialization in ThirdwebManager.
- Removed the default client ID, allowing customization.
- Added example scripts with missing namespaces.
- Added xai-goerli-orbit chain support.
- Support for passing a private key override to signature.Generate.
- Fixed compiler warnings in core scripts.
- Ability to pass chain IDs larger than the int type.
- Fixed Currency metadata issue.
- Updated WebGL bridge.
- Smart Wallets authentication/verification/signing improvements.
- Fixed issues with creating Smart Wallets with email wallet EOAs.
- Removed potential blockers in functions.
- Added support for Contract.ERC721.Claim for SignatureDrop contracts.
- Fetch additional currency metadata when fetching claim conditions.
- Installer editor popup for quick setup.
- Support for large chain ids (BigInteger) and Wallet.SwitchNetwork at runtime.
- Updated IThirdwebWallet with PrepareForNetworkSwitch function.
- ERC721AQueryable support for ERC721.GetOwned.
- Fixed an issue with Prefab_ConnectWallet.
- Added Thirdweb API Key support.
- Fixed blurry QR image.
- RPC overrides now passed to wallet providers correctly.
- Introduced IStorageUploader and IStorageDownloader interfaces.
- Improved Currency fetching.
- Fixed ERC20 transfers and improved WebGL performance.
- Introduced a new email wallet provider called Paper.
- Deprecation of WalletConnectV1 in favor of WalletConnectV2.
- Metamask SDK upgrade and Nethereum upgrade.
- Simplified Wallet UI Prefabs.
Shoutout to the contributors and community who helped us get here!
Full Changelog: v2.2.3...v3.0.0
Documentation
GamingKit Overview
Build Settings
Wallet Snippets
v3.0.0-beta.12
What's Changed
- [Native] Fixed MetaMask connection/request issues on mobile platforms.
- [Native] Added support for MetaMask OTP-based session connection/resuming.
Note: The WalletProvider_Metamask
prefab has been updated to account for the above changes.