No description
  • Solidity 96%
  • JavaScript 4%
Find a file
2025-09-01 07:04:22 +01:00
.github/workflows yaml 2024-01-24 21:22:50 +08:00
.vscode Squash 2023-10-31 22:12:25 +00:00
helpers test utils 2023-11-07 10:10:08 +00:00
lib revert dependency 2024-01-21 01:36:14 +09:00
script Resolve compilation errors 2024-08-21 12:23:12 +02:00
src Resolve compilation errors 2024-08-21 12:23:12 +02:00
test Add starknet message senders 2024-06-07 18:22:33 +02:00
.env.example Add starknet message senders 2024-06-07 18:22:33 +02:00
.gitignore Modifications required for passing over the responsibility of assigning an MMR id to the caller, when creating an MMR through a message 2024-05-20 15:14:57 +02:00
.gitmodules Squash 2023-10-31 22:12:25 +00:00
.prettierrc Squash 2023-10-31 22:12:25 +00:00
banner.png Added banner from Anna 2023-11-14 20:25:40 +00:00
foundry.toml Add starknet message senders 2024-06-07 18:22:33 +02:00
LICENSE Squash 2023-10-31 22:12:25 +00:00
package.json Add starknet message senders 2024-06-07 18:22:33 +02:00
pnpm-lock.yaml Update package.json dependencies, scripts, license and author 2023-12-01 12:18:14 +04:00
README.md Update warning message with link to Satellite repository 2025-08-25 13:27:57 +02:00

Warning

This is a legacy repository and production API no longer interacts with those contracts. For latest version check Satellite repository.

Herodotus EVM Smart Contracts

Herodotus contracts for EVM chains.

Prerequisites:

  • Git
  • Node.js (^18.0)
  • npm
  • pnpm
  • Foundry
  • Solc

Running Locally

Create a .env file based on .env.example, and then run:

git clone git@github.com:HerodotusDev/herodotus-evm.git
cd herodotus-evm

# If you do not have pnpm, run `npm install -g pnpm`
# Install dependencies
pnpm install

# Install libraries
forge install

# Running tests requires .env to be configured
forge test

Contracts Overview

  • CommitmentsInbox: receives block commitments from the origin chain using either the native messaging system or an optimistic relayer.

  • HeadersProcessor: processes block headers from the origin chain and stores them in a Merkle Mountain Range tree where the accumulation happens on-chain.

  • FactsRegistry: stores facts (e.g., nonces, balances, code hashes, storage hashes, etc.) for each proven origin chain account.

Note: currently, the origin chain is Ethereum L1 (Sepolia on testnet and Mainnet on mainnet). However, the contracts are designed to be chain-agnostic and can be used with any EVM-compatible chain.

Deployed Contracts

Deployment

pnpm run deploy

Documentation

Here are some useful links for further reading:

License

Copyright 2023 - Herodotus Dev Ltd