Unity SDK
The official InvoSDK plugin for Unity enables seamless integration with the Invo Network platform for in-game currency management, item purchases, player-to-player transfers, and cross-game currency sends.
Unity 6 (6000.0+) Compatible
The InvoSDK plugin is built for Unity 6 with full C# async/await support, pre-built UI components, and Editor tools for rapid integration.
Quick Integration - Get Started in 30 Minutes
The InvoSDK Unity plugin is available on GitHub and designed for rapid integration. Get your game connected to the Invo Network in as little as 30 minutes. View on GitHub
Easy Installation
Copy to Assets folder and configure via Setup Wizard
Pre-built UI
Production-ready UI components you can customize
Async/Await
Modern C# async patterns throughout
Editor Tools
Setup Wizard, Test Purchase, Balance tools
Core Features
Currency Purchases
Allow players to buy in-game currency with real money via secure Invo Payments integration.
Item Marketplace
Full catalog management with categories, rarities, discounts, and featured items.
Cross-Game Transfers
Enable players to transfer currency to other games in the Invo Network ecosystem.
SMS Verification
Secure player-to-player transfers with SMS PIN verification.
Installation
Requirements
- Unity 6 (6000.0+)
- .NET Standard 2.1
- Newtonsoft.Json (com.unity.nuget.newtonsoft-json)
- An Invo developer account
Step 1: Download the SDK
Clone the InvoSDK from GitHub:
git clone https://github.com/Invo-Technologies/Invo-unity-sdk.git
Step 2: Copy SDK Files
Copy the following into your Unity project's Assets folder:
YourProject/
└── Assets/
├── InvoSDK/ ← Copy this folder
├── APIManager.cs ← Copy this file
└── Resources/
└── InvoSDKConfig.asset ← Auto-created by Setup WizardStep 3: Install Dependencies
Open Window → Package Manager and install:
com.unity.nuget.newtonsoft-json
Step 4: Run Setup Wizard
The Setup Wizard opens automatically on first import. You can also access it via:
- 1.Open your project in Unity Editor
- 2.Go to InvoSDK → Setup Wizard in the menu
- 3.Enter your SDK Key, Game ID, and other settings
- 4.Click Save to create your configuration
Configuration
The SDK uses a ScriptableObject for configuration, stored at Assets/Resources/InvoSDKConfig.asset:
| Field | Type | Description |
|---|---|---|
| sdkKey | string | Your Invo API secret key |
| gameId | string | Your unique game identifier |
| gameName | string | Display name for your game |
| playerEmail | string | Default player email (for testing) |
| playerPassword | string | Sandbox login password |
| playerPhone | string | Player phone for SMS verification |
| gameCurrencyName | string | Name of your in-game currency |
| useProduction | bool | Toggle between sandbox/production |
Security Warning
Never ship sdkKey in client builds. Store server-side for production deployments.
Quick Start
Access the API manager anywhere in your code using the singleton pattern:
Get Player Balance
using InvoSDK;
// Get player's current balance
await APIManager.Instance.GetPlayerBalanceAsync(
email: "player@email.com",
onSuccess: (response) => {
foreach (var balance in response.balances) {
Debug.Log(quot;{balance.currency_name}: {balance.total_balance}");
}
},
onError: (error) => Debug.LogError(error)
);Purchase an Item
using InvoSDK;
await APIManager.Instance.PurchaseItemAsync(
playerEmail: "player@email.com",
playerName: "PlayerOne",
itemId: "sword_001",
itemName: "Legendary Sword",
quantity: 1,
unitPrice: 9.99f,
totalPrice: 9.99f,
onSuccess: (response) => {
Debug.Log(quot;Purchase successful! Transaction: {response.transaction_id}");
},
onError: (error) => Debug.LogError(error)
);Fetch Game Items Catalog
using InvoSDK;
await APIManager.Instance.GetGameItemsAsync(
onSuccess: (response) => {
foreach (var item in response.items) {
Debug.Log(quot;{item.item_name}: ${item.price_usd}");
}
},
onError: (error) => Debug.LogError(error)
);API Reference
| Method | Endpoint | Description |
|---|---|---|
| GetPlayerBalanceAsync | /player-balances/player/by-email/{email} | Get player balance |
| GetGameItemsAsync | /v1/game-items/list | Fetch game item catalog |
| PurchaseItemAsync | /item-purchases/purchase-item | Purchase an item |
| GetAvailableDestinationsAsync | /currency-sends/available-destinations | List transfer destinations |
| InitiateSendAsync | /currency-sends/initiate-send | Start currency send |
| VerifySmsAsync | /currency-sends/verify-sms | Verify SMS for sends |
| ClaimCurrencyAsync | /currency-sends/claim-currency | Claim received currency |
API Environments
Sandbox (Development)
- Host:
https://sandbox.invo.network - API:
/sandbox/api/* - Auth:
/sandbox/auth/* - Console: dev.console.invo.network
Use for development and testing. No real money.
Production (Live)
- Host:
https://invo.network - API:
/api/* - Auth:
/auth/* - Console: console.invo.network
Live games only. Real money transactions.
Pre-built UI Components
The SDK includes production-ready UI components in Assets/InvoSDK/Scripts/UI/:
Item Purchase Panel
Grid display with item cards and purchase confirmation
Featured Items
Daily and weekly featured item showcases
Transfer Wizard
4-step currency transfer flow with SMS verification
Send Currency Panel
Player-to-player send interface
Window Manager
Panel-based navigation system
Verification Input
SMS code input component
Editor Tools
Access these tools from the Unity menu under InvoSDK:
Setup Wizard
Configure all SDK settings, quick links to documentation and console.
InvoSDK → Setup WizardItem Catalog
Manage items, prices, discounts, and categories.
InvoSDK → Item CatalogTest Purchase
Test currency purchases with pre-configured payment methods.
InvoSDK → Test PurchasePlayer Balance
Check player balances during development.
InvoSDK → Player BalanceTroubleshooting
| Issue | Solution |
|---|---|
| "Config not found!" | Ensure InvoSDKConfig.asset exists in Assets/Resources. Run Setup Wizard. |
| "Player email not set" | Set playerEmail in config or pass email directly to API methods. |
| JSON parse errors | Verify Newtonsoft.Json package is installed and included in build. |
| 401/403 errors | Check SDK key is correct. Verify using correct environment. |
| Balance not updating | Check balancePollInterval setting. Verify network connectivity. |
Resources
Additional documentation and support channels