Moralis NFT Owners Accuracy

Hi, I was wondering if someone could help me understand the inaccuracy with Moralis NFT Owners count. I call via Python like this. The results I’m getting for some example collections are:

0x7daec605e9e2a1717326eedfd660601e2753a057 - 10ktf-stockroom:
my results: 3810 holders
etherscan: 2729 holders

0xb4d06d46a8285f4ec79fd294f78a881799d8ced9 - 3landers
my results: 6096 holders
etherscan: 6130 holders

0x7ab2352b1d2e185560494d5e577f9d3c238b78c5 - adam-bomb-squad
my results: 8550
etherscan: 8557

Would be great if anyone can offer insight why Moralis gives precise but not accurate results

tradeUrl = "https://deep-index.moralis.io/api/v2/nft/" + str(tok_add) + \ "/owners?chain=eth&format=decimal" 
            if cursor != "":
                tradeUrl += "&cursor=%s" % cursor
            headers = {
                "Content-Type": "application/json",
                "X-API-Key": API-KEY,
            }
response = requests.request("GET", tradeUrl, headers=headers, timeout = 30)
 data = response.json()
results = data["result"]
for result in results:
                owner = result["owner_of"]
                if owner in addresses_dict:
                    addresses_dict[result["owner_of"]][1] += 1
                else:
                    count+= 1
                    addresses_dict[result["owner_of"]] = [result["owner_of"], 1]
            # next page
print("For " + tok_add + " the number of holders is " + str(count))

you can also check the number of unique token ids returned

we know of an issues for pagination for this endpoint, we are working on fixing it

etherscan is not always right either

You mind notifying here when there is a fix available?

1 Like

hopefully it will be fixed by the end of the week

Has there been any updates?

I think that we are closer now with that fix.

I think by not including the burn address, then the supply may be off. However, because a burn address is not attainable by no one, as it is not able to be generated with a private key on the Ethereum network, then technically that supply decreases as it is sent to the burn address and thus no longer considered a holder of a collection.

It depends on what you define as a holder.

any update on the fix yet?

we are close to make that fix for owners endpoint accuracy on pagination

the fix should be available now

Hey, thanks for the reply, but I still see that the data is off in comparison to Etherscan. For instance, if you take a look at 0x3bf2922f4520a8ba0c2efc3d2a1539678dad5e9d, I get 4288 holders compared to 4,312 on Etherscan.

I get 4312 owners with out API too