Skip to content

magicblock-labs/Solana.Unity-SDK

Repository files navigation

Solana.Unity SDK

Solana.Unity integration Framework

Tutorials Issues Discord Chat License

Solana.Unity-SDK is the interface to access Solana.Unity-Core, Solnet implementation in .NET Standard 2.0 (Unity compatible). The SDK supports an In-game wallet with Web3auth authentication, phantom and SMS (upcoming). A set of convenience methods allows Unity developers to access all the methods implemented in Solana.Unity-Core, including MPL, native dex transactions and more...

Solana.Unity-SDK started as a fork of unity-solana-wallet, but it has been detached due to the several changes we have made and upcoming pipeline of integrations.

๐Ÿ“ Documentation

The SDK is also available on the Unity Asset Store as a Verified Solution

๐Ÿš€ Live Demo

โœจ Features

  • Full JSON RPC API coverage
  • Wallet and accounts: Set up of a non-custodial Solana wallet in Unity (sollet and solana-keygen compatible)
  • Phantom and Web3auth support (non-custodial signup/login through social accounts)
  • Transaction decoding from base64 and wire format and encoding back into wire format
  • Message decoding from base64 and wire format and encoding back into wire format
  • Instruction decompilation
  • TokenWallet object to send and receive SPL tokens and JIT provisioning of Associated Token Accounts
  • Basic UI examples
  • NFTs
  • Compile games to xNFTs (Backpack)
  • Native DEX operations (Orca, Jupiter)
  • Websockets to register/trigger custom events (account change, signature status, programs, ...)
  • Solana Mobile Stack support
  • Solana Wallet Adapter

๐Ÿšฉ Upcoming

๐Ÿ“Œ Dependencies

  • Solana.Unity.Wallet
  • Solana.Unity.Rpc
  • Solana.Unity.Dex
  • Solana.Unity.Gum
  • Solana.Unity.Extensions
  • Solana.Unity.KeyStore
  • Solana.Unity.Programs
  • Newtonsoft.Json
  • Chaos.NaCl.Standard
  • Portable.BouncyCastle
  • Zxing
  • UniTask

โž• Installation

  • Open Unity Package Manager window.
  • Click the add + button in the status bar.
  • The options for adding packages appear.
  • Select Add package from git URL from the add menu. A text box and an Add button appear.
  • Enter the https://github.com/magicblock-labs/Solana.Unity-SDK.git Git URL in the text box and click Add.
  • Once the package is installed, in the Package Manager inspector you will have Samples. Click on Import
  • You may also install a specific package version by using the URL with the specified version.
    • https://github.com/magicblock-labs/Solana.Unity-SDK.git#vX.Y.X
    • Please note that the version X.Y.Z stated here is to be replaced with the version you would like to get.
    • You can find all the available releases here.
    • The latest available release version is Last Release
  • You will find a sample scene with a configured wallet in Samples/Solana SDK/0.0.x/Simple Wallet/Solana Wallet/scenes/wallet_scene.unity

๐Ÿ‘ท Step-by-step instructions

  1. If you have an older version of Unity that doesn't have imported Newtonsoft.Json just import it.
  2. Create a new scene.
  3. Import WalletController prefab into your scene.
  4. Set RPC Cluster (Mainnet/Testnet/Devnet/Custom uri) on SimpleWallet script in WalletController prefab.
  5. If you use custom URI be careful to use WS/WSS instead of HTTP/HTTPS because WebSocket does not work with HTTP / HTTPS.
  6. Create new Canvas
  7. Import WalletHolder prefab into the Canvas or if you want your design just import wallet prefab and customize the scene.

๐Ÿ’š Open Source

Open Source is at the heart of what we do at Magicblock. We believe building software in the open, with thriving communities, helps leave the world a little better than we found it.

โœจ Contributors & Community

Thanks go to these wonderful people: