Coder Social home page Coder Social logo

kakarot-rpc's Introduction


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!

kakarot-rpc's People

Contributors

eikix avatar clementwalter avatar abdelstark avatar irisdv avatar danilowhk avatar alex-sumner avatar tekkac avatar etashhh avatar dpinones avatar flydexo avatar martiangreed avatar 0xmentornotapseudo avatar phklive avatar raphdeknop avatar dubzn avatar zarboq avatar omahs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.