買幣
行情
現貨
合約BTC
理財
活動中心
福利中心
更多
0 費狂歡節
ERC-1155 多代幣標準: 什麼是 ERC-1155 多代幣標準?ERC-1155 是 Ethereum 的代幣標準,允許單一智能合約同時管理多種代幣。單一 ERC-1155 合約可代表同質化代幣、非同質化代幣、半同質化代幣,或上述資產類型的組合。官方ERC-1155 規格定義了標準化的餘額查詢、單筆轉帳、批次轉帳、操作者授權、接收方回呼、事件與選用中繼資料。ERC-1155 被歸類為已定稿的 Ethereum RequesERC-1155 多代幣標準: 什麼是 ERC-1155 多代幣標準?ERC-1155 是 Ethereum 的代幣標準,允許單一智能合約同時管理多種代幣。單一 ERC-1155 合約可代表同質化代幣、非同質化代幣、半同質化代幣,或上述資產類型的組合。官方ERC-1155 規格定義了標準化的餘額查詢、單筆轉帳、批次轉帳、操作者授權、接收方回呼、事件與選用中繼資料。ERC-1155 被歸類為已定稿的 Ethereum Reques

ERC-1155 多代幣標準

2026/10/13 15:30
#Intermediate
Humanity
H$0.05578+1.43%
SynFutures
F$0.003045+3.64%
PX
PX$0.0105-7.89%
SPACE ID
ID$0.03106-0.16%
AINFT
NFT$0.0000002366+0.08%

什麼是 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
、
balanceOfBatch
、
setApprovalForAll
、
isApprovedForAll
、
safeTransferFrom
與
safeBatchTransferFrom
。

ERC-1155 也要求支援 ERC-165 介面偵測。

核心介面不要求公開鑄造、銷毀、總供應量、版稅、代幣名稱、代號或 decimals。

這些功能可透過擴充功能或自訂實作邏輯加入。

balanceOf 函式

balanceOf
函式會傳回一個地址持有某個代幣 ID 的數量。

輸入值須包含帳戶地址與代幣 ID。

這與 ERC-20 不同:ERC-20 通常由一個合約代表一種代幣,因此函式只需要帳戶地址。

這也與 ERC-721 不同:ERC-721 的

balanceOf
會回報某地址在一個系列中持有多少個不同 NFT。

ERC-1155 餘額可以是 0、1,或合約允許的任何更大整數。

標準要求查詢零地址的餘額時必須失敗。

balanceOfBatch 函式

balanceOfBatch
函式可在一次呼叫中取得多個帳戶與代幣 ID 的餘額。

呼叫者須提供帳戶地址陣列,以及與之對應的代幣 ID 陣列。

每個傳回值都對應到兩個陣列中相同位置的帳戶與 ID。

兩個輸入陣列的長度必須相同。

此函式可查詢一個帳戶持有的多種資產,或多個帳戶持有的同一種資產。

批次餘額查詢可減少錢包、遊戲與分析應用程式所需的個別呼叫次數。

safeTransferFrom 函式

safeTransferFrom
函式會將某個代幣 ID 的指定數量,從一個地址轉移到另一個地址。

呼叫者必須是代幣持有者,或經持有者授權的操作者。

傳送方必須持有足夠的所選代幣 ID 餘額。

接收方不能是零地址。

此函式也接受 bytes 欄位,可用來傳遞應用程式專用資訊。

如果接收方是智能合約,該合約必須透過 ERC-1155 要求的接收方回呼接受轉帳。

成功轉帳後會發出

TransferSingle
事件。

safeBatchTransferFrom 函式

safeBatchTransferFrom
函式可在一筆交易中轉移多個代幣 ID 與數量。

呼叫者須提供相互對應的代幣 ID 陣列與數量陣列。

每個陣列位置上的代幣 ID,會依對應數量進行轉移。

兩個陣列的長度必須相同。

呼叫者必須是持有者或經授權的操作者,且持有者必須為批次中的每個項目持有足夠餘額。

若任何必要轉帳失敗,整筆交易通常會回退。

批次轉帳成功後會發出一個

TransferBatch
事件,而非為每個代幣 ID 個別發出轉帳事件。

