The proliferation of the Internet of Things (IoT) in various smart city systems results in massive amounts of data that IoT sensors and devices generate. Many smart city applications use the computing power of the cloud for data processing. However, transferring data between IoT devices and the cloud can result in high latency for many applications and pose several security challenges. Fog computing aims to address these issues by analyzing sensitive data on an on-premise fog node rather than on a data center outside of the organization’s control, dramatically improving data privacy. To ensure secure data sharing between city stakeholders, such as government agencies, Blockchain technology is more suited for this task. The Blockchain-based architecture we propose serves as a platform for secure data storage and data sharing in a smart city. Selected smart city fog nodes are used to share data among stakeholders and establish a distributed shared database. Also, in the context of smart healthcare as a use case, a smart data sharing contract enables trusted decentralized data storage, authorized data sharing between healthcare entities, automates data management, and defends against unauthorized second-hand sharing.