All Collections
API
Web3 API
Get historical ERC20 token price
Get historical ERC20 token price

Historical Prices Endpoint

Jonathan Blackburn avatar
Written by Jonathan Blackburn
Updated over a week ago

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

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.

Did this answer your question?