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
npm install moralis @moralisweb3/common-evm-utils
yarn
yarn add moralis @moralisweb3/common-evm-utils
pnpm
pnpm add moralis @moralisweb3/common-evm-utils
pip
pip install moralis
Step 2 : Get the price of an ERC20 token
In order to get the historical price of an ERC20 token, Moralis provides you with an getTokenPrice endpoint. Here you'll need two parameters: address
and chain
.
Once you have obtained the address
and chain
, you can copy the following code:
index.js (Javascript)
const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");
const runApp = async () => {
await Moralis.start({
apiKey: "YOUR_API_KEY",
// ...and any other configuration
});
const historicalPrice = [];
const address = "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0";
const chain = EvmChain.ETHEREUM;
for (let toBlock = 16323500; toBlock < 16323550; toBlock += 10) {
const response = await Moralis.EvmApi.token.getTokenPrice({
address,
chain,
toBlock,
});
historicalPrice.push(response?.toJSON());
}
console.log(response.toJSON());
};
runApp();
index.ts (Typescript)
import Moralis from "moralis";
import { EvmChain } from "@moralisweb3/common-evm-utils";
const runApp = async () => {
await Moralis.start({
apiKey: "YOUR_API_KEY",
// ...and any other configuration
});
const historicalPrice = [];
const address = "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0";
const chain = EvmChain.ETHEREUM;
for (let toBlock = 16323500; toBlock < 16323550; toBlock += 10) {
const response = await Moralis.EvmApi.token.getTokenPrice({
address,
chain,
toBlock,
});
historicalPrice.push(response?.toJSON());
}
console.log(response.toJSON());
};
runApp();
index.py (Python)
from moralis import evm_api
api_key = "YOUR_API_KEY"
historicalPrice = []
for to_block in range(16323500, 16323550, 10):
params = {
"address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
"chain": "eth",
"to_block": to_block
}
result = evm_api.token.get_token_price(
api_key=api_key,
params=params,
)
historicalPrice.append(result)
print(historicalPrice)
Step 3 : Run the script
To run the script, enter the following command:
Shell (Javascript)
node index.js
Shell (Typescript)
ts-node index.ts
Shell (Python)
python index.py
Step 4 : Response
[
{
"nativePrice": {
"value": "642828540698243",
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"usdPrice": 0.7811524052648599,
"exchangeAddress": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
"exchangeName": "Uniswap v3"
},
{
"nativePrice": {
"value": "642828540698243",
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"usdPrice": 0.7811524052648599,
"exchangeAddress": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
"exchangeName": "Uniswap v3"
},
{
"nativePrice": {
"value": "642892823552313",
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"usdPrice": 0.7812305205053863,
"exchangeAddress": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
"exchangeName": "Uniswap v3"
},
{
"nativePrice": {
"value": "642892823552313",
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"usdPrice": 0.7812305205053863,
"exchangeAddress": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
"exchangeName": "Uniswap v3"
},
{
"nativePrice": {
"value": "642892823552313",
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"usdPrice": 0.7812305205053863,
"exchangeAddress": "0x1f98431c8ad98523631ae4a59f267346ea31f984",
"exchangeName": "Uniswap v3"
}
]
Congratulations ๐ฅณ You just got the historical price of an ERC20 Token with just a few lines of code using the Moralis Token API!
API Reference
If you want to know more details on the endpoint and optional parameters, check out:
โ
โ- getTokenPrice
Support