How to Port Your Etherum DApp to Celo


This transcript is from a mobile hackathon session where Barbara explains the process of porting existing Ethereum applications to Celo. She emphasizes the importance of audience outreach, mobile accessibility, and financial inclusivity. Barbara also highlights her role as the lead for the Developer Experience Engineering team at C Labs and encourages developers to provide feedback and seek assistance from the community.

Why Port to Celo?

Barbara discusses the limitations of Ethereum for mobile development, particularly the high gas prices and volatility. She highlights the benefits of building on Celo, including lower gas costs, the Otis decentralized identity service, stable currencies, mobile identity, and fast syncing on mobile devices. These factors contribute to a better user experience and enable financial tools accessible to anyone with a mobile phone.

Migrating Smart Contracts

Barbara explains the process of migrating smart contracts from Ethereum to Celo. She mentions that developers can migrate their own contracts or even use existing Ethereum contracts on the Celo blockchain. The tooling and connectivity between Ethereum and Celo remain relatively the same, with slight adjustments required. She compares this to using different types of fasteners, like nails and screws, which have a similar function but require some adaptations.

Migrating the UI

Barbara discusses the importance of user interface (UI) and user experience (UX) in creating a successful application. She urges developers to consider mobile-friendly designs and strive for beauty, emphasizing that people are more likely to use aesthetically pleasing applications. She also mentions the opportunities for UI and UX designers in this new paradigm of mobile blockchain applications.

Account Creation and Fund Acquisition

To start the porting process, developers need to create a Celo account since Ethereum accounts cannot be used directly. Barbara explains the steps for creating an account using the Celo CLI and also provides a link to a testnet faucet for acquiring funds.

Interacting with Contracts on Celo

Barbara demonstrates how to interact with contracts on Celo using the Celo CLI and ContractKit. She explains the importance of specifying the network, provider, and network ID in the Truffle configuration file. She then deploys a sample contract and verifies its successful deployment. She concludes by inviting participants to ask questions and encouraging them to join the Celo community for further support and engagement.


Barbara concludes the session by emphasizing the significance of UI/UX and staying connected with the Celo community. She encourages developers to reach out for assistance, follow the Celo tribe, and join the mobile hackathon for a chance to explore the opportunities offered by Celo.