I was looking at historical data for the ‘Chill RX’ NFT using ‘Moralis Web3 API’.
And I get a lot of wrong ‘values’ back.
I assume the value should be the transfer price of a single token in a NTF collection.
An example:
I call https://deep-index.moralis.io/api/v2/nft/0xe7e07f9dff6b48eba32641c53816f25368297d22/transfers
I get 500 transfers. Good to know: Price on OpenSea for this NFT varies between 0,05 and 0,15 ether.
This is a summary table, with time, price in ether and the token ID of some transfers.
2022-04-04T09:42:51.000Z ; 1,323 ; 8252
2022-04-04T09:39:12.000Z ; 0,200 ; 6607
2022-04-04T09:37:20.000Z ; 0,120 ; 6346
2022-04-04T09:35:28.000Z ; 0,711 ; 7204
2022-04-04T09:35:28.000Z ; 0,711 ; 7475
2022-04-04T09:35:28.000Z ; 0,711 ; 8337
2022-04-04T09:35:28.000Z ; 0,711 ; 8399
2022-04-04T09:35:28.000Z ; 0,711 ; 8530
2022-04-04T09:35:28.000Z ; 0,711 ; 9004
2022-04-04T09:32:31.000Z ; 0,119 ; 8623
2022-04-04T09:28:32.000Z ; 0,120 ; 9800
The first token 8252 stands out with a value of 1,323. I check OpenSea:
And the token has indeed been sold at that time, but for 0,12 ether (from Expensive_JPEGS to 000000).
Sales of 6607 and 6346 are correct.
But then there is an array of NFT’s having the value 0,711 (7204, 7475, etc).
The time is correct, but the value is wrong again (sold for 0,118 and 0,119).
Making sure it is not my code, I checked the block (no 14518778) in which NFT 8252 is sold, in the online environment (https://admin.moralis.io/web3Api):
https://deep-index.moralis.io/api/v2/block/14518778/nft/transfers
This yields the same faulty value:
{
“block_number”: “14518778”,
“block_timestamp”: “2022-04-04T09:42:51.000Z”,
“block_hash”: “0xb5bf9135d0f2b5a8481c1b00952acaac389346545b86e290259d1e75eca577a4”,
“transaction_hash”: “0xff9d41a944eb6dbfa9ceb24a79a1f14e50b375668312294c21e71a55d76d2e66”,
“transaction_index”: 111,
“log_index”: 132,
“value”: “1323000000000000000”,
“contract_type”: “ERC721”,
“transaction_type”: “Single”,
“token_address”: “0xe7e07f9dff6b48eba32641c53816f25368297d22”,
“token_id”: “8252”,
“from_address”: “0x769d74371c83777ea32bc09a32eb619fc7865903”,
“to_address”: “0x76d0e0ab3a97bc4d07ae9d0b5030fe70148236ed”,
“amount”: “1”,
“verified”: 1,
“operator”: null
},
Looking at etherscan for this transaction:
https://etherscan.io/tx/0xff9d41a944eb6dbfa9ceb24a79a1f14e50b375668312294c21e71a55d76d2e66
It seems that 11 tokens in this collection have been transferred in one block, with 1.323 Ether being the total value of these all.
I love the service Moralis provides, but when I call for historical data, I expect these to be the transfer prices for single NFT tokens. Else the service is a bit unusable.
Is this a bug in the processing of Moralis?
Is there a way to work around this?