Skip to main content

AEOS Protocol

The economic operating system for autonomous AI agents.

Identity. Contracts. Disputes. Risk. Settlement. Consensus. — Everything an AI agent needs to exist as an economic entity.

Tests PyPI Python TypeScript Rust License


The Problem

Stripe launched Machine Payments Protocol on March 18, 2026. Visa shipped agent CLI. Mastercard, Google, Coinbase — everyone is racing to let AI agents send money.

But payments are 5% of what an economic actor needs.

When a human starts a business, there's an entire infrastructure: LLC formation, bank accounts, contracts, insurance, compliance, tax filing. For AI agents, none of this exists.

We built all of it.

Install

pip install phanes

What AEOS Does

Layer What It Solves Status
Identity DID-based agent identity, selective disclosure, delegation chains ✅ Complete
Contracts Binding agreements, escrow, milestone release, penalty enforcement ✅ Complete
Disputes Auto-resolution, VRF arbitrator selection, confidence-weighted voting ✅ Complete
Risk Behavioral profiling, circuit breakers, counterparty scoring, insurance pools ✅ Complete
ML Engine Isolation Forest anomaly detection, Markov models, entropy drift detection ✅ Complete
Graph Intel PageRank trust, collusion detection, cascade simulation, Sybil detection ✅ Complete
Threshold Crypto Shamir secret sharing, t-of-n signatures, time-lock puzzles ✅ Complete
Tokenization Programmable tokens with decay, staking, accrual, governance ✅ Complete
State Channels Off-chain micro-transactions, cooperative/force close ✅ Complete
BFT Consensus PBFT distributed ledger, view changes, quorum certificates ✅ Complete
Stripe Settlement PaymentIntent escrow, authorize-then-capture, refund on dispute ✅ Complete
USDC Settlement On-chain ERC-20 escrow on Ethereum, Base, Arbitrum, Polygon ✅ Complete
Persistence SQLite WAL-mode, ACID transactions, schema migrations, crash recovery ✅ Complete
MCP Server 11 tools for Claude/GPT native integration via Model Context Protocol ✅ Complete
REST API FastAPI server, 17 endpoints ✅ Complete
TypeScript SDK Full client library with crypto, identity, contracts, typed HTTP client ✅ Complete
Bulletproofs Rust Ristretto255 zero-knowledge range proofs with Python FFI ✅ Complete
Formal Verification TLA+ specs for contract escrow and PBFT consensus safety proofs ✅ Complete
Ledger Append-only hash chain, Merkle proofs, full audit trail ✅ Complete

Quick Start

Create an agent and sign a contract:

from aeos.identity import AgentIdentity, AgentType, CapabilityScope, AuthorityBounds
from aeos.contracts import ContractFactory

alice = AgentIdentity.create(
    controller_did="did:aeos:acme-corp",
    agent_type=AgentType.AUTONOMOUS,
    capabilities={CapabilityScope.TRANSACT, CapabilityScope.SIGN_CONTRACT},
    bounds=AuthorityBounds(max_transaction_value=100_000_00),
)

bob = AgentIdentity.create(
    controller_did="did:aeos:compute-inc",
    agent_type=AgentType.AUTONOMOUS,
    capabilities={CapabilityScope.TRANSACT, CapabilityScope.SIGN_CONTRACT},
    bounds=AuthorityBounds(max_transaction_value=100_000_00),
)

contract = ContractFactory.service_agreement(
    alice.did, bob.did, "ML inference job", price=25_000_00
)
contract.sign(alice)
contract.sign(bob)
# Contract is now ACTIVE with $25,000 in escrow

Run the API server:

pip install phanes[server]
phanes-server
# → http://localhost:8420/docs

Use the MCP server (Claude Desktop / any MCP client):

{
  "mcpServers": {
    "aeos": {
      "command": "python",
      "args": ["-m", "aeos.mcp_server"]
    }
  }
}

Stripe Settlement:

from aeos.settlement import StripeSettlementEngine

engine = StripeSettlementEngine("sk_test_...")
result = engine.create_escrow("contract-001", 25000, "usd", "did:alice", "did:bob")
engine.capture_escrow("contract-001")    # On fulfillment
engine.refund_escrow("contract-001")     # On dispute

USDC On-Chain Settlement:

from aeos.usdc_settlement import USDCSettlementEngine, Chain

engine = USDCSettlementEngine(chain=Chain.BASE)
escrow = engine.create_escrow("contract-001", 25000.00,
    "0xPayerAddress...", "0xPayeeAddress...",
    payer_did="did:alice", payee_did="did:bob")

approve_tx = engine.build_approve_tx(escrow)   # Payer signs
lock_tx = engine.build_lock_tx(escrow)         # Lock funds
release_tx = engine.build_release_tx(escrow)   # Release to payee

BFT Consensus:

from aeos.bft_ledger import DistributedLedger

