<p>Seeing as many projects have up to 10k assets it's clear that you cannot use Blockfrost for this.</p>
<p>Unless opencnft.io has an exposed API endpoint that you can use to query this info from their database, I'm afraid you're going to have to use a tool like Ogmios to extract the relevant information from the blockchain yourself. You'll have to set up a cardano node and use the <code>chainSyncClient</code> utility in Ogmios to sync blocks and store the UTxOs/addresses containing the assets in a custom database (for example json/SQL).</p>

CC BY-SA 4.0
2022-07-02T15:04:35.410Z
Depending on the exact use case Blockfrost should be a perfectly fine option to fetch the holders of 10k assets. Even the free plan includes 50k requests per day. It might not be the best option for building a site that frequently needs to update this data on many projects though.
sean
CC BY-SA 4.0
2022-07-03T01:33:23.190Z
Right. It depends on the the use case indeed. I assumed the latter.
et97
CC BY-SA 4.0
2022-07-03T03:52:35.573Z
Thanks so much guys, you guys help me a lot 
Michael904
CC BY-SA 4.0
2022-07-04T15:47:22.093Z
To add one more approach I recently found which could potentially be much simpler. On Cardanoscan if you go to the token's policy details page, there's a button "View" right after "Policy Asset Holders". It will show you the token holder's addresses per page. You can easily scrape this data, for example in Python using `requests` module or async requests to reduce time as you'll need to scrape multiple pages (200+ pages). Change the query param `pageNo` with each new request https://cardanoscan.io/tokenPolicy/d5e6bf0500378d4f0da4e8dde6becec7621cd8cbf5cbb9b87013d4cc Spacebudz example
et97
CC BY-SA 4.0
2022-07-02T12:22:33.610Z
2022-07-02T12:22:33.610Z
et97
<p>I'm super new to cardano blockchain development. Today, I just have a chance to explore on blockfrost api. I've been trying to find an answer of the question that</p>
<ul>
<li>Is there any public APIs out there that can make me get all addresses holding cnfts from <strong>a single project</strong> under the same policy id ? For example, the below image is a captured screenshot from <a href="https://opencnft.io/" rel="nofollow noreferrer">www.opencnft.io</a>, it shows all wallet holders distribution.</li>
<li>Right now I only see these two available APIs from blockfrost</li>
</ul>
<ol>
<li><p><a href="https://cardano-mainnet.blockfrost.io/api/v0/assets/policy/%7Bpolicy_id%7D" rel="nofollow noreferrer">https://cardano-mainnet.blockfrost.io/api/v0/assets/policy/{policy_id}</a></p>
</li>
<li><p><a href="https://cardano-mainnet.blockfrost.io/api/v0/assets/%7Basset%7D/addresses" rel="nofollow noreferrer">https://cardano-mainnet.blockfrost.io/api/v0/assets/{asset}/addresses</a></p>
</li>
</ol>
<p>The problem right now is that the second api, {asset} is like a concatenation of the <strong>policy_id</strong> and <strong>hex-encoded asset_name</strong> mixed together, which asset_name in cnft asset will be a unique asset id and their asset ids all vary from each other under the same policy. Meaning that I need to call this API n times by having each request vary on asset_name (given n are total nfts of a project)</p>
<p>Appreciate any helps :)</p>
<p><a href="https://i.sstatic.net/6WaRJ.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/6WaRJ.png" alt="enter image description here" /></a></p>

<nft><blockfrost>
How do I get wallet holders for a cnfts project?
# How do I get wallet holders for a cnfts project?

(Asked by: username_0 on 2022-07-02)

I'm super new to cardano blockchain development. Today, I just have a chance to explore on blockfrost api. I've been trying to find an answer of the question that

* Is there any public APIs out there that can make me get all addresses holding cnfts from **a single project** under the same policy id ? For example, the below image is a captured screenshot from [www.opencnft.io](https://opencnft.io/), it shows all wallet holders distribution.
* Right now I only see these two available APIs from blockfrost

1. [https://cardano-mainnet.blockfrost.io/api/v0/assets/policy/{policy\_id}](https://cardano-mainnet.blockfrost.io/api/v0/assets/policy/%7Bpolicy_id%7D)
2. [https://cardano-mainnet.blockfrost.io/api/v0/assets/{asset}/addresses](https://cardano-mainnet.blockfrost.io/api/v0/assets/%7Basset%7D/addresses)

The problem right now is that the second api, {asset} is like a concatenation of the **policy\_id** and **hex-encoded asset\_name** mixed together, which asset\_name in cnft asset will be a unique asset id and their asset ids all vary from each other under the same policy. Meaning that I need to call this API n times by having each request vary on asset\_name (given n are total nfts of a project)

Appreciate any helps :)

[![enter image description here](https://i.sstatic.net/6WaRJ.png)](https://i.sstatic.net/6WaRJ.png)

**Tags:** nft, blockfrost

---

## 1 answers

### Answer by username_1 on 2022-07-02. Score: 0 | Accepted answer

Seeing as many projects have up to 10k assets it's clear that you cannot use Blockfrost for this.

Unless opencnft.io has an exposed API endpoint that you can use to query this info from their database, I'm afraid you're going to have to use a tool like Ogmios to extract the relevant information from the blockchain yourself. You'll have to set up a cardano node and use the `chainSyncClient` utility in Ogmios to sync blocks and store the UTxOs/addresses containing the assets in a custom database (for example json/SQL).

> **Comments:**
> **username_2**: Depending on the exact use case Blockfrost should be a perfectly fine option to fetch the holders of 10k assets. Even the free plan includes 50k requests per day. It might not be the best option for building a site that frequently needs to update this data on many projects though.  
> **username_1**: Right. It depends on the the use case indeed. I assumed the latter.  
> **username_0**: Thanks so much guys, you guys help me a lot   
> **username_1**: To add one more approach I recently found which could potentially be much simpler. On Cardanoscan if you go to the token's policy details page, there's a button "View" right after "Policy Asset Holders". It will show you the token holder's addresses per page. You can easily scrape this data, for example in Python using `requests` module or async requests to reduce time as you'll need to scrape multiple pages (200+ pages). Change the query param `pageNo` with each new request https://cardanoscan.io/tokenPolicy/d5e6bf0500378d4f0da4e8dde6becec7621cd8cbf5cbb9b87013d4cc Spacebudz example  

---

