Links

RegisterToken

This function does not trigger any UI elements

Description

Function to register any asset that is not supported by default. The token will then be supported throughout the wallet - eg. it will be shown on balances page if the user has a non-zero balance of the token.

Details

Only ERC20 tokens following the OpenZeppelin standard are supported for now

Signature

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

Arguments

Parameter
Type
Definition
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

Return Value

Instance of the new Asset

Example

First, create an instance of the token by calling RegisterToken:
custom-tokens.js
1
import { RegisterToken, chains } from '@metafi/metafi-react-package';
2
3
export const WETH = RegisterToken(
4
'Goerli Wrapped Ethereum',
5
'WETH',
6
chains.goerli,
7
'https://d2qdyxy3mxzsfv.cloudfront.net/images/logo/ethereum.png',
8
'0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6',
9
18,
10
)
11
Then, pass in the custom token(s) you have created while initializing the MetafiProvider:
App.js
1
import { MetafiProvider, chains } from '@metafi/metafi-react-package';
2
import { WETH } from './constants/custom-token.js';
3
4
function App() {
5
return (
6
<MetafiProvider
7
apiKey={"YOUR_API_KEY"}
8
secretKey={"YOUR_SECRET_KEY"}
9
supportedChains={[chains.eth, chains.goerli]}
10
customTokens={[WETH]}
11
options={}
12
>
13
<YourComponents>
14
...
15
</YourComponents>
16
</MetafiProvider>
17
);
18
};
And voila! Your token will now be accessible throughout the wallet.