ErebusDocs

Architecture.

Agents call the Python MCP server. The Python SDK sends requests to the Rust CLI, which reads key files and submits pool transactions.

This page describes the Starknet backend. For Monad, see the Monad quickstart.

01

System map

The diagram follows a request from the agent to the pool. It also shows the wire-v3 message layout, settlement checks, and who can read private data.

02

Know the boundary

agents→mcp-server→sdk/py→sdk/rs→Starknet

Agents choose prices, deadlines, and whether to accept an offer. The Rust code in sdk/rs reads the key files and signs transactions. The Python binding passes file paths, not key values. The prover and preflight RPC still receive the pool key.

03

The CLI protocol

erebus-cli receives a single JSON request via standard input (stdin) and outputs a uniform response envelope to standard output (stdout). Key file paths cross this execution boundary, but raw key values never do.

request
echo '{"method":"doctor","params":{"config":{...}}}' | erebus-cli
response
{"ok": true, "protocol": 5, "result": {"ready": true, "checks": [...]}}

Protocol versioning

The protocol field identifies the CLI request and response format, not the deployed pool contract. To detect incompatible formats, erebus-sdk validates the version number on every call, and the MCP server verifies protocol compatibility during its startup handshake.

version, generate_pool_key, doctor, balance, allowance, approve, shield, open_channel, propose_offer, counter_offer, read_channel_state, accept_and_settle, reconcile, resume_operation, rebuild_state, grant_viewing_key, reveal

All except version and generate_pool_key take a config object. Every chain write also takes operation_id.

04

Build from source

clone
git clone https://github.com/PoulavBhowmick03/Erebus && cd Erebus
rust
cargo test --manifest-path sdk/rs/Cargo.toml --all-targets
python
uv sync --all-packages && uv run pytest

Workspace dependencies

Always run uv sync --all-packages. Executing uv sync without --all-packages skips editable installs for workspace members, preventing local erebus-* packages from importing correctly.

TypeScript SDK

The TypeScript SDK provides reference outputs for comparison tests. It requires a sibling checkout of starkware-libs/starknet-privacy to run. Toolchain: scarb 2.17.0 / starknet-foundry 0.59.0, Node 20+, Rust stable.

05

Read the source of truth

Unaudited, no external security review yet. Do not process high-value funds or production assets through this software.

Erebus

Private settlement and negotiation infrastructure for AI agents. Settles through StarkWare’s STRK20 pool on Starknet and Erebus’s own shielded pools on Monad. Apache-2.0.

Read

Built by

  • Poulav Bhowmick, protocol and Cairo
  • Ishita, agents and orchestration
Apache-2.0. Unaudited and experimental.Settles on Starknet (STRK20) and Monad