AgentMask / README.md
ym452's picture
Update README.md
ee9b4cc verified

A newer version of the Gradio SDK is available: 6.8.0

Upgrade
metadata
title: AgentMask - Secure Multi-Agent System
emoji: ๐Ÿ›ก๏ธ
colorFrom: green
colorTo: red
sdk: gradio
sdk_version: 5.0.0
app_file: app.py
pinned: false
tags:
  - mcp-in-action-track-enterprise
  - agent
  - security
  - langgraph
  - merkle-tree
  - multi-agent
  - ecdsa

๐Ÿ›ก๏ธ AgentMask - Secure Multi-Agent System

"Don't Trust, Verify." โ€” Transparent, Auditable, and Immutable Reasoning Layer for AI Agents.

Python 3.10+ FastAPI Tests License

๐ŸŽฌ Demo & Submission

Watch the system in action and check out our official submission post:

Watch the Video View on X


๐Ÿ† Hackathon Track

This project was developed for the MCP 1st Birthday Hackathon.

  • Track: Track 2: MCP in Action
  • Category Tag: mcp-in-action-track-enterprise

๐Ÿ’ก Problem: The Black Box Issue

Autonomous AI agents are performing increasingly complex tasks. However, there is a critical problem:

How can you prove why an agent made a decision or if it was manipulated during the process?

In current systems, logs can be deleted or altered, and the agent's thought process remains a black box.


๐Ÿš€ Solution: Cryptographic "Chain-of-Checks"

AgentMask provides not just a "Chain-of-Thought," but a "Chain-of-Checks" (Audit Chain).

Key Features

Feature Description
๐Ÿค– Multi-Agent Orchestration Modular agent architecture with parallel and sequential execution
๐Ÿ” Merkle Tree Audit Trail Every step is hashed with SHA-256, immutable
โœ๏ธ ECDSA Block Signing Blocks are cryptographically signed (secp256k1)
๐ŸŒ Real Web Search DuckDuckGo/Serper integration with fallback support
๐Ÿ“Š Developer Console Monitoring with real-time graph visualization
โšก Parallel Execution Concurrent agent execution with asyncio.gather
๐Ÿ’พ Append-Only Ledger WORM (Write-Once-Read-Many) JSON storage

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๐Ÿ–ฅ๏ธ Developer Console (FastAPI)               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ POST /run    โ”‚  โ”‚ GET /        โ”‚  โ”‚ GET /health          โ”‚  โ”‚
โ”‚  โ”‚ Task Execute โ”‚  โ”‚ Console UI   โ”‚  โ”‚ Health Check         โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๐Ÿง  Orchestrator (The Brain)                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚  Task โ†’ ResearchAgent โ†’ SummarizerAgent โ†’ Final Output    โ”‚ โ”‚
โ”‚  โ”‚         (parallel execution support)                       โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ–ผ                   โ–ผ                   โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๐Ÿ“š ResearchAgent โ”‚ โ”‚ ๐Ÿ“ SummarizerAgentโ”‚ โ”‚ ๐Ÿ”ง Future Agents โ”‚
โ”‚ - Web Search     โ”‚ โ”‚ - Text Summary   โ”‚ โ”‚ - Critic         โ”‚
โ”‚ - DuckDuckGo     โ”‚ โ”‚ - Doc Analysis   โ”‚ โ”‚ - Validator      โ”‚
โ”‚ - Serper API     โ”‚ โ”‚                  โ”‚ โ”‚ - Planner        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                              โ”‚
                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๐Ÿ”’ Ledger (The Vault)                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ LedgerStoreโ”‚  โ”‚ Merkle Treeโ”‚  โ”‚ ECDSA Sign โ”‚  โ”‚ JSON     โ”‚  โ”‚
โ”‚  โ”‚ Entries    โ”‚โ†’ โ”‚ Root Hash  โ”‚โ†’ โ”‚ Blocks     โ”‚โ†’ โ”‚ Storage  โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ Proje Tructure

AgentMask/
โ”œโ”€โ”€ pyproject.toml              # Proje konfigรผrasyonu & baฤŸฤฑmlฤฑlฤฑklar
โ”œโ”€โ”€ README.md                   # this file
โ”‚
โ”œโ”€โ”€ src/                        # Ana kaynak kod
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ orchestrator.py         # Multi-agent koordinasyonu
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ agents/                 # Agent modรผlleri
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ base.py             # BaseAgent abstract class
โ”‚   โ”‚   โ”œโ”€โ”€ research_agent.py   # Web search agent
โ”‚   โ”‚   โ”œโ”€โ”€ summarizer_agent.py # Text summarization agent
โ”‚   โ”‚   โ””โ”€โ”€ parallel.py         # Parallel execution utilities
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ ledger/                 # Kriptografik denetim katmanฤฑ
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ merkle.py           # Merkle tree calculation
โ”‚   โ”‚   โ”œโ”€โ”€ store.py            # Append-only ledger storage
โ”‚   โ”‚   โ””โ”€โ”€ signing.py          # ECDSA imzalama
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ tools/                  # Harici araรงlar
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ””โ”€โ”€ searcher.py         # Web search abstraction
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ web/                    # Web arayรผzรผ
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ””โ”€โ”€ app.py              # FastAPI application
โ”‚
โ””โ”€โ”€ tests/                      # Test dosyalarฤฑ
    โ”œโ”€โ”€ __init__.py
    โ”œโ”€โ”€ test_agents.py          # Agent testleri
    โ”œโ”€โ”€ test_ledger.py          # Ledger & signing testleri
    โ”œโ”€โ”€ test_search_integration.py  # Search entegrasyon testleri
    โ””โ”€โ”€ test_web_console.py     # Web API testleri

