7 Super Cool DevTools for Starknet Devs
Published on: October 26, 2023

7 Super Cool DevTools for Starknet Devs

The building blocks for Starknet developers

While Starknet is a Layer 2 network built over Ethereum, it is different from other Layer 2s built on the model of the Ethereum virtual machine (EVM), and so it has many of its own developer tools to support the community of developers that are building on Starknet.

While originally the stack of Starknet development tools was based mostly on Python, there is an overall trend to move from tools built on Python to tools built in Rust.

Here are 7 Dev Tools for Starknet devs:

  1. Starkli
  2. Starknet-devnet
  3. Katana
  4. Scarb
  5. Starknet Foundry
  6. Hardhat
  7. Starknet Remix Plugin

Workflow

This diagram illustrates the development process, with the tools that are useful for each stage of development.

Workflow


Starkli dev tool for Starknet

Starkli

What is it?

Starkli, pronounced Stark-lie, is a fast command-line interface that replaces the legacy starknet-CLI. Starkli is a standalone interface, that is, you can use it on its own, rather than as a component of another tool. If you’re not actually developing on Starknet and just want to interact, such as by sending transactions, then a standalone CLI might be more appropriate than an interface such as Cast, which is an integrated component of the Foundry development environment.

Who maintains it?

Starknet community contributor Jonathan Lei, the co-founder and CTO of zkLend.

Why should you care?

Starkli is a Starknet CLI similar to cairo-lang but written in Rust. It’s easier to install and to navigate, and has no dependencies. The tool supports Braavos and Argent X smart wallets, and has embedded support for RPC endpoints. 

Starkli includes standard CLI functionality, such as the following:

  • deploying accounts
  • interacting with contracts
  • getting Starknet data, such as information about blocks, transactions and more

Starkli also includes the following features:

  • compute class hashes from the Cairo file that defines the class
  • compute a function’s selector
  • encode messages
  • auto-completion
  • useful help commands
  • the ability to make multi-calls

Where do you get it?

For information on getting started, including installation instructions, see Starkli: The New Starknet CLI.

See also:


SDKs: A window into Starknet

A Software Development Kit (SDK) is a library that abstracts the complexities of Starknet when building transactions and interacting with the blockchain, including the following:

  • read and write API calls, using both the JSON-RPC and the Feeder gateway API
  • account creation
  • cryptography: Signature verification and signing, computing hashes used by Starknet
  • contract interactions: ABI import, constructing transactions

There are several SDKs for various languages, so you can choose the SDK according to your preferred language.

Language Used by Who maintains it? Where do you get it?
Starknet.js JavaScript/

TypeScript

Dapps/Wallets Shardlabs The starknet.js Github repository
Starknet.py Python Useful scripts Software Mansion (SWM) The starknet.py Github repository
Starknet-rs Rust Starkli, Foundry Jonathan Lei The starknet-rs Github repository
Starknet-go Go Chainlink Nethermind The starknet-go Github repository

Starknet Devnet

starknet-devnet, starknet-devnet-rs

What is it?

A devnet is a Starknet instance that you run as a local node, which enables much quicker development than is possible using testnet, as well as providing privacy prior to launching on testnet.

Shardlabs, originally wrote starknet-devnet in Python, but they are now actively developing a version in Rust, starknet-devnet-rs. For now, the Python-based version is more feature-rich, with the most notable feature being the ability to fork the network at a given block, so if that’s important to you, then you need to use the Python-based version. However, starknet-devnet-rs runs more quickly, and the developers are working to bring it to feature parity with the Python-based starknet-devnet. 

starknet-devnet-rs is the only version that is receiving new features.


Who maintains it?

Shardlabs

Why should you care?

starknet-devnet and starknet-devnet-rs include some accounts that are already funded with an ERC-20 token that can be used to pay fees. The ERC-20 contract that defines this token is also included.

With starknet-devnet and starknet-devnet-rs You can do the following:

  • Create mock accounts.
  • Send transactions using pre-deployed, pre-funded accounts, which are included.
  • Test tools.
  • Test RPC requests.
  • Deploy new contracts using an included Universal Deployer Contract (UDC).

What’s next?

starknet-devnet-rs is the devnet to pay attention to, as it is developed in cooperation with StarkWare, and it is the version that is being actively developed.

Where do you get it?


Katana dev tool on Starknet

Katana

What is it?

Katana, developed by the Dojo team, is an extremely fast devnet designed to support local development with Dojo, which is a gaming engine for Starknet. You can use Katana as a general purpose devnet as well. Katana lets developers test applications locally using the Katana network to test the transactions being sent during the game. 

  • Katana provides convenient RPC methods that you can use to change the network’s configuration as needed. For example, you can change the block time or allow zero-fee transactions. 
  • Katana supports version v0.3.0 of the Starknet JSON-RPC specifications, the latest version as of June 2023. Katana lets you use native Starknet JSON calls, such as starknet_getTransactionReceipt, starknet_getStorageAt

