こんにちは、Web3が好きでDapps開発のための勉強を日々、続けている駆け出しエンジニアです。今回の記事のテーマはNFT APIです。
Dappの開発においてNFTを扱う際、最も重要なピースの1つとなるのがNFT APIです。なぜなら、NFT APIを使わないと以下のような問題に直面するからです。
ERC721やERC1155のスマートコントラクトのNFTにおけるオンチェーンデータには制約があります。
- 1つのトークンIDのオーナーアドレスは取得できるが、複数のトークンIDのオーナーを取得するには、トークンの数だけ通信が必要になる
- IPFSに保存されているURLしか取得できず、実際の画像などのデータを取得するにはIPFSにアクセスする必要がある
- あるアドレスが特定のコントラクトのどのトークンを持っているかを確認することが簡単ではない
このように、オンチェーンからデータを取得するには多くの通信が必要になり、フロントエンドのパフォーマンスが落ちる、Node as a Serviceを利用している場合はコストが増加するなどの問題が生じます。そのため、オフチェーンでデータをアグリゲートされたデータを使う必要があります。
そのために、自前でオフチェーンデータのアグリゲーションを行うという選択肢も存在します。自身でノードを立てるか、Node as a Serviceを定期的に叩いてオンチェーンデータをオフチェーンに保存することで、独自のNFT APIを構築できます。しかし、この方法には開発コストやメンテナンスコストがかかるため、結果的にNFT APIを提供しているサービスを活用することをおすすめします。
NFT APIを活用することで、NFTの発行(mint)、取引、管理などの機能を実装することができます。しかし、NFT APIには様々な種類があり、提供される機能も異なります。
NFT APIは、様々なタイプのプロバイダーから提供されています。
- 代表的なAPIプロバイダー:AlchemyやMoralisなど。幅広いブロックチェーン、機能に対応したAPIを提供しているという特徴がある。
- NFTマーケットプレイス発のAPIプロバイダー:Raribleなど。NFTの売買に関するAPIを多く提供するという特徴がある。
- Node運用サービスを提供するAPIプロバイダー:QuikNode NodeRealなど。Node起点の幅広いデータへのアクセスが特徴的。
Dapp開発者は、自身のアプリケーションの要件に合わせて、最適なNFT APIを選択する必要があります。例えば、NFTマーケットプレスを開発する場合、NFTコレクション内のすべてのトークンを取得したり、個々のNFTの詳細情報を取得したり、トランザクション履歴を追跡したりする機能が必要になります。一方で、単にNFTを発行(mint)するだけのサイトを開発する場合は、NFT発行に特化したAPIで十分かもしれません。
また、近年では単一のブロックチェーンに留まらず、複数のブロックチェーンに対応したDappが増えています。そのような場合、一つのAPIで複数のブロックチェーンをカバーできるかどうかも重要な選択基準になります。
このように、Dapp開発におけるNFT APIの選択は、アプリケーションの要件によって大きく異なります。本記事では、主要なNFT APIの機能を比較、検討することで、開発者がより適切なNFT APIを選択できるよう支援します。
代表的なAPIプロバイダー
Moralis
価格
- Starter: 無料
- 40,000 compute units/日
- Pro: $49
- 100,000,000 compute units/月
- Business: $249
- 350,000,000 compute units/月
機能
- コントラクトの全NFT取得: あり
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり (チェーン毎)
- ウォレットのNFT取引データ取得: あり
チェーン
Ethereum, Polygon, Binance Smart Chain, Avalanche C-Chain, Fantom, Cronos, Palm, Arbitrum, Gnosis, Base, Optimism, Linea, moonbeam
ドキュメント
https://docs.moralis.io/web3-data-api/evm/reference/nft-api
Alchemy
価格
- Free: 無料
- 300 Million compute units/月
- Growth: $49
- 400 Million compute units/月
- Scale: $199
- 1.5 Billion compute units/月
機能
- コントラクトの全NFT取得: あり
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり (チェーン毎)
- ウォレットのNFT取引データ取得: なし
チェーン
Ethereum, Polygon (Matic), Arbitrum, Optimism, Base, Starknet
ドキュメント
https://docs.alchemy.com/reference/nft-api-quickstart
NFTPort
価格
- Free: 無料
- 25,000 requests/月
- Growth: $49
- 150,000 requests/月
- Scale: $299
- 1,000,000 requests/月
機能
- コントラクトの全NFT取得: あり
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり (チェーン毎)
- ウォレットのNFT取引データ取得: あり (チェーン毎)
チェーン
Ethereum, Polygon
ドキュメント
https://docs.nftport.xyz/docs/welcome-to-nftport
NFTマーケットプレイス発のAPIプロバイダー
Rarible
価格
- Starter: 無料
- 50k requests/月
- Startup: $40
- 400k requests/月
- Pro: $250
- 4M requests/月
- Business: $999
- 20M requests/月
機能
- コントラクトの全NFT取得: なし
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり (チェーン毎)
- ウォレットのNFT取引データ取得: なし
チェーン
Ethereum, Polygon, Mantle, IMX, Flow, Arbitrum One, Chiliz, LightLink, Celo, zkSync, Base, RARI Chain, Astar, zkEVM, Kroma, Xai
ドキュメント
https://docs.rarible.org/reference/getting-started
Node運用サービスを提供するAPIプロバイダー
QuickNode
価格
- 無料
- 50 Million API credits/月
- $10
- 100 Million API credits/月
- $49
- 500 Million API credits/月
- $299
- 3 Billion API credits/月
機能
- コントラクトの全NFT取得: あり
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり
- ウォレットのNFT取引データ取得: なし
チェーン
Aptos, Arbitrum, Arbitrum Nova, Avalanche, Base, Berachain, Bitcoin, Blast, BNB Smart Chain, Celo, Cyber, Ethereum, Fantom, Flow, Gnosis, Immutable, Mantle, NEAR, Optimism, Polkadot, Polygon, Polygon zkEVM, Scroll, SEI, Solana, Stacks, Starknet, Stellar, TRON, XRP Ledger, zkSync Era
ドキュメント
https://www.quicknode.com/docs/ethereum/qn_fetchNFTCollectionDetails_v2#
NodeReal
価格
- Free: 無料
- 100M CUs/月
- Growth: $31
- 500M CUs/月
- Team: $159
- 2B CUs/月
- Business: $399
- 5B CUs/月
機能
- コントラクトの全NFT取得: あり
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり
- ウォレットのNFT取引データ取得: あり
チェーン
Ethereum, BNB Smart Chain, Polygon, Moonbeam, Arbitrum One, Optimism, PlatON, Avalanche, Cronos, Fantom, Gnosis
ドキュメント
https://docs.nodereal.io/reference/get-nfts-by-account
ankr
価格
- Public: 無料
- 50 requests/分
- Premium: $10 per 100 million credits
- 1k+ requests/分
機能
- コントラクトの全NFT取得: なし
- NFTのメタデータ取得: あり
- ウォレットの保有NFT取得: あり
- ウォレットのNFT取引データ取得: あり
チェーン
arbitrum, avalanche, base, bsc, eth, fantom, flare, gnosis, linea, optimism, polygon, polygon_zkevm, rollux, scroll, stellar, syscoin
ドキュメント
https://www.ankr.com/docs/advanced-api/nft-methods/
まとめ
NFT APIを選ぶ際の主なポイントは以下の通りです。
- 開発するDappの種類(NFTミントサイト、マーケットプレイス、ウォレットなど)
- 必要な機能(NFTの発行、取引、メタデータ取得、履歴追跡など)
- 対応ブロックチェーンの種類
- API提供元の種類(汎用プロバイダー、マーケットプレイス発のプロバイダー、Node運用サービス発のプロバイダーなど)
- コストやレート制限
例えば、マーケットプレイス開発の場合は、NFTコレクション内の全トークンデータの取得や、トークン単位の詳細情報、取引履歴の追跡など、豊富な機能が求められます。一方でミントサイトであれば、NFT発行に特化したシンプルなAPIで十分かもしれません。
NFTユースケースが今後さらに広がると考えられますので、Dapp開発者は常に最新のNFT APIの動向を注視し、自身のアプリケーションに最適なソリューションを選び続ける必要があるでしょう。
株式会社Pontechでは、Dapps開発の受託を請け負っております。本記事のように採用する技術やサードパーティのサービスの検討からお手伝いすることが可能です。
Dapps開発に関するご相談がございましたら、ぜひ当社までお問い合わせください。