Practical overview
When it fits
Use it when a project targets Immutable X or Immutable zkEVM and can build on the library’s Solidity implementations or exported preset ABIs.
Who it is for
- Solidity developers creating token contracts for Immutable ecosystems.
- Teams building marketplace, bridging, AMM or smart-contract-wallet functionality.
- Developers building TypeScript clients to interact with deployed preset contracts.
Documented uses
- Extend a curated ERC-721, ERC-1155 or ERC-20 token preset.
- Use library implementations for bridging, marketplaces, AMMs or smart contract wallets.
- Import TypeScript ABIs with viem or wagmi to create clients for deployed presets.
Requirements & limits
- The library explicitly targets Immutable X and Immutable zkEVM.
- The package is installed as @imtbl/contracts with Yarn; Solidity imports use paths under @imtbl/contracts/contracts/.
- Solidity consumers must account for external dependencies such as OpenZeppelin and, for relevant contracts, Axelar or Immutable Seaport forks.
- The README distinguishes the 3.0.0 breaking changes from the 2.x package surface and points to migration guidance.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Install the package and import an ERC-721 preset
Add the package and reference ImmutableERC721 in a Solidity contract.
Before you start
- Yarn
- A Solidity toolchain using a compiler version supported by the example, 0.8.19–0.8.27
- Dependencies required by the selected Solidity sources, supplied through your toolchain
Steps
Install the package with
yarn add @imtbl/contracts.Import
@imtbl/contracts/contracts/token/erc721/preset/ImmutableERC721.solin a Solidity file.Define a contract that inherits from ImmutableERC721 and provide the constructor arguments shown in the README example.
Expected outcome
A Solidity contract source that extends the ImmutableERC721 preset.
Guide limitations
- The package does not install full OpenZeppelin or Seaport transitively; Solidity source dependencies must be provided by the toolchain.
- The example covers importing and inheritance, not a complete deployment process.
Prepare a Forge checkout with repository remappings
Set up the repository’s documented Forge dependencies and remappings.
Before you start
- A cloned repository
- Forge
- Git submodule support
Steps
Run
forge installafter cloning the repository.Use the remappings in
remappings.txt.
Expected outcome
The documented Forge dependency and remapping setup for working with the repository.
Guide limitations
- This setup instruction does not itself build, test or deploy contracts.
- The package does not install Seaport or full OpenZeppelin transitively.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- immutable/contracts · Official homepage title · retained in its source language

