/kakarot-rpc

Kakarot ZK EVM Ethereum RPC adapter

Primary LanguageRustMIT LicenseMIT

Kakarot RPC


Report a Bug - Request a Feature - Ask a Question

GitHub Workflow Status Project license Pull Requests welcome

Table of Contents

About

Kakarot RPC is the JSON-RPC server adapter to interact with Kakarot ZK-EVM in a fully EVM-compatible way.

This adapter layer is based on:

The Kakarot RPC layer's goal is to receive and output EVM-compatible JSON-RPC payloads & calls while interacting with the Starknet Blockchain. This enables Kakarot zkEVM to interact with the usual Ethereum tooling: Metamask, Hardhat, Foundry, etc.

Architecture

Here is a high level overview of the architecture of Kakarot RPC.

Kakarot RPC Adapter flow

Getting Started

TL;DR:

  • Run kakarotup to install Kakarot RPC.
  • Test with cargo test --all.
  • Run Kakarot RPC in dev mode: RUST_LOG=debug cargo run -p kakarot_rpc

Prerequisites

Installation

kakarotup

To install with kakarotup run (kakarotup requires nightly rustup):

curl -sL https://raw.githubusercontent.com/sayajin-labs/kakarot-rpc/main/kakarotup | sh

Environment variables

Copy the .env.example file to a .env file and populate each variable.

cp examples/.env.example .env

Meanwhile you can just use unit tests to dev.

cargo test --all

Build from source:

cargo build --all --release

The binaries will be located in target/release/.

Specify the environment variables and run the binary.

source .env && cargo run -p kakarot_rpc

Configuration

Kakarot RPC is configurable through environment variables.

Here is the list of all the available environment variables:

Name Default value Description
STARKNET_RPC_URL No StarkNet RPC URL

Usage

API

[TODO]

Roadmap

See the open issues for a list of proposed features (and known issues).

Support

Reach out to the maintainer at one of the following places:

Project assistance

If you want to say thank you or/and support active development of Kakarot RPC:

  • Add a GitHub Star to the project.
  • Tweet about the Kakarot RPC.
  • Write interesting articles about the project on Dev.to, Medium or your personal blog.

Together, we can make Kakarot RPC better!

Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please read our contribution guidelines, and thank you for being involved!

Authors & contributors

For a full list of all authors and contributors, see the contributors page.

Security

Kakarot RPC follows good practices of security, but 100% security cannot be assured. Kakarot RPC is provided "as is" without any warranty. Use at your own risk.

For more information and to report security issues, please refer to our security documentation.

License

This project is licensed under the MIT license.

See LICENSE for more information.

Acknowledgements

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Abdel @ StarkWare
Abdel @ StarkWare

💻
etash
etash

💻
Mentor Reka
Mentor Reka

💻
Flydexo
Flydexo

💻
Eikix - Elias Tazartes
Elias Tazartes

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!