Unity 4.4.0 Release

Large set of improvements and new features.

This release comes packed with long-awaited improvements and new features!

You can download the Unity Package here.

[Native] Update MetaMask SDK to 1.2.2 - includes improved session persistence and mobile build fixes.

Session persistence now comes in the form of a single tap if the last time a user was active with their MetaMask mobile wallet was less than an hour ago, and in the form of an OTP if not. This removes the need to keep rescanning QR codes when logging in using the same account.

[Native] WalletUI functions are now overrideable - more flexibility in behavior customization for WalletProvider prefabs.

If you've used Embedded Wallets, WalletConnect or MetaMask, you may be familiar with the customizeable UI WalletProvider prefabs. The WalletUI scripts governing these prefabs are now easily extendable, allowing you to not only customize your UI but also the different flows in your UI.

For instance, you could customize what happens when an OTP is submitted when a user logs in with the Email auth provider method:

public class MyEmbeddedWalletBehavior : EmbeddedWalletUI
{
  public override void OnSubmitOTP()
  {
    Debug.Log("Do Something Cool!");
  }
}

Voilà! You're now able to use your own EmbeddedWalletUI instance with custom behavior and UI.

[Native] Added optional EmbeddedWalletUI event callback for custom invalid otp handling, add a listener to add retry functionality.

The WalletProvider_EmbeddedWallet prefab now has a new callback to handle invalid otp cases and potentially add in your own behavior as part of the EmbeddedWalletUI script.

UnityEvent for invalid OTP callbacks

[Native] Implemented Multicall3 for ERC721.GetAll, ERC1155.GetAll, ERC1155.GetOwned if deployed on active chain, making fetching a lot faster for larger collections.

In some cases, it is difficult to fetch an entire collection when enumerability is not part of the contract. We now attempt to use Multicall3 to fetch all your NFTs in one go in such cases, and fallback to the default behavior if Multicall3 is not deployed. If you are on a relatively new or custom chain, you can deploy it easily as per their github instructions.

[Native] Updated chains package, added support for xai, xai-sepolia and others.

We simply love xai. All other chain data updated as per ethereum-lists repository.

[Native] Fixed ERC20.SetAllowance not triggering custom approval wallet UI where available.

Previously, the custom approval UI for some external wallet interfaces would not trigger when calling SetAllowance - this has now been fixed for native platforms.

[Native] Added option to not force deploy a smart wallet upon signing a message or typed data in ThirdwebManager Smart Wallet optional parameters.

You now have the option to not trigger standalone deployments of your smart wallet upon signing a message or typed data. This is useful to turn on in cases where you want to defer the deployment costs to a later stage. Simply enable the checkbox below in your ThirdwebManager.

ThirdwebManager prefab - Smart Wallet Options

[WebGL] Updated bridge.

The WebGL bridge has been updated - contains all the latest JS SDK improvements and features, as well as some chain updates.

[General] Scene_Prefabs minor UI fix.

Fixed label scaling issues in some cases.

[General] Upgraded main project to Unity 2022.3.17f1 - best used with XCode 15.1 when building for iOS.

We found that versions lower than 2022.3.10 may experience issues with iOS builds, and therefore have upgraded the main repository to use the latest 2022.3 version.

We've also updated the readme and linked the new docs and a simple contribution guide. If you're building using our SDK, reach out to us - thank you!