Choosing a StarkNet Development Tool

David Barreto
Starknet Edu
Published in
4 min readSep 15, 2022

StarkNet might be a fairly new platform but you’ll be surprised by how many tools the community has built in such a short time to support the development of smart contracts. If you are overwhelmed by the number of options and don’t know which tool to pick, we have some suggestions that take into account your skills and experience. Keep in mind that this is an opinionated and not at all exhaustive list of options.

Selecting the tool that’s right for you

Remix: No Installation Required

If you are just learning Cairo and your goal is to try things out, do some tutorials and deploy simple smart contracts to testnet to understand how it all works you can use good old Remix for that.

Remix is an online IDE that was originally created for Solidity and Ethereum but that now also supports Cairo and StarkNet thanks to a plugin. You can use this plugin directly on their web application by searching for “StarkNet” in the plugin manager section of the sidebar.

Activating the StarkNet plugin on Remix

Remix is the simplest way to get started with StarkNet as there’s nothing to install and the UI is fairly intuitive. This way you can focus your time and effort on learning Cairo and StarkNet without the distraction of toolchain setup.

Cairo-Lang & Nile: The Tools for Pythonistas

If you are comfortable with Python and you want to set up a local dev environment just the way you like it you can use either cairo-lang or Nile, both available as pip packages.

Cairo-lang is a Python package developed and maintained by StarkWare. Once installed it gives access to a CLI to compile and deploy smart contracts. Cairo-lang gives access to Python libraries that allows to create more complex deployments and to perform unit tests with the help of pytest.

Nile, created and maintained by OpenZeppelin, is a wrapper around cairo-lang with additional features. Both tools are in essence fairly similar so it will depend on your personal preference of which package you find more intuitive and easier to use.

Hardhat: There’s a Plugin for Everything

Hardhat is one of the most well-known and mature development tool for Ethereum. This tool has two main characteristics: it’s very flexible and it’s Javascript based. If you are a Javascript developer familiarized with Mocha and Chai you’ll feel right at home with Hardhat. The tool even allows you to use Typescript if that’s your Javascript flavor of choice. To use Hardhat with StarkNet you will need to install a plugin.

Protostar: Foundry for StarkNet

Foundry became popular on Ethereum because it allowed you to test your smart contracts with Solidity itself (no context switching) and because running tests was blazing fast thanks to Rust.

Protostar, created by Software Mansion, is inspired by Foundry and as such allows you to test your StarkNet smart contracts with Cairo. Protostar is not built with Rust so it doesn’t have the same performance as Foundry when running tests but the team is looking into integrating cairo-rs, a Rust implementation of the Cairo VM, once it becomes stable. This will give the tool a big boost in performance.

Conclusion

As you can see there are multiple options when it comes to development tools for StarkNet. You don’t have to follow our suggestions when picking yours. I see myself mostly as a Javascript developer and yet I chose Protostar and not Hardhat as my tool of choice just because I like the idea of using the same language for everything, even testing.

Another project that is commonly used in combination with any of the tools mentioned above is starknet-devnet. This Python tool is similar to Ganache and it allows you to mimic StarkNet’s Alpha testnet locally which is especially useful for integration testing.

What is your tool of choice and why? Are there more tools that we didn’t cover? Let us know in the comment section below.

--

--

David Barreto
Starknet Edu

Starknet Developer Advocate. Find me on Twitter as @barretodavid