Skip to main content

Developer Tooling

Deploying and interacting with EVM-based smart contracts on Astar is as easy as any other EVM-compatable network. Usually, getting set up requires two steps:

  1. Configuring (and funding) your Ethereum account on the respective network
  2. Adding Astar's networks to your Ethereum client

For Astar and Shiden applications, we highly recommend running your own network node and not relying on our RPC endpoints. This further decentralizes the network, and puts you in control of your uptime requirements.

Hardhat

Initialize your project

If you're starting your Hardhat project from scratch, we recommend reading the Hardhat Quick Start page.

Setting up your account

The quickest way to get Hardhat to deploy contracts to a non-local testnet is to export and use an existing Metamask account.

To get an account's private key from Metamask:

  1. Open Metamask
  2. Select the account you want to export
  3. Click the three dots on the right side
  4. Select "Account Details"
  5. Select "Export Private Key"
  6. Enter your password and select "Confirm"

You should see a 64-character hex string similar to the following:

60ed0dd24087f00faea4e2b556c74ebfa2f0e705f8169733b01530ce4c619883

Create a new file in your root folder called private.json with your private key in it:

{
"privateKey": "60ed0dd24087f00faea4e2b556c74ebfa2f0e705f8169733b01530ce4c619883"
}

Modify your hardhat.config.js file to include:

// hardhat.config.js

// ...

const { privateKey } = require('./private.json');

// ...

module.exports = {

// ...

networks: {
// Shibuya faucet: use #shibuya-faucet room in https://discord.gg/astarnetwork
shibuya: {
url: "https://rpc.shibuya.astar.network:8545",
chainId: 81,
accounts: [ privateKey ]
},

// Astar community faucet (please don't abuse): https://as-faucet.xyz/en/astar#
astar: {
url: "https://rpc.astar.network:8545",
chainId: 592,
accounts: [ privateKey ]
},

// Shiden community faucet (please don't abuse): https://as-faucet.xyz/en/shiden#
shiden: {
url: "https://rpc.shiden.astar.network:8545",
chainId: 336,
accounts: [ privateKey ]
}
}
};

Once your accounts are funded, you can deploy the sample contract to Shibuya with npx hardhat run --network shibuya scripts/sample-script.js.

Truffle

Create Ethereum Account

We recommend using the @truffle/hdwallet-provider package for key management. Instructions can be found here.

Add Networks to truffle-config.js

To deploy and interact with Astar, modify networks in truffle-config.js to include Astar's networks:

// truffle-config.js
module.exports = {

networks: {

// ... any existing networks (development, test, etc.)

// Shibuya faucet: use #shibuya-faucet room in https://discord.gg/astarnetwork
shibuya: {
url: "https://rpc.shibuya.astar.network",
network_id: 81
},

// Astar community faucet (please don't abuse): https://as-faucet.xyz/en/astar#
astar: {
url: "https://rpc.astar.network:8545",
network_id: 592
},

// Shiden community faucet (please don't abuse): https://as-faucet.xyz/en/shiden#
shiden: {
url: "https://rpc.shiden.astar.network:8545",
network_id: 336
}
}

// ...

};

Deploy/Migrate by running truffle migrate --network shibuya, replacing shibuya with your chosen network. If --network is not specified, the network values underdevelopment will be used.