跳至內容
0%

關於 Alchemy 的 Optimism NFT API,你需要知道的一切

作者 Mrig

發布於 2022年10月20日閱讀時間 3 分鐘

NFT 收藏正在 Optimism 上快速成長,越來越多開發者在該網路上建構新的 NFT 應用程式。這些開發者需要 NFT API 來查詢網路並取得 NFT metadata,以滿足使用者的資料請求。若缺乏合適的 NFT API,索引與查詢 NFT metadata 對個別開發者來說會是一項耗時且耗費資源的工作。

了解如何使用 Alchemy 的 Optimism NFT API 開始建構 NFT 工具、市場、應用程式等。

Optimism 的 NFT 生態系

Optimism 是一個 L2(layer 2)Ethereum 擴容方案,運作於樂觀 rollup 基礎架構之上。樂觀 rollup 透過將交易移到鏈下處理來減輕 Ethereum 的負擔,藉此提供更高的交易吞吐量並降低 gas 費用。樂觀 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 能處理鏈上或鏈下的 NFT,格式包含 JSON、SVG、UTF-8,以及像 Pinata 這類 IPFS 閘道,還有經 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:

  1. 違反 ERC-721 與 ERC-1155 代幣標準
  2. 在代幣轉移過程中違反代幣標準
  3. 將代幣鑄造至如 vitalik.eth 這類蜜罐地址
  4. 提供關於代幣總供應量的虛假資料

圖片縮放

NFT 需要不同的圖片尺寸,以適應縮圖、智慧型手機、桌面電腦及平板裝置的視窗大小。開發者可以透過在 URL 中加入任意高度與寬度像素組合來調整比例,藉此調整由 Alchemy 託管的 NFT 圖片尺寸。如此一來,Alchemy 讓 NFT 開發者更容易進行圖片縮放。

NFT 錯誤

雖然 Alchemy 的 NFT API 能回傳大部分的 NFT metadata,但在以下情況下無法完成請求:

  • Token does not exist - Alchemy 使用 token ID 呼叫 tokenURI/uri 方法,但智能合約無法識別該 ID。這表示該代幣尚未鑄造,或根本不存在。
  • Malformed token URI - tokenURI/uri 回傳「格式錯誤」或無效的網站,因此無法存取該網站以回傳 metadata。
  • Failed to get token URI - 當 token ID 未回傳任何 metadata 時顯示的通用錯誤訊息,即使該代幣確實存在。
  • Token URI returns a non-200 response code - 若網站當機或對 Alchemy 伺服器進行速率限制,導致 URI 回傳「502 Bad Gateway」訊息時,會顯示此錯誤。
  • Throttled token URI - 此錯誤會回傳「429 Too Many Requests」訊息,表示 Alchemy 請求 metadata 過於頻繁,因而遭到速率限制。
  • Contract does not have any code - 當某個代幣地址在區塊鏈網路上沒有對應的智能合約程式碼時,會顯示此錯誤。
  • 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 - 取得某個代幣在 Optimism 上的持有者
  • getOwnersForCollection - 取得某個收藏系列在 Optimism 上的 NFT 持有者
  • isHolderOfCollection - 檢查某個 Optimism 錢包是否持有某個 NFT
  • getNFTsForCollection - 取得某個 Optimism NFT 收藏系列的 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。

2. Optimism NFT 分析工具

如稀有度排名網站或聚合器等 NFT 分析工具,需要 NFT metadata 才能建立清單並取得交易資料。開發者可以使用 Optimism NFT metadata API getNFTMetadata,來擷取 NFT 分析工具所需的鏈上 metadata。

3. Optimism NFT 空投名單

某個 NFT 專案聘請開發者,向特定 NFT 的持有者空投新的 NFT。若沒有 API,開發者就必須解析整條區塊鏈才能追蹤 NFT 資產的所有權。然而,透過 Alchemy 的 Optimism NFT 收藏系列 API getOwnersForToken,開發者能夠即時識別持有者並建立空投名單。開發者也可以使用此 API 來驗證資產所有權,例如當使用者想將特定 NFT 設為個人頭像時。

如何開始使用 Optimism NFT API 進行開發

與其自行架設 Optimism 節點,在 Alchemy 上建立私有 Optimism 節點更為簡便,接著只需三個簡單步驟即可開始使用 Alchemy 的 Optimism NFT API 進行開發:

  1. 選擇套件管理工具 - 使用 npmyarn 等套件管理工具
  2. 設定 repo - 開啟終端機,從命令列建立新的 repository 以放置快速入門腳本
  3. 選擇函式庫 - 安裝 Alchemy SDK 以與 Optimism NFT API 互動

雖然開發者也可以使用 Fetch 和 Axios,但開始使用 Optimism NFT API 最快的方式是透過 Alchemy 的 SDK,因為它提供更完善的功能,包括 WebSocket 支援、重試機制,以及其他多項優勢。

使用 Alchemy 打造最佳的 Optimism NFT API

根據彭博社的資料,在 2021 年的牛市期間,NFT 市場規模一度超過 400 億美元。儘管 NFT 產業目前正經歷嚴峻的熊市階段,NFT 技術仍蘊含巨大的未來成長潛力。

因此,建構者將需要合適的 NFT 開發工具,才能在具備高擴展性的 Optimism 網路上打造 NFT 應用程式。在 Alchemy 上建立免費帳戶,開始使用 Alchemy 免費的 NFT API 建構 NFT 應用程式。

Background gradient

打造區塊鏈魔法

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