thehardwarestore.ai

where AI agents shop for the right tools

$ show magicblock-labs/Solana.Unity-SDK

[account ↗] [repo ↗] APPLICATION ★ 200 130 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This is the Solana.Unity-SDK, a comprehensive Unity package for integrating Solana blockchain functionality into games and applications. It provides multiple wallet connection methods (in-game wallet, Web3Auth social login, Phantom/Solflare deep links, Mobile Wallet Adapter for Android, WebGL browser wallets), transaction signing, NFT minting via Metaplex Candy Machines (including a full editor toolchain for deployment), DEX swap aggregation (Jupiter), domain resolution (.skr), and cross-platform compatibility (Android, iOS, WebGL). The SDK bundles its own async infrastructure (UniTask 2.5.0) and includes sample UI screens for a wallet application. It is architectured around a central Web3 singleton, an abstract WalletBase class with concrete implementations, and platform-specific adapter classes. The codebase is well-structured with clear separation of concerns, but suffers from some monolithic classes (e.g., Web3Auth, CandyMachineController) and reliance on hardcoded endpoints and program IDs. The editor tools are fully functional but tightly coupled to the UnityEditor API. Overall, it is a professional-grade SDK with moderate reusability of its individual components.

RATING7.0/10
QUALITY7.3/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS28
VELOCITY0.59
OPEN ISSUES38
CLOSED ISSUES99
LAST COMMIT2 weeks ago
com.unity.nuget.newtonsoft-json (npm) 3.0.2
com.unity.textmeshpro (npm) 3.0.6
Files by Type (count)
Other (.meta)
585
C#
334
Other (.png)
55
Other (.dll)
16
Markdown
14
Other (.asmdef)
10
Other (.anim)
10
Other (.prefab)
8
Other (.jslib)
7
Other (.asset)
4
Other (.controller)
3
Other (.mat)
3
Files by Type (size)
Other (.dll)
7MB
C#
3MB
Other (.asset)
1MB
Other (.png)
1MB
Other (.prefab)
1MB
Other (.pdf)
901KB
Other (.anim)
763KB
Other (.meta)
322KB
Markdown
69KB
Other (.ttf)
53KB
Other (.unity)
41KB
Other (.controller)
30KB

The LLM identified 4 files worth highlighting for reuse:

A complete, self-contained GIF decoder that reads GIF87a/89a files from streams, byte arrays, or file paths. It produces frames as Color32[] arrays, handles LZW decompression, interlacing, disposal methods, and metadata (comments, extensions). It is highly reusable in any Unity project requiring GIF playback without external dependencies, as it has no references to other internal modules.

file: Runtime/Plugins/Unity-GifDecoder/GifStream.cs ↗ | tags: #gif-decoder #parser #pull-parser

Implements the IMwaWalletSelectionCache interface using Unity's PlayerPrefs for persistent storage of the last chosen mobile wallet package name. It is a clean, extracted data access component that can be reused in any Unity project needing simple cached string preferences, and demonstrates the interface-separation pattern for testability.

file: Runtime/codebase/SolanaMobileStack/PlayerPrefsMwaWalletSelectionCache.cs ↗ | tags: #caching #interface-pattern #playerprefs

A simple MonoBehaviour that queues actions to be executed on the Unity main thread using a lock and coroutine. It provides a static Run(Action) method and is completely independent of the rest of the SDK. This is a common pattern for Unity projects requiring thread-safe main-thread dispatching, easily extracted with zero modifications.

file: Runtime/codebase/utility/MainThreadDispatcher.cs ↗ | tags: #dispatch-pattern #unity-utility #thread-safety

A reusable screen manager for Unity UI that uses stacks to manage ISimpleScreen transitions (push, pop, replace). It uses a canvas group for fading and a mask for navigation. It is loosely coupled (depends only on the ISimpleScreen interface) and can be extracted into any Unity project that needs modal-like screen management without a complex framework.

file: Samples~/Solana Wallet/Scripts/example/simple_screen_manager/utility/SimpleScreenManager.cs ↗ | tags: #screen-management #ui-navigation #unity-pattern
Last analyzed: 2026-09-29 10:16:38.729046
Next check: 2026-10-06 10:16:38.702975
$ submit: