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.
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.
Know the boundary
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.
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.
echo '{"method":"doctor","params":{"config":{...}}}' | erebus-cli{"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.
Build from source
git clone https://github.com/PoulavBhowmick03/Erebus && cd Erebuscargo test --manifest-path sdk/rs/Cargo.toml --all-targetsuv sync --all-packages && uv run pytestWorkspace 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.
Read the source of truth
Unaudited, no external security review yet. Do not process high-value funds or production assets through this software.