{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,14]],"date-time":"2026-01-14T18:34:36Z","timestamp":1768415676715,"version":"3.49.0"},"reference-count":43,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2025,3,24]],"date-time":"2025-03-24T00:00:00Z","timestamp":1742774400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,3,24]],"date-time":"2025-03-24T00:00:00Z","timestamp":1742774400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100021856","name":"Ministero dell\u2019Universit\u00e0 e della Ricerca","doi-asserted-by":"publisher","award":["2022S49T4W"],"award-info":[{"award-number":["2022S49T4W"]}],"id":[{"id":"10.13039\/501100021856","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100012305","name":"Universit\u00e0 degli Studi del Molise","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100012305","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2025,5]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    Smart contracts,\n                    <jats:italic>i.e.,<\/jats:italic>\n                    self-executing contracts written in code, have gained popularity in recent years due to the introduction of blockchain technology. These contracts are executed automatically when certain conditions are met, and, once deployed, they can not be modified. This presents issues when errors are found or updates are needed. Previous research has mainly focused on introducing approaches and tools for detecting bugs or vulnerabilities in smart contracts. However, it is unclear if these are the only maintenance-related operations developers perform. In this paper, we aim to understand\n                    <jats:italic>why<\/jats:italic>\n                    and\n                    <jats:italic>how<\/jats:italic>\n                    developers maintain smart contracts. We run a qualitative analysis on 590 commits from 14 open-source smart contract repositories written in Solidity, the most popular programming language for smart contracts. We analyze the commit messages, related issues, and the changes made to understand what triggered changes. Then, we examine how developers changed the source code. As a result, we define two taxonomies: one reporting the reasons for the maintenance and one regarding the patterns of modifications. Our findings suggest that smart contract maintenance is often focused on improving the internal quality of the scripts (40%\u00a0of the cases), and that many changes aim to fix bugs despite the several approaches available for detecting them beforehand.\n                  <\/jats:p>","DOI":"10.1007\/s10664-025-10639-9","type":"journal-article","created":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T01:54:43Z","timestamp":1742954083000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Why and how developers maintain smart contracts"],"prefix":"10.1007","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-5241-1608","authenticated-orcid":false,"given":"Giovanni","family":"Rosa","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1764-9685","authenticated-orcid":false,"given":"Simone","family":"Scalabrino","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4306-3485","authenticated-orcid":false,"given":"Stefano","family":"Mastrostefano","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7995-8582","authenticated-orcid":false,"given":"Rocco","family":"Oliveto","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,3,24]]},"reference":[{"key":"10639_CR1","unstructured":"ISO\/IEC 14764:2006 (2006) ISO\/IEC\/IEEE international standard for software engineering - software life cycle processes - maintenance. Tech rep"},{"key":"10639_CR2","doi-asserted-by":"crossref","unstructured":"Bai X, Cheng Z, Duan Z, Hu K (2018) Formal modeling and verification of smart contracts. In: Proceedings of the 2018 7th international conference on software and computer applications, pp 322\u2013326","DOI":"10.1145\/3185089.3185138"},{"issue":"37","key":"10639_CR3","first-page":"2","volume":"3","author":"V Buterin","year":"2014","unstructured":"Buterin V et al (2014) A next-generation smart contract and decentralized application platform. White Paper 3(37):2\u20131","journal-title":"White Paper"},{"key":"10639_CR4","doi-asserted-by":"crossref","unstructured":"Canfora G, Di\u00a0Sorbo A, Fredella M, Vacca A, Visaggio CA (2021) iSCREAM: a suite for Smart Contract REAdability assessMent. In: 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, pp 579\u2013583","DOI":"10.1109\/ICSME52107.2021.00060"},{"key":"10639_CR5","unstructured":"Chen J, Xia X, Lo D, Grundy J, Luo X, Chen T (2020) Defining smart contract defects on ethereum. IEEE Trans Softw Eng"},{"issue":"6","key":"10639_CR6","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/s10664-021-10018-0","volume":"26","author":"J Chen","year":"2021","unstructured":"Chen J, Xia X, Lo D, Grundy J, Yang X (2021) Maintenance-related concerns for post-deployed ethereum smart contract development: issues, techniques, and future challenges. Empir Softw Eng 26(6):1\u201344","journal-title":"Empir Softw Eng"},{"issue":"3","key":"10639_CR7","doi-asserted-by":"publisher","first-page":"1433","DOI":"10.1109\/TETC.2020.2979019","volume":"9","author":"T Chen","year":"2020","unstructured":"Chen T, Feng Y, Li Z, Zhou H, Luo X, Li X, Xiao X, Chen J, Zhang X (2020) Gaschecker: scalable analysis for discovering gas-inefficient smart contracts. IEEE Trans Emerg Top Comput 9(3):1433\u20131448","journal-title":"IEEE Trans Emerg Top Comput"},{"key":"10639_CR8","doi-asserted-by":"crossref","unstructured":"Chen T, Li Z, Zhou H, Chen J, Luo X, Li X, Zhang X (2018) Towards saving money in using smart contracts. In: Proceedings of the 40th international conference on software engineering: new ideas and emerging results, pp 81\u201384","DOI":"10.1145\/3183399.3183420"},{"issue":"2","key":"10639_CR9","first-page":"127","volume":"86","author":"DV Cicchetti","year":"1981","unstructured":"Cicchetti DV, Sparrow SA (1981) Developing criteria for establishing interrater reliability of specific items: applications to assessment of adaptive behavior. Am J Ment Defic 86(2):127\u2013137","journal-title":"Am J Ment Defic"},{"key":"10639_CR10","volume-title":"Sampling techniques","author":"WG Cochran","year":"1977","unstructured":"Cochran WG (1977) Sampling techniques, 3rd edn. John Wiley & Sons","edition":"3"},{"key":"10639_CR11","doi-asserted-by":"crossref","unstructured":"Di\u00a0Angelo M, Durieux T, Ferreira JF, Salzer G (2023)Smartbugs 2.0: an execution framework for weakness detection in ethereum smart contracts. In: 2023 38th IEEE\/ACM international conference on Automated Software Engineering (ASE). IEEE, pp 2102\u20132105","DOI":"10.1109\/ASE56229.2023.00060"},{"issue":"2","key":"10639_CR12","doi-asserted-by":"publisher","first-page":"41","DOI":"10.1007\/s10664-023-10414-8","volume":"29","author":"M Di Angelo","year":"2024","unstructured":"Di Angelo M, Durieux T, Ferreira JF, Salzer G (2024) Evolution of automated weakness detection in ethereum bytecode: a comprehensive study. Empir Softw Eng 29(2):41","journal-title":"Empir Softw Eng"},{"key":"10639_CR13","unstructured":"Driessen S, Di\u00a0Nucci D, Monsieur G, Tamburri DA, Heuvel WJvd (2021) Automated test-case generation for solidity smart contracts: the agsolt approach and its evaluation. arXiv preprint arXiv:2102.08864"},{"key":"10639_CR14","unstructured":"Falkon S (2017) The story of the DAO - its history and consequences. https:\/\/medium.com\/swlh\/the-story-of-the-dao-its-history-and-consequences-71e6a8a551ee"},{"key":"10639_CR15","doi-asserted-by":"crossref","unstructured":"Feist J, Grieco G, Groce A (2019) Slither: a static analysis framework for smart contracts. In: 2019 IEEE\/ACM 2nd international Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB). IEEE, pp 8\u201315","DOI":"10.1109\/WETSEB.2019.00008"},{"key":"10639_CR16","doi-asserted-by":"crossref","unstructured":"Fooladgar M, Arefzadeh A, Faghih F (2021) Testsmart: a tool for automated generation of effective test cases for smart contracts. In: 2021 11th International Conference on Computer Engineering and Knowledge (ICCKE). IEEE, pp 476\u2013481","DOI":"10.1109\/ICCKE54056.2021.9721448"},{"issue":"5","key":"10639_CR17","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3641846","volume":"33","author":"C Gao","year":"2024","unstructured":"Gao C, Yang W, Ye J, Xue Y, Sun J (2024) sguard+: machine learning guided rule-based automated vulnerability repair on smart contracts. ACM Trans Softw Eng Methodol 33(5):1\u201355","journal-title":"ACM Trans Softw Eng Methodol"},{"key":"10639_CR18","doi-asserted-by":"crossref","unstructured":"Herzig K, Zeller A (2013) The impact of tangled code changes. In: 2013 10th working conference on Mining Software Repositories (MSR). IEEE, pp 121\u2013130","DOI":"10.1109\/MSR.2013.6624018"},{"issue":"11","key":"10639_CR19","doi-asserted-by":"publisher","first-page":"4291","DOI":"10.1109\/TSE.2021.3116808","volume":"48","author":"N Kannengie\u00dfer","year":"2021","unstructured":"Kannengie\u00dfer N, Lins S, Sander C, Winter K, Frey H, Sunyaev A (2021) Challenges and common solutions in smart contract development. IEEE Trans Software Eng 48(11):4291\u20134318","journal-title":"IEEE Trans Software Eng"},{"key":"10639_CR20","doi-asserted-by":"crossref","unstructured":"Kolluri A, Nikolic I, Sergey I, Hobor A, Saxena P (2019) Exploiting the laws of order in smart contracts. In: Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis, pp 363\u2013373","DOI":"10.1145\/3293882.3330560"},{"key":"10639_CR21","doi-asserted-by":"crossref","unstructured":"Ksontini E, Abid A, Khalsi R, Kessentini M (2024) Drminer: a tool for identifying and analyzing refactorings in dockerfile. In: Proceedings of the 21st international conference on mining software repositories, pp 584\u2013594","DOI":"10.1145\/3643991.3644921"},{"key":"10639_CR22","doi-asserted-by":"crossref","unstructured":"Li L, Bissyand\u00e9 TF, Wang H, Klein J (2018) Cid: automating the detection of api-related compatibility issues in android apps. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis, pp 153\u2013163","DOI":"10.1145\/3213846.3213857"},{"key":"10639_CR23","doi-asserted-by":"crossref","unstructured":"Li Z, Wu H, Xu J, Wang X, Zhang L, Chen Z (2019) Musc: a tool for mutation testing of ethereum smart contract. In: 2019 34th IEEE\/ACM international conference on Automated Software Engineering (ASE). IEEE, pp 1198\u20131201","DOI":"10.1109\/ASE.2019.00136"},{"issue":"54","key":"10639_CR24","first-page":"4","volume":"9","author":"B Mueller","year":"2018","unstructured":"Mueller B (2018) Smashing ethereum smart contracts for fun and real profit. HITB SECCONF Amsterdam 9(54):4\u201317","journal-title":"HITB SECCONF Amsterdam"},{"key":"10639_CR25","doi-asserted-by":"crossref","unstructured":"Olsthoorn M, van Deursen A, Panichella A (2022a) Guiding automated test case generation for transaction-reverting statements in smart contracts. In: 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, pp 163\u2013174","DOI":"10.1109\/ICSME55016.2022.00023"},{"key":"10639_CR26","doi-asserted-by":"crossref","unstructured":"Olsthoorn M, Stallenberg D, van Deursen A, Panichella A (2022b) Syntest-solidity: automated test case generation and fuzzing for smart contracts. In: The 44th international conference on software engineering-demonstration track. IEEE\/ACM","DOI":"10.1145\/3510454.3516869"},{"key":"10639_CR27","doi-asserted-by":"crossref","unstructured":"Panichella A, Kifetew FM, Tonella P (2017) Automated test case generation as a many-objective optimisation problem with dynamic selection of the targets. IEEE Trans Software Eng 44(2):122\u2013158","DOI":"10.1109\/TSE.2017.2663435"},{"key":"10639_CR28","doi-asserted-by":"crossref","unstructured":"Piantadosi V, Rosa G, Placella D, Scalabrino S, Oliveto R (2023) Detecting functional and security-related issues in smart contracts: a systematic literature review. Software: Practice and Experience 53(2):465\u2013495","DOI":"10.1002\/spe.3156"},{"key":"10639_CR29","doi-asserted-by":"publisher","unstructured":"Rosa G, Scalabrino S, Mastrostefano S, Oliveto R (2024) Replication package for \u201cWhy and how developers maintain smart contracts\u201d. https:\/\/doi.org\/10.6084\/m9.figshare.21919404","DOI":"10.6084\/m9.figshare.21919404"},{"issue":"5","key":"10639_CR30","doi-asserted-by":"publisher","first-page":"108","DOI":"10.1007\/s10664-024-10471-7","volume":"29","author":"G Rosa","year":"2024","unstructured":"Rosa G, Zappone F, Scalabrino S, Oliveto R (2024) Fixing dockerfile smells: an empirical study. Empir Softw Eng 29(5):108","journal-title":"Empir Softw Eng"},{"issue":"6","key":"10639_CR31","doi-asserted-by":"publisher","first-page":"5006","DOI":"10.1007\/s10664-020-09877-w","volume":"25","author":"S Scalabrino","year":"2020","unstructured":"Scalabrino S, Bavota G, Linares-V\u00e1squez M, Piantadosi V, Lanza M, Oliveto R (2020) Api compatibility issues in android: causes and effectiveness of data-driven detection techniques. Empir Softw Eng 25(6):5006\u20135046","journal-title":"Empir Softw Eng"},{"issue":"6","key":"10639_CR32","volume":"30","author":"S Scalabrino","year":"2018","unstructured":"Scalabrino S, Linares-V\u00e1squez M, Oliveto R, Poshyvanyk D (2018) A comprehensive model for code readability. J Softw: Evol Process 30(6):e1958","journal-title":"J Softw: Evol Process"},{"key":"10639_CR33","unstructured":"Serebryantseva V (2022) What are the top smart contract platforms and how to choose the right one? https:\/\/pixelplex.io\/blog\/smart-contract-platforms\/"},{"key":"10639_CR34","unstructured":"Sommerville I (2011) Software engineering 9th edition. ISBN-10 137035152"},{"key":"10639_CR35","unstructured":"Spencer D (2009) Card sorting: designing usable categories. Rosenfeld Media"},{"key":"10639_CR36","doi-asserted-by":"crossref","unstructured":"Tikhomirov S, Voskresenskaya E, Ivanitskiy I, Takhaviev R, Marchenko E, Alexandrov Y (2018) Smartcheck: static analysis of ethereum smart contracts. In: Proceedings of the 1st international workshop on emerging trends in software engineering for blockchain, pp 9\u201316","DOI":"10.1145\/3194113.3194115"},{"key":"10639_CR37","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2020.110891","volume":"174","author":"A Vacca","year":"2021","unstructured":"Vacca A, Di Sorbo A, Visaggio CA, Canfora G (2021) A systematic literature review of blockchain and smart contract development: techniques, tools, and open challenges. J Syst Softw 174:110891","journal-title":"J Syst Softw"},{"key":"10639_CR38","doi-asserted-by":"crossref","unstructured":"Vidal FR, Ivaki N, Laranjeiro N (2024) Vulnerability detection techniques for smart contracts: a systematic literature review. J Syst Softw, 112160","DOI":"10.1016\/j.jss.2024.112160"},{"key":"10639_CR39","doi-asserted-by":"crossref","unstructured":"Wang C, Zhang J, Gao J, Xia L, Guan Z, Chen Z (2024) Contracttinker: Llm-empowered vulnerability repair for real-world smart contracts. arXiv preprint arXiv:2409.09661","DOI":"10.1145\/3691620.3695349"},{"key":"10639_CR40","doi-asserted-by":"crossref","unstructured":"Wang X, Wu H, Sun W, Zhao Y (2019) Towards generating cost-effective test-suite for ethereum smart contract. In: 2019 IEEE 26th international conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, pp 549\u2013553","DOI":"10.1109\/SANER.2019.8668020"},{"key":"10639_CR41","doi-asserted-by":"crossref","unstructured":"Wei L, Liu Y, Cheung SC (2016) Taming android fragmentation: characterizing and detecting compatibility issues for android apps. In: Proceedings of the 31st IEEE\/ACM international conference on automated software engineering, pp 226\u2013237","DOI":"10.1145\/2970276.2970312"},{"issue":"2014","key":"10639_CR42","first-page":"1","volume":"151","author":"G Wood","year":"2014","unstructured":"Wood G et al (2014) Ethereum: a secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper 151(2014):1\u201332","journal-title":"Ethereum Project Yellow Paper"},{"issue":"10","key":"10639_CR43","doi-asserted-by":"publisher","first-page":"2084","DOI":"10.1109\/TSE.2019.2942301","volume":"47","author":"W Zou","year":"2019","unstructured":"Zou W, Lo D, Kochhar PS, Le XBD, Xia X, Feng Y, Chen Z, Xu B (2019) Smart contract development: challenges and opportunities. IEEE Trans Software Eng 47(10):2084\u20132106","journal-title":"IEEE Trans Software Eng"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-025-10639-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-025-10639-9\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-025-10639-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,11,20]],"date-time":"2025-11-20T13:29:30Z","timestamp":1763645370000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-025-10639-9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,3,24]]},"references-count":43,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2025,5]]}},"alternative-id":["10639"],"URL":"https:\/\/doi.org\/10.1007\/s10664-025-10639-9","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,3,24]]},"assertion":[{"value":"7 March 2025","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 March 2025","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflicts of Interest"}}],"article-number":"84"}}