๐Ÿš€ Installation

Requirements

  • Python 3.10+
  • pip

Steps

# 1. Clone the repo
git clone [https://github.com/yourusername/AgentMask.git](https://github.com/yourusername/AgentMask.git)
cd AgentMask

# 2. Create virtual environment
python -m venv .venv

# 3. Activate
# Windows:
.\.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate

# 4. Install dependencies
pip install -e ".[dev]"

๐Ÿงช Running Tests

Bash

Run all tests

..venv\Scripts\python.exe -m pytest -v

Run a specific test file

..venv\Scripts\python.exe -m pytest tests/test_agents.py -v

Run with coverage

..venv\Scripts\python.exe -m pytest --cov=src -v Test Results: โœ… 44 tests passed


๐Ÿ–ฅ๏ธ Running Developer Console

Bash

Start the web server

cd src/web uvicorn app:app --reload --port 8000

Open in browser

http://localhost:8000

๐ŸŽจ Terminal-Style Hacker UI The Developer Console features a terminal-style interface that emphasizes security and transparency:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โŒ˜ AgentMask Terminal โ–ˆ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ [root@agentmask]$ Enter query... โ–ˆ [โ–บ EXECUTE] โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ > EXECUTION LOG_ โ”‚ > AGENT PIPELINE GRAPH_ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๐Ÿ” MERKLE ROOT HASH: โ”‚ โ”‚ โ”‚ [Flow] [Sequence] [Merkle] โ”‚ โ”‚ โ”‚ โ”‚ a7f3b2c1d4e5f6... โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ ๐Ÿ“ฅ โ†’ ๐Ÿ“š โ†’ ๐Ÿ“ โ†’ โœ… โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€ STEP 1 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ Mermaid.js ile interaktif โ”‚ โ”‚ โ”‚ โ”‚ [RESEARCH] โ”‚ โ”‚ โ”‚ graph visualization โ”‚ โ”‚ โ”‚ โ”‚ SHA256: 8a4f2b... โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ > View I/O Data_ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€ STEP 2 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ [SUMMARIZER] โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ SHA256: c3d7e1... โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜


### Console Features
Feature                  Description
๐Ÿ–ฅ๏ธ Terminal Aesthetic    Neon green (#00ff41) + red (#ff0040) hacker theme
๐Ÿ“Š Flow Graph            Agent pipeline visualization (Mermaid.js)
๐Ÿ”„ Sequence Diagram      Agent communication sequence
๐ŸŒณ Merkle Tree View      Interactive hash tree visualization
๐Ÿ“‹ Execution Log         Detailed I/O log for each step
๐Ÿ” Merkle Root           Cryptographic verification hash
โšก Real-time             Real-time result display
๐Ÿ“ฑ Responsive            Mobile responsive design

---

## ๐Ÿ”ง API Endpoints

| Endpoint | Method | Description |
|----------|--------|----------|
| `/` | GET | Developer Console UI |
| `/run` | POST | Execute task, get results |
| `/health` | GET | Health check |

### POST /run Example

```bash
curl -X POST http://localhost:8000/run \
  -H "Content-Type: application/json" \
  -d '{"query": "AI in healthcare diagnosis"}'

Response:

{
  "success": true,
  "task": {"query": "AI in healthcare diagnosis"},
  "steps": [
    {
      "step": 1,
      "agent": "research",
      "hash": "a1b2c3...",
      "output": {"results": [...]}
    },
    {
      "step": 2,
      "agent": "summarizer",
      "hash": "d4e5f6...",
      "output": {"summary": "..."}
    }
  ],
  "merkle_root": "abc123...",
  "total_steps": 2
}

๐Ÿ” Security Features

Merkle Tree Audit Trail

Every agent step is hashed with SHA-256 and added to a Merkle tree:

from ledger.merkle import compute_merkle_root, hash_leaf

# Hash a single leaf
leaf_hash = hash_leaf("agent action data")

# Compute Merkle root
leaves = ["step1", "step2", "step3"]
root = compute_merkle_root(leaves)

ECDSA Block Signing

Blocks are signed using the secp256k1 curve:

from ledger.signing import ECDSASigner

# Generate key pair
signer = ECDSASigner()

# Sign
signature = signer.sign(block_hash)

# Verify
is_valid = signer.verify(block_hash, signature)

Append-Only Ledger

from ledger.store import LedgerStore

# Create Ledger
store = LedgerStore(storage_path="ledger.json")

# Add Entry
store.add_entry("search", "research", input_data, output_data)

# Create and sign block
block = store.create_block(signer=signer)

# Verify chain
is_valid, message = store.verify_chain()

๐Ÿ”ฎ Roadmap

  • Stage 1: Multi-Agent core implementation
  • Stage 2: Developer Console (FastAPI + UI)
  • Stage 3: Gerรงek Web Search integration
  • Stage 4: Ledger, ECDSA Signing, Parallel Agents
  • Stage 5: LLM integration (OpenAI/Anthropic)
  • Stage 6: Critic & Validator agents
  • Stage 7: WebSocket real-time streaming
  • Stage 8: Distributed ledger (multi-node)

๐Ÿ“„ License

MIT License - See the LICENSE file for details.


๐Ÿ›ก๏ธ AgentMask - Trust Through Transparency
"Every decision, every step, cryptographically verifiable."