Getting Started

Configurations

Learn how to configure your preferred wallet

The SDK supports a veriety of wallets, including

WalletSupportType
In-game (new or restore)In-app
In-game (Web3auth)In-app
Wallet AdapterExternal
Mobile Wallet AdapterExternal
Seed Vault🏗In-app

Interface

IWalletBase defines the common interface

The WalletBase abstract class implements IWalletBase interface and provides convenient methods shared by all wallet adapters.

A few examples are:

  • Connection to Mainnet/Devnet/Testnet or custom RPC
  • Login/logout
  • Account creation
  • Get balance
  • Get token accounts
  • Sign/partially sign transactions
  • Send transactions

Login example

You can attach the Web3.cs script (../Runtime/Codebase/Web3.cs) to any game object on the scene, then call Web3.Instance.LoginWalletAdapter();

Package manager

Additional methods

The complete list of methods is available here


Wallet Adapter

To configure a wallet following the Wallet Adapter standard use the SolanaWalletAdapter wallet implementation.

WalletBase wallet = new SolanaWalletAdapter(walletAdapterOptions, RpcCluster.DevNet, ...);

SMS

Solana Mobile Stack is a set of libraries for wallets and apps, allowing developers to create rich mobile experiences for the Solana network. For more information about SMS check out the official documentation.

Mobile Wallet Adapter

To establish a wallet configuration in accordance with the Mobile Wallet Adapter standard, employ the SolanaWalletAdapter implementation as demonstrated above. This adapter intelligently detects the target platform during development, seamlessly utilizing the appropriate underlying implementation. For example, when targeting WebGL, the SolanaWalletAdapterWebGL is employed; likewise, when building for Android/iOS, the SolanaMobileWalletAdapter is automatically chosen.

Some of the wallet on IOS, e.g. Phantom, are currently implemented using DeepLinks. Deep links are URLs that link to a specific piece of content or functionality within an app, in the context of Solana transactions, deep links can be used to sign a transaction by allowing users to approve a transaction using their Solana wallet.

Enabling deep linking for Android applications

SolanaWalletAdapter does not uses deep links on Android. Unless you are manually istantiating the PhantomDeepLink implementation, this step is not necessary

To enable deep linking for Android applications, use an intent filter. An intent filter overrides the standard Android App Manifest to include a specific intent filter section for Activity.

To set up the wallet intent filter:

  1. In the Project window, go to the folder Assets > Plugins > Android (or create it).
  2. Create a new file and call it AndroidManifest.xml. Unity automatically processes this file when you build your application.
  3. Copy the code sample into the new file and save it.

android:scheme="unitydl" should match the value defined in the wallet configuration

See the detailed explanation on the Unity documentation page.

Enabling deep linking for IOS applications

See the detailed explanation on the Unity documentation page .

the defined schema should match the value defined in the SolanaWalletAdapter wallet configuration

Previous
Sample Scene