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 three types of SDK:
Functionality | Description | SDKs available | |
---|---|---|---|
1 | Core | Facilitates 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. | |
2 | User wallet interactions | Enables 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. | |
3 | Unified | The Immutable SDK will unify multiple SDKs into a single product in order to enhance user experience, reduce complexity and streamline the development process. In addition to the existing functionality, new products will be included in the Immutable SDK, such as Passport. Please note that the Immutable SDK is currently in beta. |
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.
Link + JS SDK
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.
Immutable SDK
The Immutable SDK consolidates multiple of our SDKs into one and provides a single point of integration for developers. As the Immutable SDK supersedes the Core SDK & Wallet SDK, it is intended to act as a replacement for them, rather than working with them.
See Guides on how to use our SDKs.
Example functionality matrix
Connect to user wallet | Actions requiring user signatures | Actions not requiring user signatures | |||||||
---|---|---|---|---|---|---|---|---|---|
Sign transactions | Register users | Create orders and trades | L1-L2 transfers (deposits and withdrawals) | Mint tokens on L2 | Get list of assets | Get orders | Get trades | Get user balances | |
Core SDK | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Wallet SDK | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
JS SDK | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Link SDK | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
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.