Environment Setup

As a smart contract developer, you will need to write, compile, upload, and test your contracts before deploying them on the Dimension mainnet. The first step is to set up a specialized environment to streamline development.

Install XPLA Chain Core Locally

Visit build XPLA Chain core to install the latest version of XPLA Chain Core to obtain a working version of xplad. You will need this to connect to your local XPLA Chain test network to work with smart contracts.

Install Node.js

While EVM smart contracts can theoretically be written in Solidity or Vyper language, Node.js is also used for the contract development environment, especially Truffle and Hardhat


sudo apt update
sudo apt install curl git
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs


curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install 18
nvm use 18
nvm alias default 18
npm install npm --global # Upgrade npm to the latest version

Solidity compiler & tool suite


sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc


brew update
brew upgrade
brew tap ethereum/ethereum
brew install solidity

Solidity development environment (Optional)

Different from Rust, Solidity language has no convenient feature like unit test, deployment, mock EVM, etc. There are some development environment tools for complementing these features. Node.js is essential to use this feature.

Install libraries

# yarn
yarn add @openzeppelin/contracts

# npm
npm install @openzeppelin/contracts