RegisterToken

Description

Function to register any asset that is not supported by default. The token will then be supported throughout the SDK - eg. it will be returned in the assets field of the RetrieveUser function if the user has a non-zero balance of the token.

Please note that by default, we support native tokens that have been outlined in Assets.

Details

Signature

RegisterToken(name, symbol, chain, image, contractAddress, decimal, tokenStandard)

Arguments

ParameterTypeDefinition

name

String

Name of the currency, eg. "USD Coin"

symbol

String

Symbol for the currency, eg. "USDC"

chain

String

Chain on which the contract is deployed. eg. for USDC on ETH, pass in chains.eth

image

String

Link to png image of the token. Max size is 50KB

contractAddress

String

Contract address of the ERC20 token, eg. for USDC on ETH, it is 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48

decimal

Number

Number of decimal places of precision for the asset. eg. 18 for ETH

tokenStandard

Object

Specify the token standard. eg:

Return Value

Instance of the new Asset

Example

First, create an instance of the token by calling RegisterToken:

custom-token.js
import { RegisterToken, chains } from '@metafi/metafi-js-package';

export const WETH = RegisterToken(
    'Goerli Wrapped Ethereum', 
    'WETH', 
    chains.goerli,
    'https://d2qdyxy3mxzsfv.cloudfront.net/images/logo/ethereum.png',  
    '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6',
    18,
    {
        "name": "erc20",
    }
)

Then, pass in the custom token(s) you have created while initializing the MetafiProvider:

App.js
import { 
    TransferTokens,
} from '@metafi/metafi-js-package';
import { WETH } from "./tokens/custom-token.js";

function App() {
    const transferWETH = () => {
        TransferTokens({
                to: "0xd4594dECd0ed8BA4C7d5810dbB8D004C74250BD5",
                amount: "1",
                currency: WETH,
                callback: (result) => {
                    console.log("callback result", result);
                },
            },
            "YOUR-API-KEY"
        );
    }
    
    return (
        <div>
	    <button onClick={transferWETH}>Transfer 1 WETH</button>
        </div>
    );
}

export default App;

And voila! Your token will now be accessible throughout the wallet.

Last updated