Rise In Logo



Build on MultiversX

Entering the MultiversX JavaScript Universe

Ready to launch into the MultiversX blockchain world? In this guide, we’re going to suit up, grab our toolkit, and send a transaction to the MultiversX galaxy using JavaScript. Let's dive into each step, like prepping our rocket for liftoff. 🛸

Step 1: Building the Launch Pad (Set Up Your Node.js Project)

  • Create a directory for your project, the “command center” for your mission.
  • Initialize the project with npm init. You’ll answer a few questions (name, version, etc.) to create a package.json file.
npm init

This file will keep your project organized and ready for takeoff!

Step 2: Equip Your Rocket (Install MultiversX SDK Libraries)

Next, we need some special tools to interact with the MultiversX blockchain:

npm install @multiversx/sdk-core @multiversx/sdk-network-providers @multiversx/sdk-wallet

Here’s what each one does:

  • sdk-core: The brains for transaction handling.
  • sdk-network-providers: Our direct line to the MultiversX network.
  • sdk-wallet: Your very own wallet wizard to sign transactions. 🪄

Step 3: Prepare Your Fuel (Create a Wallet)

  • Create a wallet on the Devnet Web Wallet. Store your Keystore file, seed phrase, and password somewhere safe.
  • Request test tokens (EGLD) from the faucet to power your rocket (your transactions).

Step 4: Mission Control Setup (Configure the Project)

Next, we'll create a setup.js file to configure the necessary tools. Your project directory should now look like this:

node_modules/

package.json

erd....json (Keystore file)

setup.js

In setup.js, we'll set up the user wallet, synchronize the account with the network, and initialize the network provider for sending transactions:

import { promises } from "node:fs";

import { Address, Account } from "@multiversx/sdk-core";

import { ApiNetworkProvider } from "@multiversx/sdk-network-providers";

import { UserSigner } from "@multiversx/sdk-wallet";

export const senderAddress = "erd10dgr4hshjgkv6wxgmzs9gaxk5q27cq2sntgwugu87ah5pelknegqc6suj6";

export const receiverAddress = "erd176ddeqqde20rhgej35taa5jl828n9z4pur52x3lnfnj75w4v2qyqa230vx";

const keyFilePath = `./${senderAddress}.json`;

// Demo password, replace with your real one and keep private

const password = "Ab!12345678";

// API provider for the devnet

export const apiNetworkProvider = new ApiNetworkProvider("<https://devnet-api.multiversx.com>");

export const syncAndGetAccount = async () =&gt; {

  const address = new Address(senderAddress);

  const userAccount = new Account(address);

  const userAccountOnNetwork = await apiNetworkProvider.getAccount(address);

  userAccount.update(userAccountOnNetwork);

  return userAccount;

};

const getKeyFileObject = async () =&gt; {

  const fileContents = await promises.readFile(keyFilePath, { encoding: "utf-8" });

  return fileContents;

};

export const getSigner = async () =&gt; {

  const wallet = await getKeyFileObject();

  return UserSigner.fromWallet(JSON.parse(wallet), password);

};

Explanation

  • apiNetworkProvider: Connects you to the MultiversX devnet.
  • syncAndGetAccount(): Syncs your account so you’re all set to send transactions.
  • getSigner(): Allows you to sign transactions with your wallet.

Step 5: Blast Off! (Send Your First Transaction)

With everything in place, it’s time to send a transaction. In a new file, set up the following code to prepare and send an EGLD transaction:

import { Transaction, TransactionComputer } from "@multiversx/sdk-core";

import { receiverAddress, syncAndGetAccount, senderAddress, getSigner, apiNetworkProvider } from "./setup.js";

const sendEgld = async () =&gt; {

  const user = await syncAndGetAccount();

  const transaction = new Transaction({

    data: Buffer.from("This is the demo transaction!"),

    gasLimit: 100000n,

    sender: senderAddress,

    receiver: receiverAddress,

    value: 1000000000000000n, // 0.001 EGLD

    chainID: "D",

  });

  transaction.nonce = user.getNonceThenIncrement();

  const computer = new TransactionComputer();

  const serializedTransaction = computer.computeBytesForSigning(transaction);

  const signer = await getSigner();

  transaction.signature = await signer.sign(serializedTransaction);

  const txHash = await apiNetworkProvider.sendTransaction(transaction);

  console.log("Check in the explorer: ", `https://devnet-explorer.multiversx.com/transactions/${txHash}`);

};

sendEgld();

Mission Complete!

And there you have it! You’ve sent your first transaction on the MultiversX network. For the full mission log and more quests, check out the official docs.

Reference: https://www.julian.io/articles/multiversx-js-sdk-intro.html


Comments

You need to enroll in the course to be able to comment!

Stay in the know

Never miss updates on new programs and opportunities.

Rise In Logo

Rise together in web3!

Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.