Project hub · for builders, testers & judges

Aitch — an autonomous, paid tutoring agent.

A pay-per-session AI tutoring agent that owns its on-chain identity and wallet, takes payment with zero human oversight below its spend cap, and returns an automated study pack. Built on OpenClaw · ERC-8004 · x402 · GOAT Network mainnet.

A deterministic money engine, wrapped in a conversational agent.

the agent

Conversation & gating

An OpenClaw skill (SKILL.md) runs the session: self-disclosure, payment gating, guardrails, and study-pack delivery. It orchestrates — it never holds a private key.

the engine

Deterministic settlement

All money movement lives in a Node engine the agent shells out to. On-chain guards, typed error codes, dry-run by default. Auditable, testable, out of LLM improvisation.

the identity

ERC-8004 Agent #77

A portable on-chain identity carrying the agent's wallet and reputation, discoverable across ecosystems. Verifiable at 8004scan.io/agents/goat/77.

the deliverable

Automated study pack

The CPOL507 GitHub Actions pipeline turns lecture audio + slides into a searchable, structured master PDF — the thing the student actually pays for.

The order flow.

Payments use goatx402-sdk-server — an order-based API client (GoatX402Client with baseUrl). The SDK issues orders and watches the chain; the on-chain ERC-20 transfer moves the money.

# the load-bearing loop (payments/session/pay-session.mjs) createOrder({ dappOrderId, chainId: 2345, tokenSymbol: "USDC", fromAddress, amountWei }) → guard: flow == "ERC20_DIRECT" && payToAddress == AGENT_ADDRESS usdc.transfer(order.payToAddress, order.amountWei) // ethers v6, payer key from env client.waitForConfirmation(order.orderId) // poll + status pings (settlement is slow) client.getOrderProof(order.orderId) // signed proof: from, to, tx_hash, flow
two-wallet model

Payer (student) ≠ merchant (Aitch), enforced in code. A self-transfer risks the indexer not confirming cleanly.

two-tier guardrail

Autonomous below the 0.1 USDC.e cap; explicit typed CONFIRM PAYMENT above it — plus a separate engine flag. Defense in depth.

latency handling

On timeout the engine surfaces order status and never sends a second transfer. Latency is an expected branch, not a failure.

Live settlement — Stage 1

A real payment has executed on GOAT mainnet: 1 USDC.e, ERC20_DIRECT, block 13802564, payer 0xBB08…7087 → merchant 0x09eE…c6bF. The indexer reconciliation lagged past the poll window; the on-chain transfer is irreversible and confirmed. Documented honestly as a known latency characteristic — the engine's timeout branch handles exactly this.

Stage 1 → Stage 2 → pilot.

Stage 1 · now

Foundation live

  • ERC-8004 identity registered (Agent #77)
  • x402 settlement executed on mainnet
  • Payment engine + guardrails tested
  • Study-pack pipeline running (CPOL507)
  • Seed-user definition & growth metrics defined
Stage 2 · next

Wire & validate

  • Finish Telegram session state machine
  • Onboard 10–20 seed users
  • Track paid sessions / week (north star)
  • Drive down settlement latency (UX)
  • Rewrite Agent Card for discovery (GEO)
Pilot · after

Repeatable habit

  • Prove 7-day return rate on the wedge
  • Expand beyond the origin cohort by course shape
  • Multiple session tiers by pack depth
  • On-chain reputation accrual on Agent #77

Seed-user definition and the full growth-metrics proposal live in the repository under docs/SEED_USERS.md and docs/GROWTH_METRICS.md.

Built by a student who lived the problem.

Harshil — builder

Toronto Metropolitan University student. Built the underlying study-pack pipeline for their own lecture-heavy course (CPOL507) before turning it into an agent. The product insight comes from the specific moment existing tools failed — not a market report.

The "unfair insight": the builder is the seed user.

Program

OpenClaw Summer Builder Bootcamp 2026 — 8 weeks, 12 selected teams building and validating autonomous agents that hold identity and transact on-chain.

  • Settlement infrastructure: GOAT Network (Bitcoin L2)
  • Identity standard: ERC-8004
  • Payments: x402

Talk to the agent.

As a user

Aitch is in private testing. Join the waitlist with your course code and we'll message you when it opens. The session flow: /start discloses what it does and what a session costs — free — then /start_session begins the paid loop.

Join the waitlist →

As a developer

Clone the repo, npm install, copy .env.example.env, and run the read-only preflight before anything moves funds:

node payments/diagnostics/balance-check.mjs node payments/diagnostics/merchant-check.mjs node payments/session/pay-session.mjs # dry run