Skip to main content

LocalWallet

Loads or generates a local wallet on the user's device. This wallet is encrypted with a password and stored in local storage. It is meant to be used as a guest wallet, and is not recommended for long-term storage of funds.

Usage

using Thirdweb;

public async void ConnectWallet()
{
// Reference to your Thirdweb SDK
var sdk = ThirdwebManager.Instance.SDK;

// Configure the connection
var connection = new WalletConnection(
provider: WalletProvider.LocalWallet, // The wallet provider you want to connect to (Required)
chainId: 1, // The chain you want to connect to (Required)
password: "myEpicPassword" // Used to encrypt your Local Wallet, defaults to device uid (Optional)
);

// Connect the wallet
string address = await sdk.wallet.Connect(connection);
}

Behavior

WebGL

Prompts the user to connect their Metamask browser extension.

Standalone

Instantiates the customizeable WalletProvider_Metamask UI prefab, displaying a QR code and deep link button. Scan the QR code with your Metamask mobile app to connect.

Mobile

Instantiates the customizeable WalletProvider_Metamask UI prefab, displaying a QR code and deep link button. Click the deep link button to connect to your Metamask mobile app.

Miscellaneous

You may export this wallet to a JSON file, which can be imported into other wallets such as the Metamask extension.

// Export the wallet keystore (all platforms)
string json = await sdk.wallet.Export();

// Get wallet path (native platforms)
string path = Utils.GetAccountPath();

// Delete local wallet (native platforms)
bool deleted = Utils.DeleteLocalAccount();

// Explore Utils.cs to discover more

If no password is passed, it defaults to SystemInfo.deviceUniqueIdentifier.