Skip to main content


The fee model is changing in the latest version (v3) of the API.

Please refer to this guide to learn more about maker taker fees when you plan your migration to the upgraded v3 endpoints.

Link reference tool

Check out our Link reference tool to understand how Link methods work without having to write any code.

For context, read our overview of the Immutable X JS SDK.

The Link SDK is used for frontend, user-facing interactions.

import { Link, ETHTokenType } from '@imtbl/imx-sdk';

async function sdkExample() {
const link = new Link('');

// Register user, you can persist address to local storage etc.
const { address } = await link.setup({});
localStorage.setItem('address', address);

// Deposit ETH into IMX
type: ETHTokenType.ETH,
amount: '0.01',

// View transaction history

// Create a sell order for token id 123 for 0.01 ETH
amount: '0.01',
tokenId: '123',
tokenAddress: '0x2ca7e3fa937cae708c32bc2713c20740f3c4fc3b',

// Cancel a sell order
orderId: '1',

// Create a buy flow:{
orderIds: ['1', '2', '3'],

// Prepare withdrawal, you will need to wait some time before completing the withdrawal
type: ETHTokenType.ETH,
amount: '0.01',

// Complete withdrawal
type: ETHTokenType.ETH,

API client usage

The API client is a direct mapping to the REST methods documented here: /x/reference

import { ImmutableXClient } from '@imtbl/imx-sdk';

async function libExample() {
const client = await{
publicApiUrl: '',
const address = localStorage.getItem('address');

if (address) {
const balances = await client.getBalances({ user: address });
const orders = await client.getOrders();
const order = await client.getOrder({ orderId: 1 });
const assets = await client.getAssets({
user: address,

IMX Whitepaper IMX Tokenomics Block Explorer Careers Contact Us