Link.sell and ERC20 support

SDK v1.3.13+ supports different currencies in the sell process, allowing users to list items in ETH and whitelisted tokens (USDC, GODS or IMX token). The listing can be only bought for the same currency it was listed for.

📘

Limited Currency

We only support USDC, GODS or IMX token

Immutable X is not prescriptive in how marketplaces handle the sell process. There are several optional parameters you can use for your marketplace, to influence the user journey for the listing and the listing order itself.

Available parameters:

{
  tokenId: t.string,
  tokenAddress: EthAddress,
  amount?: PositiveNumberStringC,
  currencyAddress?: EthAddress
}

Usage

If no currency and no amount is provided, both currency and amount will be requested from the user by Link UI.

link.sell({
    tokenId: '123',
    tokenAddress: '0x2ca7e3fa937cae708c32bc2713c20740f3c4fc3b',
});
Select both - Amount and CurrencySelect both - Amount and Currency

Select both - Amount and Currency

If no currency is provided, but the amount is present, the system will default to sell in ETH.

link.sell({
    amount: '0.01',
    tokenId: '123',
    tokenAddress: '0x2ca7e3fa937cae708c32bc2713c20740f3c4fc3b',
});
Default currency is ETHDefault currency is ETH

Default currency is ETH

To restrict your marketplace to selling in a specific whitelisted currency, you need to provide currencyAddress for a token.

In this flow, Link UI will be displayed asking the user to specify the amount. A list of whitelisted tokens is available via API endpoint /get_v1-tokens-1

link.sell({
    tokenId: '123',
    tokenAddress: '0x2ca7e3fa937cae708c32bc2713c20740f3c4fc3b',
    currencyAddress: '0x4c04c39fb6d2b356ae8b06c47843576e32a1963e',
});
Select amount onlySelect amount only

Select amount only

You can also restrict users to a specific currency and specific amount. Then Link UI will ask users for confirmation of the currency and amount.

link.sell({
    amount: '0.01',
    tokenId: '123',
    tokenAddress: '0x2ca7e3fa937cae708c32bc2713c20740f3c4fc3b',
    currencyAddress: '0x4c04c39fb6d2b356ae8b06c47843576e32a1963e',
});

Did this page help you?