ledger = DistributedLedger(num_replicas=4)  # Tolerates 1 Byzantine fault
result = ledger.submit({"type": "agent_registered", "did": "did:aeos:alice"})
assert result["committed"]

Persistent Storage:

from aeos.persistence import StorageEngine

db = StorageEngine("aeos_data.db")  # SQLite WAL mode, ACID
db.put_agent({...})
db.put_contract({...})
db.append_ledger(...)  # Immutable, hash-chained
ok, _ = db.verify_ledger_chain()  # Verify integrity

Docker Deployment:

docker compose up -d
# → http://localhost:8420/docs

TypeScript SDK:

import { AgentIdentity, AgentType, Capability, PhanesClient } from "@phanes/sdk";

const agent = AgentIdentity.create("did:aeos:corp", AgentType.AUTONOMOUS,
  [Capability.TRANSACT, Capability.SIGN_CONTRACT],
  { maxTransactionValue: 100_000_00 });

Run Tests

python tests/test_all.py
═══ CRYPTO PRIMITIVES ═══       (11 tests — incl. Fiat-Shamir tamper detection)
═══ IDENTITY ═══                (5 tests)
═══ CONTRACTS ═══               (3 tests)
═══ THRESHOLD CRYPTO ═══        (8 tests — incl. VSS tamper detection)
═══ TOKENIZATION ═══            (6 tests)
═══ STATE CHANNELS ═══          (5 tests)
═══ ML ENGINE ═══               (2 tests)
═══ GRAPH INTELLIGENCE ═══      (4 tests)
═══ DISPUTE RESOLUTION ═══      (1 test)
═══ RISK ENGINE ═══             (2 tests)
═══ LEDGER ═══                  (2 tests)
═══ BFT DISTRIBUTED LEDGER ═══  (8 tests)
═══ MCP SERVER ═══              (4 tests)
═══ SETTLEMENT ENGINE ═══       (3 tests)
═══ BULLETPROOFS FFI ═══        (3 tests — incl. tamper rejection)
═══ REST API SERVER ═══         (4 tests)
═══ PERSISTENCE ENGINE ═══      (5 tests)
═══ USDC ON-CHAIN SETTLEMENT ══ (6 tests — incl. ChainClient)
═══ CROSS-MODULE ═══            (1 test)

══════════════════════════════════════
  RESULTS: 84 passed, 0 failed
══════════════════════════════════════

Architecture

┌─────────────────────────────────────────────────────────────┐
│              MCP Server (11 tools)  │  REST API (17 routes) │
├─────────────────────────────────────────────────────────────┤
│  Identity  │ Contracts │ Disputes │  Risk  │ Tokenization   │
├────────────┼───────────┼──────────┼────────┼────────────────┤
│  ML Engine │   Graph Intelligence  │ State Channels         │
├─────────────────────────────────────────────────────────────┤
│  Threshold Crypto  │  Bulletproofs (Rust FFI)               │
├─────────────────────────────────────────────────────────────┤
│            Cryptographic Primitives (Ed25519)                │
├─────────────────────────────────────────────────────────────┤
│   BFT Consensus (PBFT)   │   Stripe + USDC Settlement      │
├─────────────────────────────────────────────────────────────┤
│      Persistent Storage (SQLite WAL)  │  Immutable Ledger   │
└─────────────────────────────────────────────────────────────┘

Cryptographic Foundations

  • Signatures: Ed25519 (RFC 8032) via PyNaCl/cryptography
  • Commitments: SHA-256 Pedersen-style with blinding factors
  • Key Derivation: HKDF-SHA256 for deterministic child keys
  • Encryption: AES-256-GCM authenticated encryption
  • VRF: Ed25519-based verifiable random function
  • Merkle Trees: SHA-256 with domain separation (leaf vs. internal)
  • Secret Sharing: Shamir over GF(L) with Lagrange interpolation
  • Threshold Sigs: t-of-n via polynomial evaluation on shares
  • Range Proofs: Bulletproofs (Ristretto255, Merlin transcripts) via Rust FFI
  • Consensus: PBFT with Ed25519-signed quorum certificates
  • Formal Verification: TLA+ specs with safety and liveness proofs

Comparison

Feature Stripe MPP Skyfire KYA Google AP2 AEOS
Agent payments ✅ ✅ ✅ ✅ (Stripe + USDC)
Agent identity ❌ ✅ Partial ✅
Binding contracts ❌ ❌ ❌ ✅
Escrow + milestones ❌ ❌ ❌ ✅
Dispute resolution ❌ ❌ ❌ ✅
Risk engine ❌ ❌ ❌ ✅
Anomaly detection (ML) ❌ ❌ ❌ ✅
Threshold crypto ❌ ❌ ❌ ✅
State channels ❌ ❌ ❌ ✅
Graph intelligence ❌ ❌ ❌ ✅
BFT consensus ❌ ❌ ❌ ✅
Zero-knowledge proofs ❌ ❌ ❌ ✅ (Bulletproofs)
On-chain settlement ❌ ❌ ❌ ✅ (USDC multi-chain)
Database persistence N/A Unknown N/A ✅ (SQLite WAL)
Formal verification ❌ ❌ ❌ ✅ (TLA+)
MCP integration ❌ ❌ ❌ ✅
TypeScript SDK N/A ❌ N/A ✅
Security audit N/A Unknown Unknown ✅
Immutable audit trail ❌ Partial Partial ✅

