Getting Started with edeXa (Developer Guide)
1. Introduction
Welcome to edeXa! Whether you're building on the Testnet or Mainnet, edeXa offers developers a flexible, fast, and secure blockchain environment for your decentralized applications. Let’s get you started on the right foot.
2. Step-by-Step Guide to Get Started
Step 1: Set Up Your Development Environment
To start developing on edeXa, you'll need a few basic tools:
Install edeXa Wallet (recommended) or MetaMask (or another Ethereum-compatible wallet) to interact with the blockchain.
Set up Remix IDE or your preferred development environment for smart contracts. Open your browser and visit https://remix.ethereum.org/.

Step 2: Connect to edeXa Network
To connect to the edeXa Testnet or Mainnet:
RPC URLs for Testnet & Mainnet:
Testnet: https://testnet.edexa.network/rpc
Mainnet: https://mainnet.edexa.network/rpc You can also visit https://chainlist.org/?search=edexa&testnets=true

Use these URLs to configure your wallet or development tools like Truffle or Hardhat for seamless interaction with the network.
Step 3: Access the edeXa Faucet
Get Testnet EDX tokens for testing your contracts or transactions on Testnet:
Faucet link: edeXa Testnet Faucet

Get tokens to experiment with smart contract interactions or transactions.
Step 4: Start Building Your Smart Contracts
Necessary Preparations: Open your browser and visit Remix IDE.
Click the File Explorer icon in the left navigation bar of Remix.
Click the "+" icon to create a new workspace. Name your workspace (e.g., "edeXaWorkspace").
Create a new
.sol
smart contract, and name it something easy to remember likeMyContract.sol
.
Basic Operations: In your new
.sol
smart contract, importedeXaApp.sol
. This will allow your smart contract to inherit fromedeXaApp
and access its functionality.For example:
solidityCopyEdit// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; import "@edexa/contracts/edeXaApp.sol"; // Replace with actual edeXa contract path contract MyContract is edeXaApp { // Your contract code }
Override the
_edeXaReceive
function in your smart contract. This is a protected function that will be called when your contract receives a cross-chain message. You can customize this function to define how your contract will handle incoming messages.
solidityCopyEditfunction _edeXaReceive( bytes calldata data, bytes32 messageId, uint256 fromChainId, address fromSC ) internal override { // Custom handling for incoming message }
Initialize Your Smart Contract: When initializing your smart contract, call the
edeXaApp
initialize function. This function takes two parameters: theadmin
and the_edeXaGateway
address.Example:
solidityCopyEditconstructor(address admin, address _edeXaGateway) edeXaApp() { initialize(admin, _edeXaGateway); // Your initialization code }
Sending Cross-Chain Messages: To send messages or contract calls to other chains, you can use the
_dispatchMessage
function provided byedeXaApp
. This function allows you to send messages to any specified chain or contract.Example:
solidityCopyEditfunction sendMessage( uint256 toChainId, address toAddress, bytes memory msgData, uint256 feeAmount) public payable { _dispatchMessage(toChainId, toAddress, msgData, feeAmount); }
Estimate Fees: Use the
estimateFee
function to calculate the fee required to send a cross-chain message. This function takes two parameters: the target chain ID and the gas limit.Example:
solidityCopyEditfunction sendMessage( uint256 toChainId, address toAddress, bytes memory msgData, uint256 gasLimit) public payable { uint256 fee = estimateFee(toChainId, gasLimit); require(msg.value >= fee, "Insufficient fee"); _dispatchMessage(toChainId, toAddress, msgData, msg.value); }
3. Resources
edeXa API Documentation
4. Contact & Support
Join the Developer Community: Discord
Submit a Support Request: helpdesk@edexa.com
Explore edeXa Labs: edeXa Labs Innovation Center
Last updated