Skip to main content

SDKs overview

Immutable provide SDKs for a range of languages and frameworks that make it easy for application developers to execute basic, as well as more advanced, functionality.

We have two types of SDK:

FunctionalityDescriptionSDKs available
1CoreFacilitates key functionality of the Immutable platform. Provides a wrapper for the API endpoints as well as workflow functions that make common actions easier to implement.
2User wallet interactionsEnables applications to facilitate user transactions by connecting with user wallets on various platforms and enabling user authorization (signing) of state-updating transactions (ie. creating sell orders, transferring ownership of assets). Often used in conjunction with the core SDKs.

What are user transactions?

User transactions are those that deal with changes in asset ownership that require the approval (signature) of asset owners. These transactions update the state of things on the blockchain, as opposed to just reading data.

How do the SDKs work together?

Core + Wallet SDK

The Core SDK is responsible for the bulk of functionality that is available on the Immutable platform. It can be used with the Wallet SDK in order to establish a connection with users' wallets to sign certain transactions that require users' approval.

The Link SDK provides end-to-end functionality for the bulk of user transactions, including a user interface for users to see, sign and approve these transactions. It uses the JS SDK for its backend operations, like creating orders or trades.

See Guides on how to use our SDKs.

Example functionality matrix

Connect to user walletActions requiring user signaturesActions not requiring user signatures
Sign transactionsRegister usersCreate orders and tradesL1-L2 transfers (deposits and withdrawals)Mint tokens on L2Get list of assetsGet ordersGet tradesGet user balances
Core SDK
Wallet SDK
Link SDK

Core SDKs

Wallet SDKs

Game engine SDKs


Open API Specification

Immutable's Open API specification empowers developers to be able to interact efficiently with our APIs by supporting the automatic client generation in many languages.