smart contracts

This dataset emerges from an educational experiment designed to evaluate the effectiveness of a Blockly-based tool in teaching Solidity, the predominant language for the creation of smart contracts on the Ethereum blockchain. Students from a Master's degree in Information Systems Engineering participated and used this tool with the aim of mitigating the learning curve of Solidity. The dataset includes metrics on student satisfaction with using the tool.


The e-commerce market heavily relies on e-coupons, and their digital nature presents challenges in establishing a secure e-coupon infrastructure, which incurs maintenance costs. To address this, we explore using public blockchains for the e-coupon system, providing a highly reliable decentralized infrastructure with no maintenance costs. Storing coupon information on a blockchain ensures tamper resistance and protection against double redemption. However, using public blockchains shifts gas cost responsibility to users, potentially impacting user experience if not managed carefully.


Smart contract vulnerabilities have led to substantial disruptions, ranging from the DAO attack
to the recent Poolz Finance arithmetic overflow incident. While historically, the definition of smart contract
vulnerabilities lacked standardization, even with the current advancements in Solidity smart contracts, the
potential for deploying malicious contracts to exploit legitimate ones persists.
The abstract Syntax Tree (AST ), Opcodes, and Control Flow Graph (CFG) are the intermediate representa-


10.000 Smart contract addresses and its source codes. We previously had addresses whose codes were uploaded to Ethereum. The codes for these addresses were get from Ethereum using Python web3 libraries.

The data set contains addresses in the ScAddresses.txt file. The source code of each address is also included in numbered text files.

Other functions available in the API provided by Ethereum can be used for code-verified smart contracts.

Python file functions were used to process these files.