Repository Structure

phanes/
├── aeos/                        # Python protocol (19 modules)
│   ├── crypto_primitives.py     # Ed25519, Pedersen, Merkle, VRF, AES-GCM
│   ├── identity.py              # DID-based identity, delegation, registry
│   ├── contracts.py             # Multi-sig contracts, escrow, templates
│   ├── disputes.py              # 3-tier resolution, VRF arbitration
│   ├── risk.py                  # Behavioral profiling, circuit breakers
│   ├── ml_engine.py             # Isolation Forest, Markov, drift detection
│   ├── graph_intelligence.py    # PageRank, Sybil detection, cascades
│   ├── threshold_crypto.py      # Shamir SSS, t-of-n sigs, time-locks
│   ├── tokenization.py          # Programmable tokens with decay/staking
│   ├── state_channels.py        # Off-chain bilateral channels
│   ├── ledger.py                # Append-only hash chain
│   ├── bft_ledger.py            # PBFT consensus (Castro-Liskov 1999)
│   ├── persistence.py           # SQLite WAL, ACID, schema migrations
│   ├── settlement.py            # Stripe PaymentIntent escrow
│   ├── usdc_settlement.py       # On-chain USDC escrow (multi-chain)
│   ├── mcp_server.py            # MCP server (11 tools, JSON-RPC/stdio)
│   ├── bulletproofs_ffi.py      # Python→Rust FFI bridge
│   └── server.py                # FastAPI REST server (17 endpoints)
├── ts-sdk/                      # TypeScript SDK (22 tests)
├── bulletproofs/                 # Rust Bulletproofs (13 tests)
├── formal/                      # TLA+ formal verification specs
│   ├── AEOSContract.tla         # Contract escrow safety + liveness
│   └── AEOSPBFT.tla             # PBFT agreement + validity
├── tests/test_all.py            # 77 tests across all modules
├── Dockerfile                   # Production deployment
├── docker-compose.yml           # Local dev with persistent volume
├── fly.toml                     # Fly.io deployment config
├── demo.py                      # End-to-end demonstration
├── AEOS_Whitepaper_v0.1.pdf     # Technical whitepaper
├── AEOS_Security_Audit_v0.1.pdf # Security audit (STRIDE, 18 findings)
└── pyproject.toml               # pip install phanes

Roadmap

  • Core protocol (19 modules, 9,000+ lines Python)
  • REST API server (17 endpoints)
  • Technical whitepaper
  • 84-test suite (all modules + tamper detection)
  • TypeScript/Node SDK (22 tests)
  • MCP server for Claude/GPT (11 tools)
  • Stripe settlement hooks (authorize-capture escrow)
  • USDC on-chain settlement (Ethereum, Base, Arbitrum, Polygon)
  • Production Bulletproofs (Rust FFI, 13 tests)
  • BFT distributed ledger (PBFT, 4–13 node clusters)
  • Database persistence (SQLite WAL, ACID, migrations)
  • Security audit (STRIDE threat model, 18 findings)
  • TLA+ formal verification (contract + PBFT safety proofs)
  • Docker + Fly.io deployment configs
  • Published to PyPI (pip install phanes)
  • Hosted public deployment
  • Formal verification (Coq proofs)
  • Multi-region BFT deployment

License

Apache 2.0

Metadata

Release files for phanes 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for phanes 0.3.1
File Size Uploaded
phanes-0.3.1.tar.gz 151.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for phanes 0.3.1
File Interpreter ABI Platform
phanes-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 245.6 kB

Release files / phanes-0.3.1.tar.gz

Download URL phanes-0.3.1.tar.gz
Size 151.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ff1a8aad53bafd9d83e369f8b02d96a15399d730e0b67de96d183b578ac35fb5
BLAKE2b-256 checksum
How to use checksums
f075787250c8e40f8a55ab52e86947203e15d366c6a9d2bea03bb1b264b5ef6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / phanes-0.3.1-py3-none-any.whl

Download URL phanes-0.3.1-py3-none-any.whl
Size 93.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d825a7d42d97b40293d86b4baf3863cb2e0019771e20dc07bd0f45606b253c3e
BLAKE2b-256 checksum
How to use checksums
3a0b27f4eadd47dc3b211293bc2fa075b13b47ee3a2c1a6aedc80ad20b90cb1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page