Provider Initialisation

This function does not trigger any UI elements

Description

The base component for the Metafi SDK which takes in your API Key, unique user ID, and other options as Arguments. Call this function as soon as your initial scene is loaded, before any other functions are invoked.

Details

Signature

Task Init(string apiKey, string secretKey, dynamic options, List<Metafi.Unity.Chain> supportedChains, List<Metafi.Unity.Token> customTokens, bool metafiSSO = false)

Arguments

ParameterTypeDefinition

apiKey

String

Your API Key. This can be displayed publicly

secretKey

String

Your Secret Key. Keep this securely and do not expose.

options

dynamic

A list of options to customise the look and feel of how the Metafi wallet looks. Here you can pass in a custom logo, as well as theme styling options. More information can be found in the UI customisation section.

dynamic options = new {
    logo = "./logo.png", // pass in the URL or path to your logo
    theme = new {
        fontColors = new { 
            primary = '#ffffff', 
            secondary = '#e8e8e8'
        },
        bgColor = "linear-gradient(40deg, rgba(209,29,255,1) 0%, rgba(7,52,235,1) 100%)",
        ctaButton" = new {
            color = "#430aa0",
            fontColor = "#ffffff"
        },
        optionButton = new {
            color = "rgba(0,0,0,0.1)",
            fontColor = "#ffffff"
        },
        metafiLogoColor = "light",
    },
}

supportedChains

List<Metafi.Unity.Chain>

An array of chains supported by your application. Please refer to the section on Chains for more information on what chains we support.

customTokens

List<Metafi.Unity.Token>

An array of custom tokens that you want supported in your users wallet. To pass a custom token, you will need to use the Metafi.Unity.Token constructor to generate a new token. The format of the inputs are as follows:

Token (string name, string symbol, Metafi.Unity.Chain chain, string image, string contractAddress, int decimals)

You can refer to the example below to understand how to register Wrapped Ethereum in the wallet.

metafiSSO

bool

Specify whether to use MetafiSSO or not. Set to false if you are using your own custom login mechanism.

Return Value

N/A

Example

using Metafi.Unity;
using System.Dynamic;

public class StartButton : MonoBehaviour {
    async void Start() {
        Debug.Log("Initializing Metafi Provider");

        dynamic _options = new ExpandoObject();
        _options.logo = @"Assets/Resources/logo-2.png";
        _options.theme = new {
            fontColors = new {
                primary = "#FFFFFF",
                secondary = "#e8e8e8"
            },
            bgColor = "#29327F",
            ctaButton = new {
                color = "#F19B28",
                fontColor = "#FFFFFF"
            },
            optionButton = new {
                color = "rgba(255,255,255,0.1)",
                fontColor = "#FFFFFF"
            },
            metafiLogoColor = "light",
        };
        
        Token wethToken = new Token(
            "Wrapped Ethereum",
            "goerliWETH",
            Chains.GOERLI,
            "https://d2qdyxy3mxzsfv.cloudfront.net/images/logo/ethereum.png",
            "0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6",
            18
        );

        await MetafiProvider.Instance.Init(
            "apiKey",
            "secretKey",
            _options,
            new List<Chain> {Chains.ETH, Chains.MATIC, Chains.GOERLI, Chains.MUMBAI},
            new List<Token> {wethToken},
            false
        );
        
        Debug.Log("Metafi Provider initialized");
    }
}

Last updated