ERC-1155: 什麼是 ERC-1155?ERC-1155 是 Ethereum 的代幣標準,允許單一智能合約管理多種不同代幣類型。單一 ERC-1155 合約可包含同質化代幣、非同質化代幣、半同質化代幣,或上述資產的組合。官方ERC-1155 規格定義餘額、轉帳、批次操作、授權、接收方回呼、事件、中繼資料與介面偵測的通用規則。ERC-1155 通常稱為「多代幣標準」。每種代幣類型都以代幣 ID 識別,並可有自己ERC-1155: 什麼是 ERC-1155?ERC-1155 是 Ethereum 的代幣標準,允許單一智能合約管理多種不同代幣類型。單一 ERC-1155 合約可包含同質化代幣、非同質化代幣、半同質化代幣,或上述資產的組合。官方ERC-1155 規格定義餘額、轉帳、批次操作、授權、接收方回呼、事件、中繼資料與介面偵測的通用規則。ERC-1155 通常稱為「多代幣標準」。每種代幣類型都以代幣 ID 識別,並可有自己
什麼是 ERC-1155?
ERC-1155 是 Ethereum 的代幣標準,允許單一智能合約管理多種不同代幣類型。單一 ERC-1155 合約可包含同質化代幣、非同質化代幣、半同質化代幣,或上述資產的組合。官方ERC-1155 規格定義餘額、轉帳、批次操作、授權、接收方回呼、事件、中繼資料與介面偵測的通用規則。
ERC-1155 通常稱為「多代幣標準」。每種代幣類型都以代幣 ID 識別,並可有自己的供應量、中繼資料、用途、稀缺性與經濟特性。這項設計減少大型加密應用程式中為每項資產分別部署智能合約的需求。ERC-1155 特別適用於區塊鏈遊戲、數位收藏品、會員資格、活動門票、獎勵系統、代幣化庫存,以及管理多種相關資產的應用程式。遵循此標準可提升互通性,但不保證代幣真實、有價值、稀有或安全。ERC-1155 為何誕生?
較早期的 Ethereum 代幣標準通常著重於單一同質化資產,或單一獨特資產系列。因此,包含數百種貨幣、遊戲道具、門票與收藏品的專案,可能需要部署許多獨立合約。每增加一個合約,就會增加部署成本、重複程式碼、管理工作與整合複雜度。ERC-1155 可讓這些代幣類型共用同一合約與轉帳系統。它也支援批次操作,可在一次呼叫中查詢或轉移多個代幣 ID。批次處理可減少重複交易開銷,並簡化涉及多種資產的操作。此標準是為大型代幣系統而設計,但不限於區塊鏈遊戲。ERC-1155 的運作方式
ERC-1155 合約會為每個帳戶地址與代幣 ID 的組合記錄個別餘額。例如,一個錢包可持有 500 個代幣 ID 1、3 個代幣 ID 2,以及 1 個代幣 ID 3。代幣 ID 1 可以代表同質化貨幣,代幣 ID 2 可以代表限量物品,代幣 ID 3 則可以代表獨特 NFT。三種餘額都可以存在於同一智能合約中。轉移代幣時,合約會扣除傳送方所選代幣 ID 的餘額,並增加接收方對應的餘額。合約會發出標準化事件,讓錢包與區塊鏈索引器能追蹤變動。接收方是智能合約時,ERC-1155 會執行接收方回呼,確認該合約接受代幣。ERC-1155 代幣 ID 是什麼?
代幣 ID 是無號整數,用來識別 ERC-1155 合約中的一種代幣類型。另一個合約中可以出現相同的代幣 ID,但不代表相同的加密資產。因此,ERC-1155 資產須以區塊鏈網路、合約地址與代幣 ID 一併識別。某個合約中的代幣 ID 100 可能代表遊戲資源,另一個合約中的代幣 ID 100 則可能代表活動門票。標準未要求代幣 ID 必須從 0 開始或以簡單順序遞增。開發者可依應用程式設計指派 ID。使用者應確認完整合約地址與代幣 ID,而不應只依據顯示名稱或圖片判斷。ERC-1155 同質化代幣
若某個代幣 ID 存在許多可互換單位,該 ID 就可以作為同質化資產。例如,遊戲可發行 100 萬個代幣 ID 10,作為遊戲內貨幣。每位持有者都會有與代幣 ID 10 對應的數量餘額。同一 ID 的單位通常具有合約定義的相同特性。ERC-1155 核心介面不會為每個代幣 ID 定義獨立的代號、小數位數或名稱。如有需要,專案須透過中繼資料或自訂函式提供這些顯示資訊。ERC-1155 非同質化代幣
若代幣 ID 的供應量限制為 1 個單位,該 ID 就可以作為 NFT。持有該單位的地址,實際上就是該 ID 所代表獨特資產的持有者。同一合約中的另一個 ID 可以代表不同的獨特物品。與 ERC-721 不同,ERC-1155 不會自動要求每個代幣 ID 的供應量都為 1。若代幣 ID 被描述為非同質化,合約的鑄造邏輯必須強制確保其唯一性。使用者在相信 ERC-1155 物品具有唯一性前,應先確認實際供應量控制。ERC-1155 半同質化代幣
半同質化代幣在生命週期的某個階段具有多個可互換單位,但之後可能取得不同意義或用途。活動門票是常見例子:活動開始前,同一區域的多張門票可能可以互換。活動結束後,每張使用過的門票可能成為與特定體驗相關的收藏品。限量版遊戲道具也可以採用半同質化模型。ERC-1155 不會正式將代幣 ID 標記為同質化、非同質化或半同質化。分類取決於供應量、中繼資料、轉帳規則與應用程式行為。ERC-1155 核心函式
ERC-1155 核心介面包含查詢餘額、轉移代幣與管理操作者權限的函式。主要函式為
balanceOf
、balanceOfBatch
、safeTransferFrom
、safeBatchTransferFrom
、setApprovalForAll
與 isApprovedForAll
。ERC-1155 也要求支援 ERC-165 介面偵測。核心介面未定義公開鑄造、公開銷毀、版稅、總供應量、代幣 decimals 或個別代幣授權。合約可透過選用擴充功能或自訂邏輯加入這些功能。balanceOf 函式
balanceOf
函式會傳回某個帳戶持有指定代幣 ID 的數量。此函式需要帳戶地址與代幣 ID。這與 ERC-20 不同,因為一個 ERC-20 合約通常只代表一種代幣。這也與 ERC-721 不同,因為 ERC-721 餘額會計算某地址在整個系列中持有多少個獨特 NFT。單一 ID 的 ERC-1155 餘額可以是 0、1 或更大的整數。標準要求查詢零地址的餘額時必須失敗。balanceOfBatch 函式
balanceOfBatch
函式可在一次呼叫中取得多個餘額。呼叫者須提供帳戶地址陣列與代幣 ID 陣列。每個帳戶都會與陣列中相同位置的代幣 ID 配對。兩個陣列的長度必須相同。此函式可查詢一個帳戶持有的多個代幣 ID,或多個帳戶持有的一個代幣 ID。這可減少錢包、遊戲與投資組合應用程式所需的個別區塊鏈呼叫次數。safeTransferFrom 函式
safeTransferFrom
函式會將某個代幣 ID 的指定數量,從一個地址轉移到另一個地址。呼叫者必須是代幣持有者,或經持有者授權的操作者。傳送方必須持有足夠的所選 ID 單位。接收方不能是零地址。此函式也接受 bytes 欄位,可包含應用程式專用資料。單筆轉帳成功後會發出
TransferSingle
事件。若接收方是智能合約,接收方必須通過 ERC-1155 要求的接受檢查。safeBatchTransferFrom 函式
safeBatchTransferFrom
函式可在一筆交易中轉移多個代幣 ID 與數量。呼叫者須提供代幣 ID 陣列與相對應的轉帳數量陣列。每個數量都適用於陣列相同位置的 ID。兩個陣列的長度必須相同。傳送方必須持有批次中每種代幣的足夠單位。若任何必要轉帳失敗,整筆交易通常會回退。操作成功後會發出一個
TransferBatch
事件。批次轉帳的優點
需要一併移動多種相關資產時,批次轉帳可降低交易成本。玩家可以在一筆交易中轉移貨幣、材料、裝備與收藏品。獎勵合約也可以在一次操作中向同一接收方發放多種代幣。批次處理也能簡化原子交換:要麼整組資產全部移動,要麼整筆交易失敗。Gas 節省量取決於 ID 數量、儲存變動、接收方邏輯與網路狀況。批次過大仍可能超出交易 Gas 上限或產生阻斷服務風險。應用程式應為使用者控制的批次大小設定實際可行的上限。ERC-1155 操作者授權
ERC-1155 採用涵蓋整個系列的操作者授權。setApprovalForAll
函式可讓代幣持有者授權或撤銷操作者。經授權的操作者可以轉移該持有者在此合約中持有的所有 ERC-1155 代幣 ID。此權限也可能涵蓋持有者之後從同一合約收到的代幣。核心標準不允許使用者只授權單一 ID 或有限數量。這種廣泛權限可提升易用性,但也帶來重大安全風險。授權仍有效時,惡意操作者可能移走所有受影響代幣。isApprovedForAll 函式
isApprovedForAll
函式會回報某操作者是否有權管理持有者的 ERC-1155 餘額。傳回值為
true
或 false
。授權僅適用於授予權限的合約。授權不會自動涵蓋其他 ERC-1155 合約中的資產,或使用其他標準的代幣。使用者應定期檢查操作者授權,並撤銷不再需要的權限。將錢包與網站中斷連線,不會移除鏈上儲存的授權。細分授權擴充功能
若持有者只想授權單一代幣 ID 或有限數量,廣泛的操作者模型可能不適用。提案中的ERC-5216 allowance 擴充功能定義了依代幣 ID 與數量細分的授權。
此擴充功能並非 ERC-1155 核心標準的一部分,不應假設每個合約都支援。錢包應清楚說明交易授予的是全系列權限,還是有限權限。ERC-1155 接收方回呼
智能合約透過標準安全轉帳接收 ERC-1155 代幣時,必須實作正確的接收方回呼。單筆轉帳回呼為
onERC1155Received
。批次轉帳回呼為
onERC1155BatchReceived
。接收方可檢查操作者、前一位持有者、代幣 ID、數量與附加資料。接收方傳回必要值即可接受代幣。若傳回錯誤值或回退,整筆代幣轉帳就會回退。此設計可降低代幣誤轉至無法處理 ERC-1155 資產的智能合約之風險。接收方介面 ID 與回傳值
ERC-1155 接收方介面 ID 為
0x4e2312e0
。onERC1155Received
的預期回傳值為 0xf23a6e61
。onERC1155BatchReceived
的預期回傳值為 0xbc197c81
。接收合約應驗證是哪個 ERC-1155 合約觸發回呼。若未檢查呼叫者就接受回呼資料,惡意合約可能建立虛假的存款紀錄。通過接收方檢查,不代表接收合約未來一定提供安全的提領流程。接收方回呼與重入風險
ERC-1155 接收方回呼會在原始交易完成前執行外部合約程式碼。惡意接收方可能在原始轉帳進行期間呼叫其他函式。這種行為可能形成重入路徑。ERC-1155 規格要求在接收方回呼前完成餘額變更並發出轉帳事件。與代幣互動的應用程式仍須保護自身的帳務與授權邏輯。開發者應使用嘗試同函式及跨函式重入的惡意接收合約,測試兩種回呼。目前的ERC-1155 實作文件也提醒,轉帳至合約可能帶來重入風險。
ERC-1155 事件
核心標準定義了
TransferSingle
、TransferBatch
、ApprovalForAll
與 URI
事件。這些事件日誌可讓錢包、區塊鏈瀏覽器與索引器追蹤代幣活動。ERC-1155 的設計可透過正確發出的轉帳事件重建供應量與餘額歷史。解讀事件時,必須一併確認發出事件的合約地址。惡意合約即使發出熟悉的事件名稱,也不代表它屬於真實專案。TransferSingle 事件
TransferSingle
事件會記錄操作者、傳送方、接收方、代幣 ID 與數量。一般轉帳的傳送方與接收方地址皆非零地址。鑄造時,傳送方為零地址。銷毀時,接收方為零地址。標準也要求零數量轉帳發出適當事件。TransferBatch 事件
TransferBatch
事件會記錄單次操作轉移的多個代幣 ID 與數量。ID 與數值會依對應陣列位置儲存。事件也會指出操作者、傳送方與接收方。批次鑄造時,傳送方為零地址。批次銷毀時,接收方為零地址。索引器必須處理事件陣列中的每個元素,才能正確計算餘額與供應量。ApprovalForAll 事件
ApprovalForAll
事件會記錄持有者是否啟用或停用某個操作者。事件包含持有者、操作者與授權狀態。事件本身不會轉移任何代幣。它會改變操作者是否能發起持有者未來的轉帳。撤銷授權不會取消授權有效期間內已完成的轉帳。ERC-165 介面偵測
ERC-1155 要求支援 ERC-165 介面偵測。ERC-1155 核心介面 ID 為
0xd9b67a26
。相容合約收到以此識別碼呼叫的
supportsInterface
時,應傳回 true
。ERC-165 標準提供合約公布所支援介面的通用方法。
介面偵測可協助應用程式避免呼叫不支援的函式。僅憑肯定結果,無法證明每個函式都有正確或安全地實作。ERC-1155 中繼資料
ERC-1155 包含選用的中繼資料 URI 擴充功能。此擴充功能新增
uri
函式,可傳回代幣 ID 的中繼資料位置。其介面 ID 為
0x0e89341c
。URI 通常指向 JSON 文件,其中包含名稱、描述、圖片、屬性與其他代幣資訊。核心標準不要求每個代幣 ID 都有獨立的鏈上
name
、symbol
或 decimals
函式。專案可透過中繼資料或自訂介面加入這些欄位。{id} 中繼資料佔位字串
ERC-1155 中繼資料 URI 可以包含佔位字串
{id}
。應用程式會將其替換為所查詢代幣 ID 的小寫十六進位形式。格式化後的值必須包含 64 個十六進位字元,包括前置零。不得包含
0x
前綴。此方法讓單一基礎 URI 能描述多個代幣 ID 的中繼資料位置。若應用程式替換方式錯誤,可能會取得其他資產的中繼資料。中繼資料儲存風險
ERC-1155 中繼資料可能儲存在網頁伺服器、內容定址網路,或直接儲存在鏈上。託管於伺服器的中繼資料可能變更或消失。內容定址儲存可提高完整性,但內容仍須持續提供。鏈上中繼資料可減少對外部託管的依賴,但儲存與更新成本可能更高。可變動 URI 可能讓管理員在使用者取得代幣後變更名稱、圖片、描述與屬性。使用者應檢查由誰控制中繼資料,以及是否能驗證任何永久保存的保證。鑄造 ERC-1155 代幣
鑄造會建立 ERC-1155 代幣 ID 的新單位。核心標準未定義公開鑄造函式,也未決定誰可以建立代幣。實作可以限制只有管理員、智能合約、治理程序或其他獲授權角色能鑄造。單筆鑄造會從零地址發出
TransferSingle
。批次鑄造會從零地址發出
TransferBatch
。鑄造至智能合約時,通常會觸發適當的接收方回呼。使用者在相信供應量或稀缺性宣稱前,應先檢查鑄造權限。銷毀 ERC-1155 代幣
銷毀會依合約規則將代幣單位移出流通。核心標準不要求提供公開銷毀函式。合約可允許持有者、經授權的操作者、管理員或協議邏輯銷毀代幣。銷毀時會發出接收方為零地址的轉帳事件。銷毀某個 ID 的所有現有單位,不一定能阻止該 ID 再次鑄造。結果取決於實作中的鑄造與供應量控制。總供應量與列舉
ERC-1155 核心介面不包含
totalSupply
函式。若合約正確遵守事件要求,可透過鑄造與銷毀事件重建供應量。實作可加入選用的供應量追蹤擴充功能,回報每個 ID 的總供應量。目前的ERC-1155 合約函式庫包含供應量追蹤、銷毀、暫停與 URI 儲存擴充功能。
ERC-1155 也未定義列出所有現存代幣 ID 或持有者的核心函式。應用程式通常會透過鏈下事件索引建立這些清單。ERC-1155 版稅
創作者版稅並非 ERC-1155 核心標準的一部分。選用的ERC-2981 版稅標準可讓合約回報版稅接收方與建議金額。
版稅金額會依提供的銷售價格計算。ERC-2981 會傳達版稅資訊,但不會在每次轉帳時自動強制付款。轉帳不一定涉及銷售,因此代幣合約無法將每次移動都視為版稅事件。使用者應確認管理員是否能變更版稅設定。ERC-1155 標準化錯誤
原始 ERC-1155 規格未定義現代 Solidity 自訂錯誤。已定稿的ERC-6093 錯誤標準為 ERC-1155 合約定義常見錯誤名稱。
這些錯誤涵蓋餘額不足、傳送方無效、接收方無效、缺少操作者授權、操作者無效與陣列長度不匹配。標準化錯誤有助於錢包與開發者以更一致的方式說明交易失敗原因。現有 ERC-1155 合約不一定要採用這些錯誤。ERC-1155 與 ERC-20 的差異
ERC-20 通常由每個合約代表一種同質化代幣。ERC-1155 則可在單一合約中代表多種代幣類型。ERC-20 使用數值型支出方額度;ERC-1155 核心則使用全系列操作者授權。ERC-1155 包含批次轉帳,以及對智能合約接收方強制執行的接收方回呼。ERC-20 核心標準不包含這些功能。若專案只需要一種同質化加密資產,ERC-20 仍可能較簡單。ERC-1155 與 ERC-721 的差異
ERC-721 是為個別持有的非同質化代幣 ID 設計。有效的 ERC-721 代幣 ID 只有一位持有者。ERC-1155 則為每個帳戶與代幣 ID 組合記錄數量餘額。因此,同一合約中的一個 ID 可有許多可互換單位,另一個 ID 則可只有 1 個單位。ERC-1155 支援標準化批次轉帳;ERC-721 通常一次轉移一個 NFT。若每項資產皆獨一無二,ERC-721 可能提供較簡單的模型。ERC-1155 的常見使用情境
區塊鏈遊戲可透過單一 ERC-1155 合約管理貨幣、材料、武器、角色與土地。活動系統可在不同代幣 ID 下發行不同類別與數量的票券。會員專案可建立多種存取等級或福利方案。數位藝術家可發行限量版本,每件作品包含多個可互換副本。金融應用程式可使用代幣 ID 識別到期日、請求權、倉位類別或風險群組。獎勵系統可透過一筆批次交易發放多種類型的點數或成就道具。此標準不會自行驗證代幣是否代表具有法律效力的權利或實體資產。ERC-1155 授權風險
操作者授權釣魚是 ERC-1155 持有者面臨的重大風險。惡意網站可能要求呼叫
setApprovalForAll
,卻將交易描述為驗證、帳戶連線或領取獎勵。授權後,操作者可能轉移使用者在該合約持有的所有 ERC-1155 代幣。此權限會一直有效,直到持有者撤銷。簽署前,使用者應確認網路、代幣合約、操作者地址與權限類型。取消操作者授權不需要錢包助記詞或私鑰。批次操作風險
批次操作會使用多個陣列,各位置必須正確對應。代幣 ID 與數量不匹配時,交易必須失敗。索引錯誤可能導致轉移錯誤數量的資產。使用者提供的陣列過大,可能消耗過多 Gas 或使函式無法使用。接收合約應在接受批次前驗證每個 ID 與數量。開發者應測試空陣列、重複 ID、長度不匹配、大型批次與不支援的資產 ID。供應量與真偽風險
某個代幣 ID 目前可能只有 1 個單位,因此看起來獨一無二。但獲授權的帳戶日後仍可能鑄造更多單位。其他合約可以複製相同的代幣名稱、ID、圖片或中繼資料。合約地址與網路是 ERC-1155 代幣識別的重要部分。使用者應檢查鑄造角色、供應量上限、升級權限與中繼資料控制權。符合 ERC-1155 標準並不能證明真偽、稀缺性、抵押支持或投資價值。可升級合約風險
ERC-1155 合約可能透過可升級代理合約運作。獲授權的管理員可能可以變更鑄造、轉帳、授權、中繼資料、費用或其他行為。升級可以修補漏洞,也可能導入有害邏輯。升級金鑰遭到入侵,可能使合約管理的所有代幣 ID 面臨風險。使用者應檢查升級權限、時間延遲、多重簽章控制與緊急權限。支援正確介面並不能證明合約已去中心化或不可變更。開發者如何實作 ERC-1155
除非有必要採用自訂餘額邏輯,開發者應使用持續維護且經過審查的實作。目前的ERC-1155 開發指南說明多代幣餘額、批次操作、接收方檢查與常見擴充功能。
鑄造與管理函式應採用明確的存取控制。供應量限制應由合約程式碼強制執行,而非只寫在專案文件中。實作必須發出所有必要的轉帳與授權事件。測試應涵蓋單筆轉帳、批次轉帳、鑄造、銷毀、操作者權限、無效接收方、陣列不匹配與惡意回呼。開發者也應確認每個支援的擴充功能都使用正確的 ERC-165 介面識別碼。使用者如何評估 ERC-1155 代幣
第一步是確認區塊鏈網路、合約地址與代幣 ID。第二步是確認該代幣預計屬於同質化、非同質化或半同質化代幣。第三步是檢查目前供應量、鑄造權限與任何供應量上限。第四步是檢查錢包目前有效的操作者授權。第五步是確認中繼資料的儲存方式,以及是否可以變更。第六步是確認管理員、暫停、凍結、版稅與升級權限。第七步是檢視原始碼、稽核與事故紀錄,但不要將其視為保證。第八步是了解代幣實際提供的用途、兌換權或法律請求權。第九步是確認接收合約是否提供可靠的提領流程。第十步是在轉移有價值的資產前,先以少量資產測試不熟悉的合約。ERC-1155 批次轉帳範例
假設 Alice 持有 100 個代幣 ID 1、5 個代幣 ID 2,以及 1 個代幣 ID 3。她想轉給 Bob 10 個 ID 1、2 個 ID 2,以及 1 個 ID 3。她的錢包會呼叫
safeBatchTransferFrom
,並傳入包含三個 ID 及其對應數量的陣列。合約會驗證 Alice 的餘額,並確認呼叫者已獲授權。合約會扣除 Alice 的餘額,並增加 Bob 在每個 ID 的餘額。合約會發出一個
TransferBatch
事件,記錄轉移內容。如果 Bob 是智能合約,代幣合約會呼叫
onERC1155BatchReceived
。若接收方傳回正確值,交易就會完成。若任何餘額、授權、陣列或接收方檢查失敗,整筆交易就會回退。常見 ERC-1155 錯誤
常見錯誤之一,是以為每個 ERC-1155 代幣 ID 都代表 NFT。另一個錯誤,是以為目前只有 1 個單位的 ID 永遠有 1 個的供應量上限。第三個錯誤,是未了解操作者授權涵蓋合約中的所有代幣 ID 就授予權限。第四個錯誤,是以為將錢包中斷連線就能移除鏈上授權。第五個錯誤,是把中繼資料可用性當成代幣已鑄造的證明。第六個錯誤,是假設每個合約都提供總供應量函式。第七個錯誤,是處理批次陣列時未檢查長度與位置是否相符。第八個錯誤,是忽略接收方回呼與重入風險。第九個錯誤,是假設回報的版稅會自動強制執行。第十個錯誤,是把介面相容性當成真偽、稀缺性或安全性的證明。常見問題
ERC-1155 是什麼意思?
ERC-1155 是 Ethereum 的多代幣標準,可在單一合約中管理多種同質化、非同質化與半同質化代幣。ERC-1155 是加密貨幣嗎?
ERC-1155 是技術標準;實作此標準的合約則可以建立不同類型的加密資產。ERC-1155 介面 ID 是什麼?
ERC-1155 核心介面 ID 為
0xd9b67a26
。ERC-1155 接收方介面 ID 是什麼?
接收方介面 ID 為
0x4e2312e0
。ERC-1155 可以建立同質化代幣嗎?
可以。單一代幣 ID 可代表許多可互換單位,並分配給多個帳戶。ERC-1155 可以建立 NFT 嗎?
可以。若合約將某代幣 ID 的供應量限制為 1,該 ID 就能作為 NFT。什麼是半同質化代幣?
這類代幣的單位在某種情境下可以互換,但之後可能取得不同意義、狀態或用途。單一 ERC-1155 合約可以包含多種資產嗎?
可以。單一合約可管理許多具有不同供應量、中繼資料與用途的代幣 ID。balanceOf 會傳回什麼?
它會傳回某個帳戶持有指定代幣 ID 的數量。balanceOfBatch 的作用是什麼?
它可在一次呼叫中傳回多個帳戶與代幣 ID 配對的餘額。safeBatchTransferFrom 是什麼?
它可在一筆交易中轉移多個代幣 ID 與數量,且當接收方是智能合約時會執行接收方檢查。setApprovalForAll 的作用是什麼?
它會授權操作者管理呼叫者在單一 ERC-1155 合約中持有的所有代幣 ID。使用者可以只授權一個代幣 ID 嗎?
ERC-1155 核心授權函式不支援,但選用擴充功能可以提供較有限的權限。ERC-1155 授權會自動到期嗎?
不會。標準操作者授權會持續有效,直到持有者撤銷,或自訂邏輯改變其效果。ERC-1155 是否要求接收方檢查?
是。安全轉帳至智能合約時,必須遵循適當的單筆或批次接收方回呼規則。接收合約可以拒絕 ERC-1155 代幣嗎?
可以。接收合約可回退交易或傳回錯誤的接受值,使轉帳失敗。ERC-1155 支援中繼資料嗎?
支援。它包含選用的中繼資料 URI 擴充功能,介面 ID 為
0x0e89341c
。每個 ERC-1155 代幣都有名稱與代號嗎?
沒有。核心標準不要求每個代幣 ID 都有獨立的鏈上名稱或代號函式。ERC-1155 是否定義 decimals?
沒有。如有需要,面額資訊須來自中繼資料或專案專用邏輯。ERC-1155 是否包含 totalSupply?
沒有。查詢總供應量需要索引事件,或使用選用的供應量追蹤擴充功能。ERC-1155 中繼資料可以變更嗎?
可以,只要合約或外部儲存系統允許更新,中繼資料就可能變更。ERC-1155 會強制執行版稅嗎?
不會。版稅資訊需要依賴另一項標準,核心轉帳函式不會自動強制執行版稅。ERC-1155 批次轉帳可以節省 Gas 嗎?
可以。將多筆代幣移動合併到一筆交易,可能降低重複交易開銷。ERC-1155 回呼可能造成重入嗎?
可能。接收方回呼會執行外部程式碼,並能在原始交易完成前呼叫其他合約函式。符合 ERC-1155 標準是否代表代幣安全?
不代表。相容合約仍可能有不安全程式碼、權限過大、中繼資料可變、供應量控制不足或詐欺宣稱等問題。結論
ERC-1155 是 Ethereum 用來透過單一智能合約管理多種代幣的標準。每個代幣 ID 都可以代表同質化資產、獨特 NFT、半同質化物品,或其他依數量計算餘額的加密資產。此標準定義餘額查詢、單筆與批次轉帳、全系列操作者授權、接收方回呼、事件、中繼資料規則與介面偵測。需要一併查詢或轉移多種資產時,批次操作可以降低交易開銷。強制接收方回呼可減少資產誤轉至不相容合約的情況,但也會帶來外部呼叫與重入風險。核心標準不定義公開鑄造、銷毀、總供應量、decimals、版稅、永久中繼資料或個別代幣額度。這些特性取決於選用擴充功能與個別合約的實作方式。使用者應驗證網路、合約地址、代幣 ID、供應量控制、操作者授權、中繼資料系統與管理員權限。開發者應採用持續維護的實作、發出所有必要事件、保護接收方回呼、限制批次複雜度,並測試所有授權路徑。ERC-1155 提供靈活的多代幣基礎架構,但技術相容性並不保證真偽、稀缺性、金融價值或智能合約安全。您可能也喜歡
WhatsMiner M30S++
什麼是 WhatsMiner M30S++? WhatsMiner M30S++ 是 MicroBT 推出的 ASIC Bitcoin 礦機,專為 SHA-256 工作量證明挖礦設計。 它屬於 WhatsMiner M30 系列,主要透過礦池挖掘 Bitcoin。 ASIC 礦機是專門用來高效率執行單一類型運算的設備。 對 WhatsMiner M30S++ 而言,這項運算就是 SHA-256 雜
2026/10/15 11:08
Web3 網域
什麼是 Web3 網域? Web3 網域是以區塊鏈為基礎的名稱,可取代冗長的錢包地址、指向去中心化內容、代表鏈上身分,並將使用者連接至 Web3 應用程式。 使用者不必將加密貨幣傳送至冗長的十六進位地址,而可傳送至易讀的名稱,例如區塊鏈使用者名稱或網域。 Web3 網域也能儲存錢包地址、網站內容、個人資料、文字紀錄、頭像資訊及其他與身分相關的資訊。 官方 ENS 文件將 ENS 描述為去中心化自主
2026/10/15 11:08
Web3 專案
什麼是 Web3 專案? Web3 專案是以區塊鏈為基礎的應用程式、協議、工具、網路及社群,運用去中心化技術讓使用者對資產、身分、資料、參與及數位價值擁有更多控制權。 Web3 專案可以是第一層區塊鏈(Layer 1)、第二層網路(Layer 2)、DeFi 協議、錢包、NFT 平台、DAO、區塊鏈遊戲、去中心化身分系統、預言機網路、跨鏈橋、穩定幣應用程式、DePIN 網路、分析工具、開發者框架或
2026/10/15 11:06
熱門
目前熱門備受市場關注的加密貨幣
最高成交量
按交易量計算交易量最大的加密貨幣

