什麼是 ERC-1155 多代幣標準?
ERC-1155 是 Ethereum 的代幣標準,允許單一智能合約同時管理多種代幣。單一 ERC-1155 合約可代表同質化代幣、非同質化代幣、半同質化代幣,或上述資產類型的組合。官方ERC-1155 規格定義了標準化的餘額查詢、單筆轉帳、批次轉帳、操作者授權、接收方回呼、事件與選用中繼資料。
ERC-1155 被歸類為已定稿的 Ethereum Request for Comments 標準。ERC-1155 常被稱為「多代幣標準」,因為同一合約中的每個代幣 ID 都可以代表不同的加密資產。每個代幣 ID 都可以有自己的供應量、餘額、中繼資料、稀有度、用途與經濟特性。ERC-1155 的設計目的是降低部署及操作大量區塊鏈資產的成本與複雜度。ERC-1155 為何誕生?
較早期的代幣模型通常需要為不同的同質化資產或 NFT 系列部署各自的合約。因此,包含數百種貨幣、資源、武器、角色與活動道具的區塊鏈遊戲,可能需要部署許多合約。重複部署合約會增加位元組碼、管理、整合工作與交易成本。ERC-1155 將多種代幣類型納入同一合約,並為其採用共用的轉帳與授權系統。它也支援標準化批次操作,可在一筆交易中轉移多個代幣 ID。因此,這項標準適用於遊戲、數位收藏品、會員系統、代幣化庫存、金融倉位、獎勵計畫,以及其他需要管理多種資產類別的加密應用程式。ERC-1155 不限於遊戲;凡是合約需要有效率地管理多種代幣類型,都能使用這項標準。ERC-1155 的運作方式
ERC-1155 合約會為每個帳戶地址與代幣 ID 的組合維護個別餘額。同一合約中,一個地址可以持有 10 個代幣 ID 1、1 個代幣 ID 2,以及 0 個代幣 ID 3。每個代幣 ID 都可以作為同質化資產、獨一無二的 NFT,或供應量有限且可互換的資產。代幣轉移時,合約會扣除傳送方各相關 ID 的餘額,並增加接收方對應的餘額。合約會發出標準化事件,讓錢包與索引器能重建代幣的建立、轉帳與銷毀紀錄。如果接收方是智能合約,ERC-1155 合約會呼叫接收函式,確認接收方接受這些資產。Ethereum 節點會執行這些規則,並依據已部署的合約程式碼驗證餘額變動。ERC-1155 中的代幣 ID 是什麼?
代幣 ID 是無號整數,用來識別 ERC-1155 合約中的一種代幣類型。另一個合約中可以存在相同的代幣 ID,但不代表它是相同資產。因此,ERC-1155 資產須以區塊鏈網路、合約地址與代幣 ID 一併識別。在某個合約中,代幣 ID 25 可能代表可互換的遊戲資源;在另一個合約中,則可能代表獨特收藏品。標準未要求 ID 必須從 0 開始、依序增加,或編碼特定意義。開發者可依應用程式架構指派 ID。應用程式應查詢可信的合約資料,而不是猜測有哪些代幣 ID。ERC-1155 中的同質化代幣
當同一代幣 ID 存在多個可互換單位時,該 ID 可代表同質化資產。例如,代幣 ID 1 可能代表有 100 萬個相同單位的遊戲貨幣。每位持有者都會有與代幣 ID 1 對應的數量餘額。同一 ID 的單位通常具有合約定義的相同特性。與 ERC-20 不同,ERC-1155 核心介面不會為每個代幣 ID 定義獨立的總供應量、代號、名稱或 decimals 函式。如需供應量或顯示資訊,專案必須透過擴充功能、中繼資料或自訂函式提供。ERC-1155 中的非同質化代幣
若將某個代幣 ID 的供應量限制為 1 個單位,該 ID 就可以代表非同質化資產。持有該單一單位的地址可視為該代幣的持有者。同一合約中的另一個代幣 ID 可以代表不同的獨特物品。例如,代幣 ID 1001 可以代表一把劍,代幣 ID 1002 則代表一塊虛擬土地。核心標準不會強制要求代幣 ID 的最大供應量為 1。若某個 ID 預計作為 NFT 使用,合約的鑄造邏輯必須強制確保其唯一性。半同質化代幣
半同質化代幣起初具有可互換的單位,但之後可能具有不同意義或有限用途。活動門票是常見例子:活動開始前,同一區域的多張門票可能可以互換。使用後,每張門票都可能成為與特定體驗相關的收藏紀錄。限量版或狀態會變化的遊戲道具,也可以採用半同質化模型。ERC-1155 不會正式將 ID 分類為同質化、非同質化或半同質化。分類取決於代幣供應量、中繼資料、轉帳規則與應用程式設計。ERC-1155 核心函式
核心介面包含查詢餘額、轉移代幣與管理操作者授權的函式。必要函式包括
balanceOf 函式
這也與 ERC-721 不同:ERC-721 的
balanceOfBatch 函式
safeTransferFrom 函式
成功轉帳後會發出
safeBatchTransferFrom 函式
批次轉帳成功後會發出一個
批次轉帳的重要性
批次轉帳可在一筆區塊鏈交易中移動多種資產。遊戲使用者可以一次轉移貨幣、材料、盔甲與收藏品。應用程式也可以在一次操作中向同一接收方發放多種獎勵。相較於提交多筆個別交易,批次處理可減少重複的交易開銷並降低總成本。實際節省幅度取決於 ID 數量、合約實作、儲存變動、網路狀況與接收方邏輯。批次過大仍可能消耗過多 Gas,並因區塊 Gas 上限而失敗。應用程式應為使用者可控制的批次大小設定合理上限。ERC-1155 操作者授權
ERC-1155 採用涵蓋整個系列的操作者授權模型。isApprovedForAll 函式
傳回值為
細分授權擴充功能
若使用者只想授權特定代幣 ID 或數量,ERC-1155 廣泛的授權模型可能不適用。其他標準或自訂合約可提供限制更嚴格的權限。ERC-5216 allowance 擴充功能定義了針對特定 ERC-1155 代幣 ID 的授權數量。
此類擴充功能為選用功能,不應假設所有合約都支援。錢包必須清楚區分有限的代幣 ID 授權與標準的全系列授權。ERC-1155 接收方介面
智能合約透過標準安全轉帳接收 ERC-1155 代幣時,必須實作適當的接收方函式。接收方介面包含單筆轉帳使用的
接收方介面的 ERC-165 ID 為
單筆轉帳接收方回呼
單筆轉帳更新接收方餘額後,會呼叫
預期的接受值為
批次轉帳接收方回呼
預期的接受值為
接收方回呼與重入風險
ERC-1155 接收方回呼會在原始轉帳交易完成前執行外部合約程式碼。接收合約可以在回呼期間呼叫代幣合約或其他應用程式。這可能形成重入路徑。ERC-1155 規格要求在呼叫接收方鉤子前,先更新餘額與轉帳事件。應用程式合約仍須保護自身的帳務與授權邏輯。若預期邏輯允許,Solidity安全指南建議在外部互動前完成檢查與重要狀態變更。
開發者應使用嘗試同函式及跨函式重入的惡意合約,測試這兩種接收方函式。ERC-1155 事件
核心標準定義了
TransferSingle 事件
TransferBatch 事件
ApprovalForAll 事件
ERC-1155 介面偵測
ERC-1155 要求支援 ERC-165 介面偵測標準。ERC-1155 核心介面 ID 為
相容合約收到以此值呼叫的
ERC-165 標準定義智能合約如何公布及偵測支援的介面。
介面偵測可協助應用程式避免呼叫不支援的函式。合約可能謊稱支援介面或錯誤實作函式,因此回傳肯定結果並不構成完整的安全保證。ERC-1155 中繼資料
ERC-1155 包含選用的中繼資料 URI 擴充功能。此擴充功能新增
其介面 ID 為
與 ERC-20 和 ERC-721 中繼資料介面不同,ERC-1155 核心設計不要求鏈上提供
{id} 中繼資料替代字串
ERC-1155 中繼資料 URI 可以包含佔位字串
該值必須包含 64 個字元(包括前置零),且不得包含
URI 事件
若已為某個 ID 發出最新 URI 事件,
中繼資料儲存風險
ERC-1155 中繼資料可以儲存在傳統伺服器、內容定址網路,或直接儲存在鏈上。託管於伺服器的內容可能變更或消失。若識別碼與檔案相符,內容定址儲存可提高完整性,但仍取決於內容能否持續取得。鏈上中繼資料可減少對外部託管的依賴,但會增加儲存與部署成本。可變動的合約 URI 可能在使用者取得代幣後變更名稱、圖片、屬性或描述。使用者應確認誰有權變更中繼資料,以及所參照的內容是否預期會持續提供。鑄造 ERC-1155 代幣
鑄造會建立代幣單位並將其分配給某個地址。ERC-1155 核心介面未定義公開鑄造函式。每種實作都會自行決定誰能鑄造、可建立哪些 ID,以及是否有供應量上限。鑄造時必須以零地址作為傳送方,發出
銷毀 ERC-1155 代幣
銷毀會依照合約實作,永久從餘額中移除代幣單位。核心介面不要求提供公開銷毀函式。專案可以允許持有者、經授權的操作者、管理員或其他協議邏輯銷毀資產。銷毀時必須以零地址作為接收方,發出適當的轉帳事件。銷毀某 ID 的所有現有單位,不一定能阻止合約再次鑄造該 ID。結果取決於合約的供應量與存取控制規則。ERC-1155 總供應量
ERC-1155 核心標準未定義
目前的ERC-1155 實作 API包含選用的供應量擴充功能,可按代幣 ID 追蹤總供應量。
應用程式不應假設每個 ERC-1155 合約都提供相同的供應量函式。ERC-1155 列舉
ERC-1155 未定義列出所有代幣 ID 或所有持有者的核心函式。標準預期鏈下系統會從
ERC-1155 版稅
ERC-1155 核心標準未定義創作者版稅。選用的ERC-2981 版稅標準可為代幣銷售提供版稅接收方與建議支付金額。
ERC-2981 與 ERC-1155 相容,可設定預設或個別代幣的版稅資訊。版稅標準會傳達付款資訊,但不會強制每個應用程式支付版稅。若實作授予管理員相關權限,版稅設定也可能變更。ERC-1155 標準化錯誤
原始 ERC-1155 標準未定義現代 Solidity 自訂錯誤。已定稿的ERC-6093 標準定義了 ERC-1155 實作的常見錯誤。
錯誤類型包括餘額不足、傳送方無效、接收方無效、缺少操作者授權、操作者無效,以及陣列長度不符。標準化錯誤有助於錢包與開發者以一致方式說明交易失敗原因。現有 ERC-1155 合約不一定要採用這些錯誤。ERC-1155 與 ERC-20 的差異
ERC-20 通常由每個合約代表一種同質化代幣。ERC-1155 則可在同一合約中代表多種同質化及非同質化代幣 ID。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 代表到期日、風險群組、請求權或倉位類別。獎勵系統可一次批次發放多種類型的點數或成就道具。此標準不會驗證任何代幣是否代表有效的法律權利或實體資產。授權釣魚風險
惡意應用程式可能會要求使用者呼叫
批次處理風險
批次操作會處理多個陣列,且各元素必須保持正確對應。ID 與數量不匹配時,交易應失敗。索引錯誤可能導致轉移錯誤數量的資產。大型批次可能超出交易 Gas 上限,或造成阻斷服務情況。接收方可能能處理部分代幣 ID,卻無法處理其他 ID,因此必須在確認接收前驗證整個批次。應用程式應限制批次大小,並依實作規則測試重複或未排序的代幣 ID。接收方與重入風險
安全轉帳會在餘額更新後呼叫外部接收方程式碼。惡意接收方可能嘗試重入鑄造、轉帳、銷售、質押、借貸或提領函式。即使某個函式設有重入保護,只要另一個函式暴露相關狀態,合約仍可能存在漏洞。開發者應確保單筆與批次操作採用一致的狀態轉換邏輯。接收方回呼應驗證呼叫它的代幣合約,且不應自動信任使用者提供的資料。安全測試應涵蓋巢狀轉帳、轉送接收方、回呼回退與跨合約互動。供應量與真偽風險
某個 ERC-1155 代幣 ID 目前可能只有 1 個單位,因此看起來獨一無二。但獲授權的鑄造者日後仍可能建立更多單位。其他合約也能複製系列名稱、圖片或代幣 ID。合約地址與網路是資產識別的重要部分。使用者在相信稀缺性宣稱前,應檢查鑄造權限、供應量擴充功能、管理員權限與升級控制權。符合 ERC-1155 標準並不能證明真偽、資產支持、稀有度或金融價值。可升級合約風險
ERC-1155 合約可能透過可升級代理合約運作。獲授權的管理員可能可以變更鑄造、轉帳、授權、中繼資料、費用或接收方行為。升級可以修復缺陷,也可能導入惡意或不安全的程式碼。升級金鑰遭到入侵,可能使合約中的所有代幣 ID 都面臨風險。使用者應檢查升級權限、時間延遲、多重簽章要求與緊急控制機制。合約即使支援正確介面,仍可能保有強大的中心化權限。開發者如何實作 ERC-1155
除非有充分理由,開發者應採用持續維護且經過審查的實作,不要自行重寫敏感的餘額邏輯。目前的ERC-1155 開發指南提供核心合約,並說明多代幣餘額與批次操作。
鑄造與管理功能應採用明確的存取控制。供應量限制應由合約邏輯強制執行,而非只寫在專案文件中。開發者應發出所有必要事件,並傳回正確的 ERC-165 介面值。測試應涵蓋單筆轉帳、批次轉帳、授權、銷毀、鑄造、陣列不匹配、無效接收方、惡意回呼與中繼資料變更。使用者如何評估 ERC-1155 代幣
第一步是確認區塊鏈網路、合約地址與代幣 ID。第二步是確認該 ID 預計屬於同質化、非同質化或半同質化代幣。第三步是檢查目前供應量、鑄造權限與供應量上限。第四步是檢查錢包相關的操作者授權。第五步是檢視中繼資料儲存方式,並確認其是否可變更。第六步是確認管理員、暫停、凍結與升級權限。第七步是了解接收方回呼或外部合約是否帶來額外風險。第八步是檢視稽核與已驗證原始碼,但不要將其視為保證。第九步是確認代幣實際提供哪些權利或用途。第十步是在轉移有價值的資產前,先以少量資產測試不熟悉的合約。ERC-1155 批次轉帳範例
假設 Alice 持有 100 個代幣 ID 1、5 個代幣 ID 2,以及 1 個代幣 ID 3。她想轉給 Bob 10 個 ID 1、2 個 ID 2,以及 1 個 ID 3。她的錢包會呼叫
合約會發出一個
如果 Bob 是智能合約,代幣合約會呼叫
常見 ERC-1155 錯誤
常見錯誤之一,是以為每個 ERC-1155 代幣 ID 都是 NFT。另一個錯誤,是以為某個代幣 ID 的最大供應量必定為 1。第三個錯誤,是未了解操作者授權涵蓋合約中的所有 ID 就授予權限。第四個錯誤,是以為將錢包中斷連線就能移除鏈上授權。第五個錯誤,是把中繼資料可用性當成代幣存在的證明。第六個錯誤,是假設 ERC-1155 會為每個 ID 定義總供應量函式。第七個錯誤,是處理批次陣列時未檢查長度與位置是否相符。第八個錯誤,是忽略外部接收方回呼與重入風險。第九個錯誤,是把版稅視為可自動強制執行。第十個錯誤,是把介面相容性當成真偽、稀缺性或安全性的證明。常見問題
ERC-1155 是什麼意思?
ERC-1155 是 Ethereum 的多代幣標準,可在單一合約中管理多種同質化、非同質化與半同質化代幣。ERC-1155 是加密貨幣嗎?
ERC-1155 是技術標準;實作此標準的合約則可以建立多種類型的加密資產。ERC-1155 介面 ID 是什麼?
ERC-1155 核心介面 ID 為
ERC-1155 接收方介面 ID 是什麼?
接收方介面 ID 為
ERC-1155 可以建立同質化代幣嗎?
可以。單一代幣 ID 可有許多可互換單位,並分配給多個帳戶。ERC-1155 可以建立 NFT 嗎?
可以。若合約將某代幣 ID 的供應量限制為 1,該 ID 就能作為 NFT。什麼是半同質化 ERC-1155 代幣?
這類代幣在某種情境下具有可互換單位,但之後可能取得不同意義、狀態或用途。單一 ERC-1155 合約可以包含多種資產嗎?
可以。單一合約可管理許多具有不同供應量、中繼資料與用途的 ID。balanceOf 會傳回什麼?
它會傳回某個帳戶持有指定 ERC-1155 代幣 ID 的數量。balanceOfBatch 的作用是什麼?
它可在一次呼叫中傳回多個帳戶與代幣 ID 配對的餘額。safeBatchTransferFrom 是什麼?
它可在一筆交易中轉移多個代幣 ID 與數量,且當接收方是合約時會執行接收方檢查。setApprovalForAll 的作用是什麼?
它會授權操作者管理呼叫者在單一 ERC-1155 合約中持有的所有代幣 ID。使用者可以只授權一個代幣 ID 嗎?
核心授權函式不支援,但選用擴充功能或自訂合約可以提供較有限的權限。ERC-1155 操作者授權會到期嗎?
不會。標準授權會持續有效,直到被撤銷,或自訂合約邏輯改變其效果。ERC-1155 是否要求安全接收方檢查?
是。轉帳至智能合約時,必須遵循適當的單筆或批次接收方回呼規則。ERC-1155 接收方可以拒絕代幣嗎?
可以。接收方可回退交易或傳回錯誤的接受值,使轉帳失敗。ERC-1155 支援中繼資料嗎?
支援。它定義了選用的中繼資料 URI 擴充功能,介面 ID 為
每個 ERC-1155 代幣都有名稱與代號嗎?
沒有。核心標準不要求鏈上提供名稱或代號函式。ERC-1155 是否定義 decimals?
沒有。如有需要,應用程式須從中繼資料或專案專用邏輯取得面額資訊。ERC-1155 是否包含 totalSupply?
沒有。查詢總供應量需要索引事件,或使用選用的供應量擴充功能。ERC-1155 中繼資料可以變更嗎?
可以,只要合約或外部儲存系統允許更新,中繼資料就可能變更。ERC-1155 會強制執行版稅嗎?
不會。版稅資訊須依賴另一項標準,核心代幣合約不會自動強制執行所回報的版稅。ERC-1155 批次轉帳可以節省 Gas 嗎?
可以。在一筆交易中轉移多個代幣 ID,可能減少重複交易開銷。ERC-1155 回呼可能造成重入嗎?
可能。接收方回呼會執行外部程式碼,並能在原始交易完成前呼叫其他合約函式。符合 ERC-1155 標準是否代表代幣安全?
不代表。相容合約仍可能有不安全程式碼、權限過大、中繼資料可變、供應量控制不足或詐欺宣稱等問題。結論
ERC-1155 是 Ethereum 用來透過單一智能合約管理多種代幣的標準。每個代幣 ID 都可以代表同質化資產、獨特 NFT、半同質化物品,或其他依數量計算餘額的加密資產。此標準定義單筆與批次餘額查詢、安全轉帳、全系列操作者授權、接收方回呼、事件與介面偵測。需要一併查詢或轉移多個代幣 ID 時,批次操作可以降低交易開銷。強制接收方回呼可減少資產誤轉至不相容合約的情況,但也會帶來外部呼叫與重入風險。核心標準不定義公開鑄造、銷毀、總供應量、decimals、版稅或永久中繼資料。這些特性取決於選用擴充功能與個別合約的實作方式。使用者應驗證網路、合約地址、代幣 ID、供應量控制、操作者授權、中繼資料系統與管理員權限。開發者應採用持續維護的實作、發出所有必要事件、保護接收方回呼、限制批次複雜度,並測試所有授權路徑。ERC-1155 提供靈活且有效率的多代幣基礎架構,但技術相容性並不保證真偽、稀缺性、金融價值或智能合約安全。您可能也喜歡
WhatsMiner M30S++
Web3 網域
Web3 專案
熱門
目前熱門備受市場關注的加密貨幣
最高成交量
按交易量計算交易量最大的加密貨幣

