關於 Alchemy 的 Optimism NFT API,你需要知道的一切
作者 Mrig
NFT collection 在 Optimism 上快速成長,越來越多開發者在此網路上建構新的 NFT 應用程式。這些開發者需要 NFT API 來查詢網路並取得 NFT metadata,以滿足使用者的資料請求。若沒有合適的 NFT API,為個別開發者建立 NFT metadata 的索引與查詢會變成一項耗時又耗費資源的工作。
了解如何使用 Alchemy 的 Optimism NFT API 開始建構 NFT 工具、市集、應用程式等等。
Optimism 的 NFT 生態系
Optimism 是一個 L2(第二層)Ethereum 擴展方案,運行於optimistic rollup 基礎設施之上。Optimistic rollup 透過在鏈下執行交易來減輕 Ethereum 的負擔,藉此提供更高的交易吞吐量並降低 gas 費用。Optimistic rollup 將多筆交易打包成單一交易,再送回 Ethereum 進行驗證,藉此提升網路的可擴展性。
Optimism 內建的可擴展性使其成為開發 NFT 專案的理想方案。使用者可在 Optimism 高速且低費用的交易環境下,享有更好的NFT 遊戲體驗,或是進行收藏品交易。
根據 Optimism NFTScan 網站的資料,Optimism 上有超過 100 萬個 NFT 資產,分散於 23.8 萬個 NFT 錢包中,開發者需要合適的工具組來建構 NFT 協議並處理大量的 NFT。Alchemy 的 Optimism NFT API 正是開發者為 Optimism 生態系建構 NFT 專案所需的主要工具。
什麼是 Optimism NFT API?
Optimism NFT API 協助開發者即時從 L2 網路擷取資訊。開發者可以透過 Optimism NFT API 讀取區塊/交易資料、執行智能合約、查詢鏈上資訊,並將資料儲存於鏈上。
Alchemy 為開發者提供多鏈 NFT API,使用 JSON-RPC 標準 API 與 Optimism 的去中心化節點基礎設施互動。Alchemy 的 Optimism NFT API 讓開發者能夠取得更高的請求吞吐量、增加並行請求數量,並使用免費的資料歸檔、日誌與個別使用量指標。此外,此方案支援所有遵循 ERC-721 與 ERC-1155 標準的 NFT,以及部分早於 Ethereum 標準化 NFT 合約出現的 NFT。
開發者也可透過多種程式碼路徑存取廣泛的 NFT 及其 metadata。Alchemy 的 Optimism NFT API 可處理 JSON、SVG、UTF-8 格式的鏈上或鏈下 NFT、Pinata 等 IPFS gateway,以及以 Base64 編碼的圖片。
開發者可將 Alchemy 的 NFT API 用於以下用途:
- 向使用者顯示 NFT
- 開發NFT 市集
- 設計 NFT 分析協議
- 建構 NFT 遊戲應用程式
- 驗證 NFT 所有權
Optimism NFT API 如何運作?
Alchemy 的 Optimism NFT API 透過以下機制達成高效能運作:圖片快取、垃圾內容過濾、圖片縮放,以及清楚的錯誤說明。
圖片快取
開發者通常需要與 IPFS 等去中心化儲存供應商及第三方伺服器互動,以存取 NFT 媒體檔案。然而,他們會面臨較長的載入時間與逾時錯誤等問題。
Alchemy 透過 Cloudinary 快取 NFT 圖片,提供低延遲、載入快速、回應迅速的解決方案。因此,Alchemy 能直接從自家快取伺服 NFT URL 給開發者,藉此縮短回應時間。
垃圾內容過濾
不需要的垃圾 NFT 可能導致詐騙,並影響 NFT 市集、畫廊或分析平台的使用者體驗。開發者通常必須讀取並解析個別智能合約,才能取得 NFT metadata 以過濾垃圾 NFT。為了簡化這個流程,Alchemy 提供以下 API 端點作為 NFT 垃圾過濾器:
- isSpamForContract - 檢查智能合約是否為垃圾 NFT。開發者也可以篩選合約地址,以檢查垃圾 NFT 的持有者。
- getSpamContracts - 回傳特定網路上垃圾 ERC-721 與 ERC-1155 智能合約的清單。
開發者可使用 Alchemy 的垃圾過濾器,將垃圾 NFT 送去銷毀,或標記寄送垃圾 NFT 的錢包地址。截至 2022 年 8 月,Alchemy NFT API 已標記 5,000 個智能合約為垃圾 NFT。
Alchemy 使用以下標準來判定垃圾 NFT:
- 違反 ERC-721 與 ERC-1155 token 標準
- 在 token 轉移過程中違反 token 標準
- 將 token 鑄造至如 vitalik.eth 之類的誘捕地址(honeypot address)
- 提供不實的 token 總供應量資料
圖片縮放
NFT 需要不同的圖片尺寸,以適用於縮圖、智慧型手機、桌機與平板的螢幕檢視。開發者可以透過變更 URL,加入任意高度與寬度像素組合來調整長寬比,藉此重新調整由 Alchemy 代管的 NFT 圖片大小。如此一來,Alchemy 讓 NFT 開發者能夠更輕鬆地進行圖片縮放。
NFT 錯誤
雖然 Alchemy 的 NFT API 能回傳大部分的 NFT metadata,但在以下情況中無法成功滿足請求:
- Token does not exist - Alchemy 使用 token ID 呼叫 tokenURI/uri 方法,但智能合約無法識別該 ID。這表示該 token 尚未鑄造,或根本不存在。
- Malformed token URI - tokenURI/uri 回傳「格式錯誤」或無效的網站位址,因此無法存取該網站以回傳 metadata。
- Failed to get token URI - 當 token ID 未回傳任何 metadata 時的通用錯誤訊息,即使該 token 確實存在。
- Token URI returns a non-200 response code - 當網站因故障或對 Alchemy 伺服器進行速率限制而回傳「502 Bad Gateway」訊息時,會顯示此錯誤。
- Throttled token URI - 此錯誤回傳「429 Too Many Requests」訊息,表示 Alchemy 請求 metadata 的頻率過高,因而遭到速率限制。
- Contract does not have any code - 當某個 token 地址在區塊鏈網路上沒有對應的智能合約程式碼時,會顯示此錯誤。
- Contract returned a broken token URI, do not retry - 當 tokenURI 沒有回應,可能是因為該網站 URL 不存在或缺乏 DNS 設定時,會顯示此錯誤訊息。
Optimism NFT API 支援的方法
Alchemy 的 Optimism NFT API 提供以下幾類NFT API 端點,協助開發者建構 Optimism NFT 應用程式:
Optimism NFT 所有權與 token gating
- getNFTs - 取得某錢包所擁有的 Optimism NFT
- getOwnersForToken - 取得某 token 在 Optimism 上的持有者
- getOwnersForCollection - 取得某 collection 在 Optimism 上的 NFT 持有者
- isHolderOfCollection - 檢查某 Optimism 錢包是否持有某 NFT
- getNFTsForCollection - 取得某 Optimism NFT collection 的 NFT
Optimism NFT metadata
- getNFTMetadata - 取得 Optimism NFT metadata
- getContractMetadata - 取得 Optimism NFT 智能合約 metadata
Optimism NFT API 範例
Alchemy 的 getNFTs 是一個功能多樣的 NFT API 端點,讓開發者能在多種 NFT 協議中使用。以下範例說明 getNFTs API 端點如何運作。
1. Optimism token gating
開發者在建構 NFT 市集時,會設計一個使用者個人頁面來顯示使用者擁有的 NFT。開發者可使用 Optimism NFT token gating 工具 isHolderOfCollection,從特定錢包地址擷取 NFT,判斷該錢包是否持有指定 collection 中的某個 token。
2. Optimism NFT 分析工具
如稀有度排名網站或匯總平台等 NFT 分析工具,需要 NFT metadata 來建立清單並取得交易資料。開發者可使用 Optimism NFT metadata API getNFTMetadata,擷取 NFT 分析工具所使用的鏈上 metadata。
3. Optimism NFT 空投清單
某個 NFT 專案僱用開發者,將新的 NFT 空投給特定 NFT 的持有者。若沒有 API,開發者就得解析整條區塊鏈才能追蹤 NFT 資產的所有權。然而,透過 Alchemy 的 Optimism NFT collection API getOwnersForToken,開發者可以立即識別持有者並建立空投清單。當使用者想將特定 NFT 設為個人頭像時,開發者也可使用此 API 來驗證資產所有權。
如何開始使用 Optimism NFT API 進行開發
與其自行架設 Optimism 節點,不如直接在 Alchemy 上建立私人 Optimism 節點,接著只要三個簡單步驟,就能開始使用 Alchemy 的 Optimism NFT API 進行開發:
- 選擇套件管理工具 - 使用如 npm 或 yarn 等套件管理工具
- 設定 repo - 開啟終端機,從命令列為快速上手腳本建立新的 repository
- 選擇函式庫 - 使用 Fetch、Axios 或其他標準 HTTP 函式庫與 Optimism NFT API 互動
開發者可直接使用 Fetch 或 Axios 呼叫 Optimism NFT API。目前的端點範例與支援的方法請參閱 Alchemy 的文件。
使用 Alchemy 打造最佳的 Optimism NFT API 體驗
根據 Bloomberg 的資料,在 2021 年的牛市期間,NFT 市場規模一度超過 400 億美元。儘管 NFT 產業目前正處於艱難的熊市階段,NFT 技術對未來成長仍具有龐大潛力。
因此,開發者將需要合適的 NFT 開發工具,才能在可擴展的 Optimism 網路上打造自己的 NFT 應用程式。在 Alchemy 上建立免費帳號,開始使用 Alchemy 的免費 NFT API 建構 NFT 應用程式。
相關總覽

打造區塊鏈魔法
Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。


