Hello World on Axion

We at axion think solana tooling is great thats why we are focused on making 1:1 dropin replacement to solana.

This guide walks you through deploying a simple smart contract to Axion Testnet. we are wire compatible with solana, so every tool used on solana should work same, just have to change some endpoint.

Prerequisites

You'll have to do a few things before you can deploy your smart contract to Axion Testnet.

Install Dependencies

Install Rust, Cargo.

Copy

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

You can check if the installation was successful by running the following commands:

Copy

rustc --version
cargo --version

ii. We'll also have to install Node.js and npm using, which will be used later in this guide.

Visit the official Node.js download page and download the installation binary for your system. Versions recommended are 20 and above. If you have trouble with this, you might consider using Homebrew or some other package manager.

Note that npm is bundled with the Node.js installation, so you don't have to install it separately.

iii. Now let's install the Solana CLI. This allows you to interact with Solana clusters (Axion Testnet in this case).

Copy

sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

iv. Instead of setting your Solana CLI to a local cluster, set it to Axion Testnet with the following command:

Copy

solana config set --url https://devnet.axionprotocol.com:8899

v. If this is your first time using the Solana CLI, you will need to generate a new keypair:

Copy

solana-keygen new

This will generate a new key pair and save it to your local machine. You will need this key pair to sign transactions to deploy your smart contract to Axion Testnet.

Getting Your Axion Public Address

Copy the previously generated "Solana" address using the Solana CLI: solana-keygen new --no-outfile or solana-keygen new --outfile my-wallet.json.

The public key in the output should resemble something like this following: 2YkWYdXYWQ1gzLhVPFrXQZkjvLqYSdJbXceeVUSbmfED

Deploying the Smart Contract

Now that we've set up our environment, we can deploy our smart contract to Axion Testnet. Let's make sure that everything is installed properly by running a local Solana cluster.

Copy

solana-test-validator

In case the validator fails to start, restart your computer and run the following command:

Copy

sudo $(command -v solana-sys-tuner) --user $(whoami) > sys-tuner.log 2>&1 &

We don't need that local Solana cluster but we're using it to check that everything is installed properly. Next, we'll clone the Solana Hello World repository and install the dependencies.

Copy

git clone https://github.com/solana-labs/example-helloworld
cd example-helloworld
npm install

We build the smart contract:

Copy

npm run build:program-rust

Finally, we can deploy the smart contract to Axion Testnet:

Copy

solana program deploy dist/program/helloworld.so

We can run the JavaScript client and confirm whether the smart contract was deployed successfully:

Copy

npm run start

The output should be something like this:

Copy

Let's say hello to a Solana account...
Connection to cluster established: http://127.0.0.1:8899 { 'feature-set': 2045430982, 'solana-core': '1.7.8' }
Using account AiT1QgeYaK86Lf9kudqKthQPCWwpG8vFA1bAAioBoF4X containing 0.00141872 SOL to pay for fees
Using program Dro9uk45fxMcKWGb1eWALujbTssh6DW8mb4x8x3Eq5h6
Creating account 8MBmHtJvxpKdYhdw6yPpedp6X6y2U9dCpdYaZJdmwV3A to say hello to
Saying hello to 8MBmHtJvxpKdYhdw6yPpedp6X6y2U9dCpdYaZJdmwV3A
8MBmHtJvxpKdYhdw6yPpedp6X6y2U9dCpdYaZJdmwV3A has been greeted 1 times
Success

Not seeing the expected output?

  • Make sure you've run all the commands in the previous steps.

  • Inspect the program logs by running solana logs to see why the program failed.

An example of what you might find is given below.

Copy

Signature: 4pya5iyvNfAZj9sVWHzByrxdKB84uA5sCxLceBwr9UyuETX2QwnKg56MgBKWSM4breVRzHmpb1EZQXFPPmJnEtsJ
Status: Error processing Instruction 0: Program failed to complete
Log Messages:
  Program G5bbS1ipWzqQhekkiCLn6u7Y1jJdnGK85ceSYLx2kKbA invoke [1]
  Program log: Hello World Rust program entrypoint
  Program G5bbS1ipWzqQhekkiCLn6u7Y1jJdnGK85ceSYLx2kKbA consumed 200000 of 200000 compute units
  Program failed to complete: exceeded maximum number of instructions allowed (200000) at instruction #334
  Program G5bbS1ipWzqQhekkiCLn6u7Y1jJdnGK85ceSYLx2kKbA failed: Program failed to complete

Last updated