Skip to main content

Available networks

Access networks enabled in your Dynamic dashboard:
using DynamicSDK.Core;
using UnityEngine;

// EVM networks (Ethereum, Polygon, Base, etc.)
foreach (var network in DynamicSDK.Instance.Networks.Evm.AvailableNetworks)
{
    Debug.Log($"{network.Name} - Chain ID: {network.ChainId}");
}

// Solana networks
foreach (var network in DynamicSDK.Instance.Networks.Solana.AvailableNetworks)
{
    Debug.Log(network.Name);
}

Get current network

public async void GetCurrentNetwork(BaseWallet wallet)
{
    var network = await DynamicSDK.Instance.Wallets.GetNetwork(wallet);
    Debug.Log($"Current network: {network}");
}

Switch network

public async void SwitchNetwork(BaseWallet wallet, string networkId)
{
    try
    {
        await DynamicSDK.Instance.Wallets.SwitchNetwork(wallet, networkId);
        Debug.Log("Network switched successfully");
    }
    catch (System.Exception e)
    {
        Debug.LogError($"Failed to switch network: {e.Message}");
    }
}

Complete example

using DynamicSDK.Core;
using UnityEngine;
using System.Linq;

public class NetworkManager : MonoBehaviour
{
    private BaseWallet _wallet;
    
    private void Start()
    {
        _wallet = DynamicSDK.Instance.Wallets.UserWallets.FirstOrDefault();
        
        if (_wallet != null)
        {
            ListAvailableNetworks();
        }
    }
    
    public void ListAvailableNetworks()
    {
        Debug.Log("Available EVM Networks:");
        foreach (var network in DynamicSDK.Instance.Networks.Evm.AvailableNetworks)
        {
            Debug.Log($"  {network.Name} (Chain ID: {network.ChainId})");
        }
        
        Debug.Log("Available Solana Networks:");
        foreach (var network in DynamicSDK.Instance.Networks.Solana.AvailableNetworks)
        {
            Debug.Log($"  {network.Name}");
        }
    }
    
    public async void SwitchToPolygon()
    {
        if (_wallet == null || _wallet.Chain.ToUpper() != "EVM")
        {
            Debug.LogError("No EVM wallet available");
            return;
        }
        
        var polygonNetwork = DynamicSDK.Instance.Networks.Evm.AvailableNetworks
            .FirstOrDefault(n => n.Name.Contains("Polygon"));
        
        if (polygonNetwork == null)
        {
            Debug.LogError("Polygon network not found");
            return;
        }
        
        try
        {
            await DynamicSDK.Instance.Wallets.SwitchNetwork(_wallet, polygonNetwork.ChainId.ToString());
            Debug.Log($"Switched to {polygonNetwork.Name}");
        }
        catch (System.Exception e)
        {
            Debug.LogError($"Failed to switch: {e.Message}");
        }
    }
}

Next steps