---
title: "Arbitrum NFT API：概覽與快速入門指南"
description: "幾分鐘內開始建構功能強大的 Arbitrum NFT 應用程式與工具"
---

## ‍**Arbitrum 生態系成長**

[Arbitrum](https://www.alchemy.com/arbitrum?a=956074bef3) 是 Ethereum 的 Layer 2（L2）擴容方案，相較於 [Ethereum mainnet](https://www.alchemy.com/rpc/ethereum)，能提升交易速度並降低 gas 成本，對熟悉 Ethereum Virtual Machine 的 Solidity 開發者而言是很有吸引力的選擇。

Arbitrum 是採用 optimistic rollups（ORUs）的主流 layer 2 Ethereum 擴容方案，根據 [Arbitrum statistics](https://www.alchemy.com/overviews/arbitrum-statistics)，目前呈現穩健成長。儘管整個市場自 2022 年初以來一直處於下跌趨勢，[Q3 Web3 Developer report](https://www.alchemy.com/blog/web3-developer-report-q3-2022) 顯示 [Arbitrum ecosystem](https://www.alchemy.com/dapps/ecosystem/arbitrum) 有以下成長：

- 活躍團隊年初至今成長 516%
- 活躍開發團隊年增 795%
- API 用量年初至今成長 121%

Arbitrum 上一些最受歡迎的 [apps](https://www.alchemy.com/dapps/top/defi-dapps) 包括：

- **Aave** - DeFi 中最大的點對點借貸協議之一
- **[1inch](https://www.alchemy.com/dapps/1inch)** - 一個去中心化交易所（DEX）聚合器，協助使用者在代幣交換時找到最佳價格
- **Yearn Finance** - 一個專注於借貸加密資產時收益優化的 DeFi 協議

此外，Uniswap、Sushi、[Balancer](https://www.alchemy.com/dapps/balancer) 和 [OpenSea](https://www.alchemy.com/dapps/opensea) 等平台近期也整合了 Arbitrum 支援，將更多主流應用帶入 Arbitrum 網路。

隨著市場對更快、更便宜的 EVM 相容區塊鏈需求日益增加，Arbitrum 為開發者提供了一個具吸引力的區塊鏈選項。由於開發者在索引與查詢 NFT metadata 時面臨時間與資源的限制，Alchemy 擴充了 NFT API 支援，讓開發者能在 Arbitrum 上打造高品質的 NFT 專案。

## **什麼是 Arbitrum NFT API？**

**Arbitrum NFT API 是一套用於查詢 Arbitrum 區塊鏈上 non fungible token（ERC721）與 semi-fungible token（ERC1155）的 API endpoint，包含 getNFTs、isHolderForCollection 等。**

若要透過 Alchemy 的 multichain NFT API 與 [Arbitrum nodes](https://www.alchemy.com/overviews/arbitrum-node) 通訊，開發者可以使用 JSON-RPC 方法，透過自建節點或 [Arbitrum node provider](https://www.alchemy.com/overviews/blockchain-node-providers) 對 Arbitrum 讀寫資料。Arbitrum NFT API 支援 on-chain 與 off-chain NFT，格式包含 JSON、SVG、UTF-8，以及 Pinata 等 IPFS gateway 與 Base64 編碼圖片。

## **Arbitrum NFT API 支援的方法**

Alchemy 的 Arbitrum NFT API 提供多種強大的 endpoint，從最基本的 [getNFTs](https://www.alchemy.com/overviews/getnfts) 呼叫，到查詢所有權與 metadata 的呼叫皆有涵蓋。常見用途包括儀表板、錢包、[NFT viewers](https://www.alchemy.com/overviews/nft-viewer)、NFT 搜尋、稀有度工具與分析工具。

### **用於所有權與 token gating 的 Arbitrum NFT API endpoints**

以下 Arbitrum NFT API endpoint 常被開發者用來判斷特定 NFT 或收藏集的持有者。這些 endpoint 在 Discord 或 Shopify 等平台上[設定 token gating](https://www.alchemy.com/overviews/nft-token-gating) 機制時相當實用。

- **getNFTs** - 查詢特定錢包持有的 Arbitrum NFT
- **getOwnersForToken** - 取得某個 token 的 Arbitrum 擁有者
- **getOwnersForCollection** - 取得某個收藏集的 Arbitrum NFT 擁有者
- isHolderOfCollection - 檢查該 Arbitrum 錢包是否持有特定 NFT
- **getNFTsForCollection** - 取得屬於某個 Arbitrum NFT 收藏集的 NFT

### **Arbitrum ERC-721 與 ERC-1155 metadata**

Metadata 包含收藏集名稱、supply、屬性、symbol 等資訊。Arbitrum NFT metadata 對建構分析工具的開發者與分析資料的交易者都相當有幫助。

- **getNFTMetadata** - 取得 Arbitrum NFT metadata
- **getContractMetadata** - 取得 Arbitrum NFT 智能合約 metadata

## **如何開始使用 Arbitrum NFT API 進行開發**

[Alchemy SDK](https://www.alchemy.com/sdk) 是目前最完整、最強大的 JavaScript SDK，可用來與 Arbitrum 互動。Alchemy 的 web3 SDK 支援與 Ethers.js AlchemyProvider 和 WebSocketProvider 完全相同的語法與功能，對於使用 Ethers.js Provider 的開發者而言是 1:1 對應。

還有更多優點！

Alchemy SDK 在 Ethers 的基礎上新增了大量強化功能，例如：

1. 存取 Alchemy 的 Enhanced APIs
1. 存取 Alchemy 的 NFT APIs
1. 完善的 WebSockets 支援
1. 自動重試機制

此 SDK 運用 Alchemy 具備高韌性的節點基礎設施，保證業界頂尖的節點可靠性、可擴展性與[資料正確性](https://alchemy.com/blog/data-accuracy)，並持續由 Alchemy 工程師積極開發。

### 1. 安裝 SDK

如需完整的[如何開始使用 web3 SDK](https://www.alchemy.com/docs/alchemy-quickstart-guide) 說明，請參閱官方文件。只要執行以下指令即可安裝 SDK：

<CodeSnippet code={`npm install alchemy-sdk`} language="text" theme="dark" />

### 2. 取得 Arbitrum API key

如果您還沒有 Alchemy 帳號，請建立新帳號並[建立 Arbitrum app](https://dashboard.alchemy.com/signup/?a=956074bef3)。您需要 API Key 與 URL 才能匯入 SDK。

<ImageBlock
  src="https://media.alchemy.com/1703687379-create-arbitrum-app.png"
  alt="在 Alchemy 開發者儀表板中建立新的 Arbitrum 應用程式。"
  width={1266}
  height={653}
  caption="在 Alchemy 開發者儀表板中建立新的 Arbitrum 應用程式。"
/>

### 3. 匯入並執行 SDK

接著您就可以匯入並使用 SDK。在終端機執行指令前，請務必替換以下項目：

- **apiKey** - 您可以在 Alchemy 中建立新的 Arbitrum app 並複製 API Key 取得
- network - 您可以從 Arbitrum app 設定中複製貼上

<CodeSnippet code={`import { Network, Alchemy } from 'alchemy-sdk';

// Optional Config object, but defaults to demo api-key and eth-mainnet.
const settings = {
apiKey: 'demo', // Replace with your Alchemy API Key.
network: Network.ARB_MAINNET, // Replace with your network.
};
const alchemy = new Alchemy(settings);

// Access standard Ethers.js JSON-RPC node request
alchemy.core.getBlockNumber().then(console.log);`} language="typescript" theme="dark" />

您也可以直接複製 Alchemy dashboard 中提供的範例程式碼，並在終端機中執行：

<ImageBlock
  src="https://media.alchemy.com/1703687555-alchemy-dashboard.jpg"
  alt="Alchemy 儀表板中的 Arbitrum API 金鑰與程式碼範例。"
  width={1203}
  height={950}
  caption="Alchemy 儀表板中的 Arbitrum API 金鑰與程式碼範例。"
/>

就是這樣！現在您已經在執行 Alchemy 的 SDK 並連接到 Arbitrum 網路。至此，您已能完整使用 web3 中最強大的 Arbitrum NFT API！
