Skip to content

jiayaoqijia/Ottie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ottie Banner

Ottie

The agent runtime that proves what it did.

Website Go License ERC-8004 Demos


Ottie is the only AI agent where every decision has a receipt. A self-evolving agent runtime that learns from tasks, makes every side-effecting action auditable and crash-recoverable, and enforces authorization at compile time — not at 3am in production. One Go binary. 28 skills. Zero dependencies.

Website · One-Click Launch · Demo Videos · 8004scan Profile

Why Ottie?

No other agent combines these five properties. Most have zero.

Property What it means Closest competitor
Deterministic replay Per-turn execution manifest with prompt hash, tool schema hash, and provider request IDs. Any decision can be reconstructed bit-for-bit. LangGraph checkpoints (coarser, no cryptographic pinning)
Write-ahead action ledger Every side-effecting tool dispatch wrapped in Prepare/Commit/Abort rows. Crash between dispatch and result? Recovery at startup. None. No agent ships database-style transactional guarantees.
Compile-time authorization Go phantom-typed PrincipalContext[C Capability] — unauthorized wallet writes are rejected by go build, not a runtime check. Arcade AI (OAuth, runtime only). Impossible in Python/TS.
Self-evolving skills Learns from tasks, packages as reusable skills, human-consented review before activation. Gets smarter every day — but only with your approval. Hermes Agent (learning loop, but no ledger/replay/auth triad)
Single Go binary ~24 MB, zero CGO, sub-second startup. No Python, no virtualenv, no Docker required. Air-gapped and edge-deployable. No complete agent ships as one static binary with 28 skills.

Features

  • Self-evolving skills — learns from tasks, packages approaches as reusable skills with human-consented review; 28 skills across 7 domain categories
  • Auditable replay — per-turn execution manifest captures prompt hash, tool schema hash, provider request IDs, and model ID; every LLM call including retries and fallback attempts is recorded
  • Crash-proof actions — write-ahead action ledger with Prepare/Commit/Abort for every side-effecting tool; orphaned intents surface at startup for reconciliation
  • Compiler-verified safety — phantom-typed PrincipalContext[C Capability] with Go generics; unauthorized high-privilege tool calls fail at go build, not in production
  • 28 skills in 7 categoriescrypto/ (wallets, CEX, research), defi/ (swap, lending, staking, yield, Lido MCP), identity/ (ERC-8004, Self Agent ID), payments/ (Tempo, MPP), safety/ (ClawWall, prompt injection guard), research/ (Polymarket, Farcaster), meta/ (skill management)
  • 14-reason error classifier — typed FailoverReason with recovery hints (ShouldCompress, ShouldFallback, ShouldRotateCredential) driving the fallback chain
  • 13+ channels — Telegram, Discord, Slack, Signal, WhatsApp, Matrix, QQ, DingTalk, LINE, WeCom, Feishu, IRC
  • One binary, zero deps — single Go binary (~24 MB), zero CGO, sub-second startup, air-gapped deployable
  • Multi-agent swarm — sub-agent spawning via unified delegate tool, multi-bot coordination
  • On-chain verifiedERC-8004 Agent #1988, deployed contracts, real Uniswap swaps on Sepolia
  • Privacy layer — Venice AI zero-retention inference, Railgun ZK-SNARK private transfers

On-Chain Artifacts

Artifact Explorer
ERC-8004 Agent #1988 8004scan.io
Uniswap ETH→USDC Swap sepolia.etherscan.io
AgentTreasury Contract sepolia.etherscan.io
ERC-8004 Registration TX sepolia.etherscan.io

Synthesis Hackathon Demos

All 10 track demo videos — each recorded with real Ottie agent calls, step-by-step operations.

Track Demo
Lido MCP Server 10 ops: APR, stats, balance, stake, wrap, unwrap, withdraw, governance, vault health
Uniswap Swap Real ETH→USDC swap on Sepolia via Trading API
Venice AI Private Agents Model listing, zero-retention inference, on-chain action
Let the Agent Cook 5-step autonomous: discover → plan → execute → verify → report
ERC-8004 Agent Identity NFT mint, 8004scan verification, reputation registry
stETH Agent Treasury Contract deploy, deposit, yield query, permission controls
Vault Monitor + Telegram APR vs Aave benchmark, alert generation
Self Agent ID ZK proof-of-human registration flow
ERC-8183 Agentic Commerce Job escrow creation, evaluator attestation
Open Track Full capability showcase with live data

37/37 E2E tests passing: bash demos/test-onchain.sh

Quick Start

git clone https://github.com/jiayaoqijia/ottie.git && cd ottie
make build
./build/ottie onboard
./build/ottie gateway
Lido MCP Server (14 tools)

A FastMCP server (mcp-servers/lido-mcp/server.py) implementing the full Lido staking protocol:

Tool Type Description
lido_apr read stETH APR (7-day SMA) from Lido API
lido_stats read Protocol stats: TVL, holders, market cap
lido_balance read On-chain stETH balance for any address
lido_exchange_rate read wstETH/stETH exchange rate (on-chain)
lido_rewards read Reward history for an address
lido_withdrawal_status read Withdrawal queue status
lido_governance_proposals read Snapshot governance proposals
lido_stake write+dry_run Stake ETH → stETH
lido_wrap write+dry_run Wrap stETH → wstETH
lido_unwrap write+dry_run Unwrap wstETH → stETH
lido_request_withdrawal write+dry_run Request stETH withdrawal
lido_vote write+dry_run Vote on Snapshot proposals
lido_vault_health read Compare APR vs Aave benchmark
lido_alert_check read Evaluate alert conditions