批次轉帳的重要性

批次轉帳可在一筆區塊鏈交易中移動多種資產。

遊戲使用者可以一次轉移貨幣、材料、盔甲與收藏品。

應用程式也可以在一次操作中向同一接收方發放多種獎勵。

相較於提交多筆個別交易,批次處理可減少重複的交易開銷並降低總成本。

實際節省幅度取決於 ID 數量、合約實作、儲存變動、網路狀況與接收方邏輯。

批次過大仍可能消耗過多 Gas,並因區塊 Gas 上限而失敗。

應用程式應為使用者可控制的批次大小設定合理上限。

ERC-1155 操作者授權

ERC-1155 採用涵蓋整個系列的操作者授權模型。

setApprovalForAll
函式可讓持有者授權或撤銷操作者。

經授權的操作者可以管理該持有者在此合約中的所有 ERC-1155 代幣 ID。

授權適用於現有餘額,也適用於持有者之後從同一合約收到的代幣。

標準核心函式不支援只授權單一代幣 ID 或有限數量。

這種廣泛權限可提升應用程式的易用性,但也帶來重大安全風險。

使用者授權前,應確認操作者地址與合約。

isApprovedForAll 函式

isApprovedForAll
函式會回報某地址是否具有管理另一地址代幣的操作者權限。

傳回值為

true
或
false
。

授權僅適用於記錄該授權的 ERC-1155 合約。

授權不會自動涵蓋 ERC-20 代幣、ERC-721 NFT 或其他 ERC-1155 合約中的資產。

使用者應定期檢查有效的操作者授權,並撤銷不再需要的權限。

將錢包與網站中斷連線,不會移除鏈上儲存的操作者授權。

細分授權擴充功能

若使用者只想授權特定代幣 ID 或數量,ERC-1155 廣泛的授權模型可能不適用。

其他標準或自訂合約可提供限制更嚴格的權限。

ERC-5216 allowance 擴充功能定義了針對特定 ERC-1155 代幣 ID 的授權數量。

此類擴充功能為選用功能,不應假設所有合約都支援。

錢包必須清楚區分有限的代幣 ID 授權與標準的全系列授權。

ERC-1155 接收方介面

智能合約透過標準安全轉帳接收 ERC-1155 代幣時,必須實作適當的接收方函式。

接收方介面包含單筆轉帳使用的

onERC1155Received
,以及批次轉帳使用的
onERC1155BatchReceived
。

接收方介面的 ERC-165 ID 為

0x4e2312e0
。

接收合約會檢查操作者、前一位持有者、代幣 ID、數量與附加資料。

它必須傳回預期的接受值,否則轉帳會回退。

此機制可降低代幣誤轉至無法處理 ERC-1155 資產的合約之風險。

單筆轉帳接收方回呼

單筆轉帳更新接收方餘額後,會呼叫

onERC1155Received
函式。

預期的接受值為

0xf23a6e61
。

接收方可驗證代幣合約、操作者、傳送方、代幣 ID、數量與附加資料。

接收方傳回必要值即可接受轉帳。

接收方可以回退交易或傳回其他值來拒絕轉帳。

接收合約絕不可只依據回呼資料認列存款,而不驗證呼叫它的代幣合約。

批次轉帳接收方回呼

onERC1155BatchReceived
函式會處理一次轉帳中收到多個代幣 ID 的情況。

預期的接受值為

0xbc197c81
。

ID 與數量陣列必須依相同順序配對解讀。

接收方應驗證陣列長度,並確認每個支援的代幣 ID 都符合應用程式規則。

傳回錯誤值或回退,會導致整筆批次轉帳失敗。

批次接收方必須謹慎設計,因為一筆交易可能傳入多種不同資產。

接收方回呼與重入風險

ERC-1155 接收方回呼會在原始轉帳交易完成前執行外部合約程式碼。

接收合約可以在回呼期間呼叫代幣合約或其他應用程式。

這可能形成重入路徑。

ERC-1155 規格要求在呼叫接收方鉤子前,先更新餘額與轉帳事件。

應用程式合約仍須保護自身的帳務與授權邏輯。

若預期邏輯允許,Solidity安全指南建議在外部互動前完成檢查與重要狀態變更。

開發者應使用嘗試同函式及跨函式重入的惡意合約,測試這兩種接收方函式。

ERC-1155 事件

核心標準定義了

TransferSingle
、
TransferBatch
、
ApprovalForAll
與
URI
事件。

這些日誌讓錢包、區塊鏈瀏覽器、索引器與分析系統能追蹤代幣活動。

此標準的設計可讓人透過轉帳事件重建代幣餘額與供應量變化。

代幣建立、轉移或銷毀時,實作都必須發出正確事件。

解讀事件時,必須一併確認發出事件的合約地址。

TransferSingle 事件

TransferSingle
事件會記錄單一代幣類型的操作者、傳送方、接收方、代幣 ID 與數量。

一般轉帳的傳送方與接收方地址皆非零地址。

鑄造時,傳送方為零地址。

銷毀時,接收方為零地址。

零數量轉帳也必須發出適當事件。

觀察者可利用這些日誌更新索引後的餘額紀錄。

TransferBatch 事件

TransferBatch
事件會記錄單次操作所轉移的多個代幣 ID 與數量。

ID 與數量會依對應陣列位置排列。

事件也會記錄操作者、傳送方與接收方。

批次鑄造時,傳送方為零地址;批次銷毀時,接收方為零地址。

索引器必須處理陣列中的每個元素,才能正確計算餘額與供應量。

ApprovalForAll 事件

ApprovalForAll
事件會記錄持有者是否啟用或停用某個操作者。

事件會指出持有者、操作者與授權狀態。

事件本身不會轉移代幣。

它會改變操作者是否能發起持有者未來的轉帳。

撤銷操作者權限不會取消授權有效期間內已完成的交易。

ERC-1155 介面偵測

ERC-1155 要求支援 ERC-165 介面偵測標準。

ERC-1155 核心介面 ID 為

0xd9b67a26
。

相容合約收到以此值呼叫的

supportsInterface
時,必須傳回
true
。

ERC-165 標準定義智能合約如何公布及偵測支援的介面。

介面偵測可協助應用程式避免呼叫不支援的函式。

合約可能謊稱支援介面或錯誤實作函式,因此回傳肯定結果並不構成完整的安全保證。

ERC-1155 中繼資料

ERC-1155 包含選用的中繼資料 URI 擴充功能。

此擴充功能新增

uri
函式,可傳回代幣 ID 的中繼資料位置。

其介面 ID 為

0x0e89341c
。

傳回的位置通常指向 JSON 文件,其中包含名稱、描述、圖片、屬性與外部資源等資訊。

與 ERC-20 和 ERC-721 中繼資料介面不同,ERC-1155 核心設計不要求鏈上提供

name
或
symbol
函式。

專案仍可透過自訂擴充功能加入這些函式。

{id} 中繼資料替代字串

ERC-1155 中繼資料 URI 可以包含佔位字串

{id}
。

應用程式會將此佔位字串替換為所查詢的代幣 ID,並以小寫十六進位值表示。

該值必須包含 64 個字元(包括前置零),且不得包含

0x
前綴。

此結構讓單一基礎 URI 能描述多個代幣 ID 的中繼資料位置。

若應用程式未正確替換字串,可能會取得錯誤的中繼資料檔案。

URI 事件

URI
事件會公布與代幣 ID 相關的中繼資料 URI。

使用中繼資料擴充功能的實作若變更非程式化 URI,且該變更可透過事件表示,就必須發出事件。

若已為某個 ID 發出最新 URI 事件,

uri
函式應傳回與該事件相同的值。

存在有效 URI 並不能證明某個代幣 ID 已經鑄造。

應用程式應使用餘額與轉帳事件判斷代幣是否存在,而非依據中繼資料是否可用。

中繼資料儲存風險

ERC-1155 中繼資料可以儲存在傳統伺服器、內容定址網路,或直接儲存在鏈上。

託管於伺服器的內容可能變更或消失。

若識別碼與檔案相符,內容定址儲存可提高完整性,但仍取決於內容能否持續取得。

鏈上中繼資料可減少對外部託管的依賴,但會增加儲存與部署成本。

可變動的合約 URI 可能在使用者取得代幣後變更名稱、圖片、屬性或描述。

使用者應確認誰有權變更中繼資料,以及所參照的內容是否預期會持續提供。

鑄造 ERC-1155 代幣

鑄造會建立代幣單位並將其分配給某個地址。

ERC-1155 核心介面未定義公開鑄造函式。

每種實作都會自行決定誰能鑄造、可建立哪些 ID,以及是否有供應量上限。

鑄造時必須以零地址作為傳送方,發出

TransferSingle
或
TransferBatch
事件。

若代幣鑄造至智能合約,通常須執行適當的接收方回呼。

使用者應檢查鑄造權限,不要假設類似 NFT 的 ID 永遠有固定供應上限。

銷毀 ERC-1155 代幣

銷毀會依照合約實作,永久從餘額中移除代幣單位。

核心介面不要求提供公開銷毀函式。

專案可以允許持有者、經授權的操作者、管理員或其他協議邏輯銷毀資產。

銷毀時必須以零地址作為接收方,發出適當的轉帳事件。

銷毀某 ID 的所有現有單位,不一定能阻止合約再次鑄造該 ID。

結果取決於合約的供應量與存取控制規則。

ERC-1155 總供應量

ERC-1155 核心標準未定義

totalSupply
函式。

若實作遵循必要的事件規則,可透過鑄造與銷毀事件計算每個代幣 ID 的供應量。

合約可加入供應量追蹤擴充功能,以便直接在鏈上查詢。

目前的ERC-1155 實作 API包含選用的供應量擴充功能,可按代幣 ID 追蹤總供應量。

應用程式不應假設每個 ERC-1155 合約都提供相同的供應量函式。

ERC-1155 列舉

ERC-1155 未定義列出所有代幣 ID 或所有持有者的核心函式。

標準預期鏈下系統會從

TransferSingle
、
TransferBatch
與
URI
事件重建代幣活動。

索引器通常會從合約部署區塊開始,持續處理事件直到最新區塊。

遺漏事件可能導致餘額或供應量紀錄錯誤。

合約可以加入自訂列舉函式,但並非所有合約都提供這些函式。

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 代表到期日、風險群組、請求權或倉位類別。

獎勵系統可一次批次發放多種類型的點數或成就道具。

此標準不會驗證任何代幣是否代表有效的法律權利或實體資產。

授權釣魚風險

惡意應用程式可能會要求使用者呼叫

setApprovalForAll
,卻將此要求描述為驗證或連接錢包。

一旦授權,操作者即可轉移使用者在該 ERC-1155 合約中持有的所有代幣 ID。

此授權也可能適用於使用者之後收到的代幣。

簽署前,使用者應檢查網路、代幣合約、操作者地址與權限類型。

在錢包介面撤銷網站存取權,不會自動撤銷鏈上授權。

取消 ERC-1155 操作者權限不需要助記詞或私鑰。

批次處理風險

批次操作會處理多個陣列,且各元素必須保持正確對應。

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。

她的錢包會呼叫

safeBatchTransferFrom
,並傳入包含三個 ID 及其對應數量的陣列。

合約會驗證 Alice 的餘額與呼叫者的權限。

合約會扣除 Alice 的餘額,並增加 Bob 在每個所列 ID 的餘額。

合約會發出一個

TransferBatch
事件,記錄完整轉移內容。

如果 Bob 是智能合約,代幣合約會呼叫

onERC1155BatchReceived
。

若接收方傳回正確的接受值,交易就會完成。

若任何餘額檢查或接收方要求未通過,整筆批次轉帳就會回退。

常見 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 為

0xd9b67a26
。

ERC-1155 接收方介面 ID 是什麼?

接收方介面 ID 為

0x4e2312e0
。

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 為

0x0e89341c
。

每個 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 提供靈活且有效率的多代幣基礎架構,但技術相容性並不保證真偽、稀缺性、金融價值或智能合約安全。
ETF單週失血6.79億,花旗看多BTC至11.3萬!
ETF單週失血6.79億,花旗看多BTC至11.3萬!ETF單週失血6.79億,花旗看多BTC至11.3萬!
機構在賭什麼?