Skip to main content

How to run smart contract functions

Prerequisites

Before getting started, make sure you have the following ready:

  • Node v.14+ or Python
  • NPM/Yarn or Pip

Step 1: Setup Moralis

First register your Moralis account and get your Moralis API Key.

Once you have your Moralis API Key, install the Moralis SDK in your project.

npm install moralis @moralisweb3/common-evm-utils

Step 2: Get the verbose transaction of an address

In order to run smart contract function, Moralis provides you a runContractFunction endpoint to do so.

Here you'll need three parameters: address, function_name and abi.

Once you've obtained the address and function_name parameters, you can get the contract's ABI by going to blockchain explorer such as Etherscan and copy the contract ABI directly. Your ABI should be in JSON format as follows:

[
{
"inputs": [],
"name": "getPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]

Once you've obtained the ABI, you can copy the following code:

const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");
const abi = require("abi.json");

const runApp = async () => {
await Moralis.start({
apiKey: "YOUR_API_KEY",
// ...and any other configuration
});

const chain = EvmChain.ETHEREUM;

const address = "0x1A92f7381B9F03921564a437210bB9396471050C";

// token 0 address, e.g. WETH token address
const functionName = "getPrice";

const response = await Moralis.EvmApi.utils.runContractFunction({
address,
functionName,
abi,
chain,
});

console.log(response.toJSON());
};

runApp();

Step 3: Run the script

To run the script, enter the following command:

node index.js

In your terminal, you should see the following JSON response:

20000000000000000

Congratulations 🥳 You just run smart contract functions with just a few lines of code using the Moralis Utils API!

Youtube Video

API Reference

If you want to know more details on the endpoint and optional parameters, check out:

Support

If you face any trouble following the tutorial, feel free to reach out to our community engineers in our Discord or Forum to get 24/7 developer support.