All write operations support dry_run=true for simulation via eth_call.

AgentTreasury Smart Contract

Deployed Solidity contract (contracts/AgentTreasury.sol) — humans deposit wstETH, agents can only spend accrued yield. Principal is locked.

  • deposit(amount, agent) — human deposits, authorizes agent
  • queryYield(depositor) — calculate available yield from exchange rate delta
  • spendYield(depositor, recipient, amount) — agent spends yield only
  • withdrawPrincipal() — depositor-only withdrawal
  • setAllowedRecipient(address, bool) — whitelist spending targets
  • setPerTxCap(uint256) — maximum per-transaction cap

Deployed on Sepolia: 0xc4EB945689E0A13832004a44C0A3292a33E2Fec0

Crypto Skills (36 total)
Layer Skill Capabilities APIs
Market Intelligence crypto-market-data Prices, trending, market cap, Fear & Greed, TVL CoinGecko, DefiLlama
crypto-cex Order books, funding rates, tickers across 6 exchanges Binance, Coinbase, Kraken, Bybit, Gate.io, Bitget
crypto-research Contract verification, perps, governance Etherscan, Hyperliquid, Snapshot
On-Chain Operations crypto-wallet Balances, holdings, tx history, approvals, ENS Public RPCs, Etherscan
defi-swap DEX swap quotes, price routing, slippage Uniswap, ParaSwap, Jupiter, 1inch
Yield & Risk defi-lending Lending rates, APY, health factors Aave, Morpho, Compound, DefiLlama
defi-staking Liquid staking APR, exchange rates Lido, Rocket Pool, DefiLlama
defi-yield Yield farming, APY comparison DefiLlama, Pendle, Curve
Infrastructure lido-mcp 14-tool MCP server for Lido staking Lido API, On-chain RPCs, Snapshot
lido-vault-monitor Vault position monitoring & alerts DefiLlama, Lido API, Aave
steth-treasury Yield-bearing agent budgets, principal-protected wstETH, Lido
Privacy & Identity venice-private-ai Zero-retention LLM inference Venice AI API
privacy-layer ZK-SNARK private transfers, egress monitoring Railgun Protocol
self-agent-id ZK proof-of-human agent identity, soulbound NFTs Self Protocol, Celo
8004 ERC-8004 agent identity, reputation, validation Agent0 SDK, 8004scan
Payments mpp Machine-to-machine payments via HTTP 402 MPP Protocol, Tempo
tempo Paid API discovery and requests with auto-payment Tempo Wallet

Supported networks: Ethereum, Arbitrum, Optimism, Base, Polygon, BSC, Avalanche, Fantom, Solana

Configuration

Config lives at ~/.ottie/config.json:

{
  "model_list": [
    {
      "model_name": "claude-sonnet-4.6",
      "model": "anthropic/claude-sonnet-4.6",
      "api_key": "sk-ant-your-key"
    }
  ],
  "agents": {
    "defaults": {
      "model": "claude-sonnet-4.6"
    }
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "YOUR_BOT_TOKEN",
      "allow_from": ["YOUR_USER_ID"]
    }
  },
  "tools": {
    "mcp": {
      "enabled": true,
      "servers": {
        "lido-mcp": {
          "enabled": true,
          "command": "python3",
          "args": ["mcp-servers/lido-mcp/server.py"]
        }
      }
    }
  }
}

CLI

Command Description
ottie onboard Initialize config & workspace
ottie agent -m "..." One-shot chat
ottie agent Interactive chat
ottie gateway Start gateway (channels + heartbeat)
ottie status Show status
ottie cron list List scheduled jobs

Chat Channels

13+ messaging platforms: Telegram · Discord · Slack · Signal · WhatsApp · Matrix · QQ · DingTalk · LINE · WeCom · Feishu · IRC · Custom Webhooks

Multi-Agent Swarm

Mode A — Sub-Agents (single process): one orchestrator spawns specialized workers internally via sessions_spawn.

Mode B — Multi-Bot Telegram (multiple processes): separate Ottie instances coordinate via shared ProjectBoard in a Telegram group.

{
  "agents": {
    "list": [
      { "id": "orchestrator", "default": true, "role": "orchestrator",
        "subagents": { "allow_agents": ["researcher", "coder"] } },
      { "id": "researcher", "role": "leaf",
        "tools_allow": ["web_search", "web_fetch", "read_file"] },
      { "id": "coder", "role": "leaf",
        "tools_allow": ["read_file", "write_file", "edit_file", "exec"] }
    ]
  }
}
Docker & Build
# Docker
git clone https://github.com/jiayaoqijia/ottie.git && cd ottie
docker compose -f docker/docker-compose.yml --profile gateway up

# Build from source
make build              # Current platform
make build-all          # All platforms
make test               # Run tests

Acknowledgments

Built on nanobot, OpenClaw, and PicoClaw. Integrates with CoinGecko · DefiLlama · Uniswap · Lido · Aave · Venice AI · ERC-8004 · Self Protocol · Snapshot · FastMCP and more.

License

AGPL-3.0 — see LICENSE for details.

About

Self-Evolving Agent for Ethereum and Crypto

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors