DOI: 10.5281/zenodo.14901528
title: ERC-1155 Transfer Events

description: Introduction

With the introduction of smart contracts, the Ethereum blockchain has become a reference platform for tokens, digital assets that can be owned and transferred between users. Tokens can represent a wide range of assets beyond traditional cryptocurrencies (e.g., voting rights or digital trading cards). Tokens that are indistinguishable and interchangeable with each other, such as company shares, are called fungible, while those that have distinct and unique properties and value, such as digital collectibles, are referred to as non-fungible (often abbreviated as NFTs).

The ERC-1155 standard, introduced in 2018, defines a set of common rules for the management and exchange of tokens. The standard allows for managing multiple tokens, both fungible and non-fungible, within a single smart contract. Moreover, it introduces the possibility of performing batch transfers, reducing transaction costs and enabling a more efficient use of blockchain resources. All ERC-1155 token transfers, whether in single or batch mode, are permanently recorded on the Ethereum blockchain as events and are publicly accessible, thus allowing for analysis of contract activity and user interactions.

Dataset description

This repository contains information about the transfer events emitted by ERC-1155 contracts on the Ethereum blockchain. Such events are recorded every time there is a transfer of tokens from one user to another. Note that the standard distinguishes between TransferSingle events, where a single token is transferred, and TransferBatch events, which represent the transfer of multiple tokens. In a batch transfer, tokens of any nature (i.e., fungible and non-fungible) can be exchanged, even mixed together.

The dataset contains all events included in the Ethereum blocks ranging from height 0 to 21 525 890 (included), thus covering the time period between July 30th, 2015 03:26:13 PM UTC and December 31st, 2024 11:59:59 PM UTC.

Events are stored in chronological order (i.e., from the oldest to the most recent) in a JSON file compressed with the gzip utility. The JSON file is newline-delimited, meaning that each line of the file corresponds to a single event (i.e., a single JSON object). To understand the structure of each line, consider the following example event.

{   "address":"0xd0e4847359ae76c2786d242e5f45c4f6f1abd752",   "transaction_index":40,   "log_index":32,   "transaction_hash":"0x223600ba642f4dc6644e5eb4b0a02a6f67589ee4802be640b373fdd30bb00ff4",   "block_number":6930510,   "block_timestamp":"2018-12-22 04:21:31",   "type":"SINGLE",   "operator":"0x6e8a8a0de641161b306cd548710c6175546faf76",   "from":"0x0000000000000000000000000000000000000000",   "to":"0x463def03f98b328a75051ee5ebe9a6235de4ac59",   "token_ids":[      "32"   ],   "amounts":[      "100000000"   ]}

The JSON object includes the following fields.





“address” represents the Ethereum address of the smart contract that emitted the event.




“transaction_index” indicates the position, within the block, of the transaction that produced the event.




“log_index” corresponds to the position of the event in the list of all events emitted by the transaction.




“transaction_hash” is the cryptographic hash of the transaction that produced the event. The details of the transaction used in the example are also visible through any explorer service, such as Etherscan: https://etherscan.io/tx/0x223600ba642f4dc6644e5eb4b0a02a6f67589ee4802be640b373fdd30bb00ff4.




The “block_number” and “block_timestamp” fields represent the height and the date of addition of the block in which the transaction that produced the event is present.




The “type” field indicates whether the event is of type TransferSingle (in which case it will have the value “SINGLE”) or if it is a TransferBatch (marked by the designation “BATCH”).




The “operator” address represents the account that is allowed to perform the transfer. Note that this account may not correspond to the actual owner of the tokens to be transferred.




The “from” address represents the token holder, namely the user whose token balance is decreased.




The “to” address corresponds to the token recipient, i.e., the user whose token balance is increased.


The “token_ids” and “amounts” arrays describe the tokens being transferred. Specifically, the i-th element of “token_ids” represents the numerical identifier of the i-th token involved in the transfer, while the i-th element in the “amounts” array describes the quantity transferred for that token. In the case of transfers in single mode, both “token_ids” and “amounts” will have a length of 1.


Cite this work

If the information contained in the dataset has been useful for your work, please cite the following article.

M. Loporchio, D. Di Francesco Maesa, A. Bernasconi, and L. Ricci, “Analyzing ERC-1155 Adoption: A Study of the Multi-token Ecosystem,” Studies in Computational Intelligence. Springer Nature Switzerland, pp. 385–397, 2025. doi: 10.1007/978-3-031-82427-2_32. 

Funding

This work was partially supported by Project Awesome: Analysis Framework for Web3 SOcial MEdia, project code: 2022MAWEZA, under the National Recovery and Resilience Plan funded by the European Union - NextGenerationEU, MISSION 4 COMPONENT 2, INVESTMENT N.1.1 CALL PRIN 2022 D.D. 104 02-02-2022, CUP N.I53D23003680006, and by Project DLT-FRUIT: A user centered framework for facilitating DLTs FRUITion, project code: P2022NZPJA, under the National Recovery and Resilience Plan funded by the European Union - NextGenerationEU, MISSION 4 COMPONENT 2, INVESTMENT N.1.1 CALL PRIN 2022 PNRR D.D. n. 1409 14/09/2022, CUP N.I53D23006100001.