Skip to content
Switch branches/tags


Integration Action GitHub tag (latest by date) Substrate version License
Twitter URL Twitter URL YouTube Docker Discord Telegram Medium

Astar Network is an interoperable blockchain based the Substrate framework and the hub for dApps within the Polkadot Ecosystem. With Astar Network and Shiden Network, people can stake their tokens to a Smart Contract for rewarding projects that provide value to the network.

For contributing to this project, please read our Contribution Guideline.

Building From Source

This section assumes that the developer is running on either macOS or Debian-variant operating system. For Windows, although there are ways to run it, we recommend using WSL or from a virtual machine for stability.

Execute the following command from your terminal to set up the development environment and build the node runtime.

# install Substrate development environment via the automatic script
$ curl -sSf | bash -s -- --fast

# clone the Git repository
$ git clone --recurse-submodules

# change current working directory
$ cd Astar

# compile the node
# note: you may encounter some errors if `wasm32-unknown-unknown` is not installed, or if the toolchain channel is outdated
$ cargo build --release

# run a temporary developer node locally
# `plasm --help` for more commands
$ ./target/release/plasm --dev --tmp

Building with Nix

# install Nix package manager:
$ curl | sh

# run from root of the project folder (`Astar/` folder)
$ nix-shell -I nixpkgs=channel:nixos-21.05 third-party/nix/shell.nix --run "cargo build --release"

Running a Validator Node

To set a validator node, you must have a fully synced node with the proper arguments, which can be done with the following command.

# start a Dusty validator node with
$ ./target/release/plasm \
  --base-path <path to save blocks> \
  --chain dusty \
  --name <node display name> \
  --port 30333 \
  --ws-port 9944 \
  --rpc-port 9933 \
  --telemetry-url 'wss:// 0' \
  --rpc-cors all \

If the node was properly set, you should be able to check your node with the value passed on the --name parameter in the Telemetry.

Now, you can obtain the node's session key by sending an RPC to the node.

# send `rotate_keys` request
$ curl -H 'Content-Type: application/json' --data '{ "jsonrpc":"2.0", "method":"author_rotateKeys", "id":1 }' localhost:9933

# should return a long string of hex, which is your session key
{"jsonrpc":"2.0","result":"<session key in hex>","id":1}

After this step, you should have a validator node online with a session key for your node. For key management and validator rewards, consult our validator guide online.

Further Reading