Código is a firmware distribution service built on top of the Ethereum blockchain and IPFS. Código natively allows developers to upload firmware for different devices and provides rudimentary search capabilities for users. Users can download firmware either by requesting a specific firmware image from a known developer or utilising a built-in web of trust model to automatically select a trusted developer. This project aims to produce a DApp front end driver for Código, called Código Hub, to make it easier for developers to manage the firmware they upload to the network and for users to discover new firmware for their devices. For developers we provide a convenient UI for viewing previously uploaded firmware, Filecoin integration for friction-less persistence on IPFS and a bounty system which rewards developers with ETH for filling unmet needs in the IoT domain. For users we provide a graphical method for searching all firmware available on the network, automatic firmware deployment via MQTT (for supported devices), a reputation system to help users make trust decisions about individual firmware or developers, and the bounty system which allows users to offer ETH in return for novel features. Further in-depth description of the system design and goals can be found in our system specification document in the Codigo Hub repository (

Código - IoT+ETH <3 showcase

How it's made

The UI and most of the business logic of the app is built in React.js and hosted on Fleek. User data is stored in 3box where possible and is persisted during the session using Redux and Redux Persist. Data which should be kept consistent between multiple users is stored in several Ethereum 1.0 smart contracts. This includes the Código smart contract for tracking available firmware, and new contracts implementing Hub specific concepts such as the bounty repository and the user reputation systems. The firmware binaries and their corresponding source code are stored on Filecoin. Código Hub uses the Textile Powergate Javascript library to communicate with a Powergate instance acting as the interface to Filecoin and IPFS. The app communicates with the Ethereum blockchain using Metamask and supports communication with compatible devices via Websocket MQTT.

Technologies used