Where do you get it?

For information on installing and using Katana, see Katana in the Dojo documentation.


Scarb dev tool for Starknet

Scarb: The Cairo package manager

What is it?

The official package manager for Starknet.

Who maintains it?

Software Mansion

Why should you care?

It makes life easier in the following ways:

  • When installing Cairo packages, it handles adding, updating, and removing dependencies.
  • You can use it to compile smart contracts.
  • When creating your own Cairo package, it takes care of patching any libraries you need from Github, and lets you know if there’s a version mismatch. You can then use it to build and test your project, using the Cairo test runner. Building is quite fast.
  • It includes the Cairo compiler, built-in, so unless you’re actually a compiler developer, you don’t need to set up any extra tooling. 
  • It includes a bundled binary of the Cairo language server, which you can use
  • It works well with other tools in the Cairo ecosystem, such as Foundry and Dojo.

What’s next?

Developers are currently working on improving the way Scarb handles the management of versions, projects, and workspaces.

Where do you get it?

The Scarb site


Starknet Foundry

Starknet Foundry

What is it?

Starknet Foundry is a toolchain for developing Starknet smart contracts. It helps with writing, deploying, and testing your smart contracts. 

Who maintains it?

Software Mansion

Why should you care?

Starknet Foundry includes the following features:

  • Forge, a fast testing framework. Forge achieves performance comparable to the Cairo Test Runner with a better user experience. You can test standalone functions in your smart contracts and embed complex deployment flows.
  • Support for prints in contracts. According to the documentation, the debugging features will follow the addition of support in the Starknet compiler.
  • The online Foundry Book, with lots of helpful information and guidance in writing and running tests and interacting with Starknet.
  • Integrated compiling and dependency management, using Scarb.
  • Cast, which the documentation refers to by its command name, `sncast`. Cast is an integrated CLI specifically designed for performing Starknet RPC calls, sending transactions and getting Starknet chain data. You can use Cast to declare, deploy, and interact with contracts using the Starknet JSON-RPC.

What’s next?

Many new features are coming soon, including fuzz testing, L1<>L2 messaging, and code coverage.

The Starknet Foundry Github repo has a roadmap showing new and in-development features, although it’s not clear if the checkmarks indicate features that are already implemented, or in active development. 

Where do you get it?

The Starknet Foundry Github repo


Hardhat Dev Tool for Starknet

Hardhat (with a plugin)

What is it?

A tool primarily for testing Cairo code. You can also deploy contracts using scripts in JavaScript.

Who maintains it?

Shardlabs

Why should you care?

Hardhat is a popular JavaScript development environment for Ethereum, and if you are already familiar with it and want to use it on Starknet, then this plugin can come in handy. You can run Starknet commands as tasks in Hardhat, such as compiling a Cairo contract.

Hardhat is integrated with a local devnet, so you only need to worry about writing your tests, in JavaScript, of course.

What’s next?

Upcoming features include:

  • improved integration with Starknet.js, for a better developer experience
  • improved support for the latest Cairo features

Where do you get it?

Get Hardhat at the Hardhat site.

Get the Starknet plugin at the Starknet Hardhat plugin Github repo.

See examples of how to use the plugin at the Starknet Hardhat example scripts Github repo.


Starknet Remix Plugin Dev Tool

The Starknet Remix plugin

What is it?

Remix is a browser-based integrated development environment (IDE) for Ethereum that you can use for learning, experimenting and finding vulnerabilities in smart contracts, without installing anything. The Starknet Remix plugin lets you use Remix for testing Starknet smart contracts, so you can focus on learning Cairo and Starknet without the distraction of setting up a toolchain.

Who maintains it?

Nethermind

Why should you care?

Remix and the Starknet Remix plugin include the following features:

  • Integrated compiling.
  • You can deploy contracts on any devnet, including the plugin’s own integrated devnet.
  • You can also deploy on testnet or Mainnet.
  • You can call functions of contracts that you have already deployed, to facilitate testing and interaction.
  • Seamless integration with Scarb.
  • Integration with block explorers such as Voyager, so you can easily check the execution of your transactions, in real time.
  • The Starknet Remix Plugin is integrated with Starknet By Example, a rich repository of practical learning content.

For more information on the Starknet Remix plugin, see Unlocking Onboarding to Starknet: An Overview of the Starknet Remix Plugin.

What’s next?

  • Support for testing Starknet contracts directly within the browser.
  • An integrated code editor is planned for a future release.

Where do you get it?

To get started with Remix, see the Remix Project site.

To get started with the Starknet Remix plugin, see the Starknet Remix plugin’s Github repo.


Looking for more dev tools, libraries and tutorials? Go to Starknet’s Developers Hub 

 

ON THIS PAGE

Contact us