DevelopersSKALE Developers
Beginner

Beginner

Follow the steps below to start using SKALE. If you have your SKALE Chains already set up and are looking for examples, please see Code Samples.

1
Get
a SKALE Chain
2
Prepare
your SKALE Chain
3
Migrate
Smart Contracts
4
Send
a Transaction
1. Get a SKALE Chain

1. Get a SKALE Chain

If you don't have a SKALE Chain yet, there are several ways to get one.

For rapid and quick testing, you can check out this post here to grab an endpoint and chainID information.

You can run a single node containerized SKALE Chain on your local machine (Ubuntu or Mac) with minimal setup. To get started, head over to SKALE-SDK and follow the instructions to clone the repo to your local machine, cd into the repo, and execute ./run.sh.

If you want to get started with SKALE and the Interchain Messaging Agent (IMA) you can use the SKALE-IMA-SDK. This setup is more complicated as it involves deploying IMA contracts on a Testnet and a containerized SKALE Chain. You will need:

  • Ethereum testnet account
  • Ethereum testnet ETH
  • Ethereum testnet endpoint such as Geth (Infura is not supported!).

A note on the Geth endpoint: be sure to setup Geth with the following JSON-RPC transports: geth --http --http.api eth,web3

You can join an active Testnet and request a SKALE chain. Reach out to the SKALE developer community on discord for more information.

You can also request to join the SKALE Innovator Program (SIP), which provides grants for Mainnet SKALE Chain access.

2. Prepare your SKALE Chain

2. Prepare your SKALE Chain

SKALE Chains on the SDKs or Testnet will already be configured for you and won't require any updates to get started with deploying your Smart Contracts onto SKALE.

To use your SKALE Chain in the SDKs, you will need to use the provided account with test ETH. See the README in the SDK for this pre-funded account. For Testnets, you will need your wallet account with the SKALE TestNet ETH tokens. Do this by using the SKALE Faucet to receive 0.5 test ETH.

NOTE: Transactions run on SKALE are gas-less; however, for a user to process transactions on your SKALE Chain their wallet will need to contain a small amount of test ETH. Read more about SKALE ETH.

3. Migrate Smart Contracts

3. Migrate Smart Contracts

SKALE can process smart contracts written in Solidity. This makes migrating your smart contracts from Ethereum fast and easy. Some smart contract updates or changes may be needed to enable certain features in SKALE, such as transferring money and saving state. Please reference the respective sections within Code Samples.

NOTE: To deploy your smart contracts onto SKALE, the transaction needs to be signed. This code below shows how to use the truffle-hdwallet-provider package to sign the transaction with the private key of your wallet:
31 lines
/*
* This truffle script will deploy your smart contracts to your SKALE Chain.
*
* @param {String} privateKey - Provide your wallet private key.
* @param {String} provider - Provide your SKALE endpoint address.
*/
let HDWalletProvider = require("truffle-hdwallet-provider");
//https://skale.network/developers/ for SKALE documentation
//Provide your wallet private key
let privateKey = "[YOUR_PRIVATE_KEY]";
//Provide your SKALE endpoint address
let skale = "[YOUR_SKALE_CHAIN_ENDPOINT]";
module.exports = {
networks: {
ganache: {
host: "127.0.0.1",
port: 8545,
network_id: "*"
},
skale: {
provider: () => new HDWalletProvider(privateKey, skale),
gasPrice: 0,
network_id: "*",
skipDryRun: true
}
}
}
Show More

You can point your deployment scripts for your existing smart contracts to your SKALE Chain’s address and deploy using existing tooling. An example Truffle deployment command is:

1 lines
truffle deploy --reset --network skale --compile-all
Show More

See Code Samples for more deployment script examples.

4. Send a Transaction

4. Send a Transaction

Once your smart contracts deploy to your SKALE Chain, you can test sending out a new transaction using your existing connectors to Ethereum (ether.js, web3.js, web3.py, Remix, etc.).

You won't need to change your ether.js or web3 code setup, but you will need to send the transactions directly to SKALE by connecting MetaMask or API Based Wallet of your choice to your SKALE Chain.

Developers
  • Support & Learning
  • Languages &
Tooling
  • More
GET DEV UPDATES IN SKALE NEWSLETTER
JOIN THE CONVERSATION
© 2021 SKALE Labs. All right reserved.
skale.networkCookiesPrivacy Policy