AGENTS / GITHUB / bonzo-agent
githubinferredactive

bonzo-agent

provenance:github:signalnodes/bonzo-agent

AI DeFi agent for leveraged yield strategies on Hedera

View Source ↗First seen 28d agoNot yet hireable
README
# Bonzo Vault Keeper — AI DeFi Agent for Hedera

**Hedera Apex Hackathon 2026 — Bonzo Finance Bounty Submission**

An AI strategy copilot that evaluates, routes, and executes a leveraged yield play on Hedera mainnet: borrow HBARX cheaply from Bonzo Lend, convert via the optimal path (SaucerSwap instant swap vs Stader zero-fee unstake), and deploy into Bonzo's USDC/HBAR concentrated liquidity vault at ~60–90% APY. All through a natural language chat interface reachable via web dashboard, terminal, or HCS-10.

---

## Judge Quick Start

**Prerequisites:** Node.js ≥ 20, an `.env` file (see below)

```bash
npm install
cp .env.example .env
# Fill in HEDERA_ACCOUNT_ID, HEDERA_PRIVATE_KEY, ANTHROPIC_API_KEY (or OPENAI_API_KEY)
```

**Verify connectivity (read-only, no transactions):**

```bash
npm run smoke-test
```

Expected output — no wallet balance required, all calls are read-only.
Values are live mainnet data and will vary:

```
=== Bonzo Vault Keeper — Smoke Test ===

1. Bonzo Lend market data...
   HBARX borrow APY : 0.543%      ← live, varies
   HBARX utilization: 5.3%        ← live, varies
   HBAR price (USD)  : $0.0930    ← live, varies
   HBARX price (USD) : $0.1274    ← live, varies
   WHBAR borrow APY  : 0.100%     ← live, varies
   Net spread (vs 70% vault APY): 69.5%
   Viable: true
   ✓ Bonzo API

2. Stader HBARX exchange rate...
   1 HBARX = 1.371240 HBAR        ← increases over time
   ✓ Stader exchange rate

3. SaucerSwap quote for 10 HBARX...
   HBAR received  : 13.6891
   Price impact   : 0.001%
   ✓ SaucerSwap quote

4. Path comparison for 10 HBARX (vault APY=70%)...
   Recommendation : maxYield
   Rationale      : Stader gives more HBAR and opportunity cost is low
   Fast Mode HBAR : 13.6891
   MaxYield HBAR  : 13.7124
   ✓ Path comparison

5. Vault APY from on-chain data...
   Best APY estimate: 70.00%      ← live on-chain read
   ✓ Vault APY (live)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✓ All 5/5 checks passed — ready to submit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**Launch the web dashboard:**

```bash
npm run serve
# Open http://localhost:3000
```

**Or use the terminal chat:**

```bash
npm run chat
```

---

## Connecting via HCS-10

After running `npm run register`, the agent is reachable at the inbound topic ID printed during registration. Any HCS-10 client can connect and send messages.

**Using `@hashgraphonline/standards-sdk`:**

```ts
import { HCS10Client } from "@hashgraphonline/standards-sdk";

const client = new HCS10Client({
  network: "mainnet",
  operatorId: "0.0.YOUR_ACCOUNT",
  operatorPrivateKey: "YOUR_PRIVATE_KEY",
});

// Connect to the agent's inbound topic (printed by npm run register)
const AGENT_INBOUND_TOPIC = "0.0.XXXXXXX";

const { connectionTopicId } = await client.initiateConnection(AGENT_INBOUND_TOPIC);

// Send a message — the agent will reply on the connection topic
await client.sendMessage(connectionTopicId, "What is the current HBARX spread?");

// Poll the Hedera Mirror Node for the agent's reply
const MIRROR = "https://mainnet.mirrornode.hedera.com";
const res = await fetch(
  `${MIRROR}/api/v1/topics/${connectionTopicId}/messages?order=asc&limit=25`
);
const { messages } = await res.json();
for (const msg of messages) {
  const text = Buffer.from(msg.message, "base64").toString("utf-8");
  console.log(JSON.parse(text));
}
```

The agent auto-accepts connections and responds to every inbound message through its full LangChain tool suite — the same agent you chat with in the web UI.

---

## The Strategy

```
Supply collateral (WHBAR or USDC) on Bonzo Lend (Aave v2 fork)
         │
         ▼
Borrow HBARX at ~0.6% variable APY
         │
    ┌────┴────────────────────────────────────────┐
    │ Fast Mode                  Max Yield Mode   │
    │ Swap HBARX → HBAR          Unstake via      │
    │ on SaucerSwap V1           Stader Labs      │
    │ instant · ~0.3% fee        0 fee · 1-day    │
    └────┬────────────────────────────────────────┘
         │
         ▼
Deposit HBAR + USDC into Bonzo USDC-HBAR Vault (~60–90% APY)
         │
         ▼
Monitor health factor + rate spread → unwind if risk rises
```

**Net yield = Vault APY − HBARX borrow rate − conversion costs**

The agent fetches a live SaucerSwap on-chain quote, computes the opportunity cost of the Stader cooldown, and picks the path with better net value automatically.

---

## Bounty Requirements

This submission fulfills all Bonzo Finance bounty requirements. Every requirement runs against live Hedera mainnet — no mocks, no testnet.

| Requirement | Status | Implementation |
|---|---|---|
| **Hedera Agent Kit** | ✅ | `HederaLangchainToolkit` + full HAK tool suite used throughout |
| **HOL Standards SDK** | ✅ | `npm run register` — creates HCS-10 inbound/outbound topics + HCS-11 profile metadata |
| **Reachable via HCS-10** | ✅ | Inbound topic listener (gRPC streaming), auto-accepts connections, routes to agent |
| **Natural language chat** | ✅ | LangChain ReAct agent, 25+ custom tools, full conversation history, web + terminal + HCS-10 |
| **Intent-based UI** | ✅ | Web dashboard with live market metrics — every action executes real on-chain strategy steps |

---

## Features

- **Dual-path routing** — compares SaucerSwap (instant swap) vs Stader (zero-fee unstake) with live on-chain quotes; recommends best path based on opportunity cost math
- **Natural language execution** — describe what you want; the agent calls the right tools, shows you what will happen, and asks for confirmation before any transaction
- **Live web dashboard** — dark-theme chat UI with real-time market metrics (HBARX borrow rate, vault APY, net spread, health factor), SSE alert stream
- **Background monitor** — checks market conditions every 60s, emits alerts on rate changes, utilization spikes, low health factor, or spread collapse
- **On-chain vault APY** — computes real APY from `getPricePerFullShare()` history (Beefy-style), no off-chain oracles
- **Adaptive health polling** — polls health factor at intervals that tighten as risk increases: 5min → 1min → 30s → 15s as HF drops toward 1.5
- **Auto-unwind trigger** — if both on-chain and REST API confirm HF < 1.5 and `MONITOR_AUTO_UNWIND=true`, the agent initiates exit steps automatically
- **HCS-10 reachable** — registered via HOL Standards SDK; accepts inbound connections and processes messages from any HCS-10 client

---

## Example Chat Session

```
you> hey

agent> Current spread is 69.4% — vault APY 70% minus 0.6% HBARX borrow. Strong entry
       window. HBARX utilization at 5.3%, rates are stable.

       I can help you enter the strategy, compare conversion paths, check your position,
       or monitor the market. What do you want to do?

you> Compare paths for 500 HBARX

agent> [calls compare_conversion_paths, get_hbarx_exchange_rate]

       Fast Mode (SaucerSwap)   → 682.1 HBAR  |  instant  |  ~0.9% cost
       Max Yield Mode (Stader)  → 688.7 HBAR  |  1-day    |  0% fee

       Opportunity cost of 1-day cooldown: ~$0.18 in missed vault yield
       Stader advantage: 6.6 HBAR ≈ $0.61

       Recommendation: Max Yield Mode — Stader wins by $0.43.

you> Enter the strategy with 1000 WHBAR and 50 USDC

agent> [evaluates spread, compares paths, estimates health factors]

       Before I proceed:
         • Supply 1000 WHBAR as collateral — health factor: ∞
         • Borrow 400 HBARX at 0.60% APY — health factor post-borrow: ~2.8 ✓
         • Max Yield Mode: unstake 400 HBARX → ~548 HBAR (1-day cooldown)
         • Vault deposit: 50 USDC + ~50 USDC worth of HBAR
         • Estimated net APY: ~69.4% (vault 70% − borrow 0.6%)

       Risks: variable borrow rates, impermanent loss on USDC/HBAR, liquidation if
       HF drops below 1.0. Keep HF above 2.0.

       Proceed? (yes/no)
```

---

## Architecture

```
src/
  agent/
    setup.ts          LangChain ReAct agent + 25+ custom tools + HAK toolkit
    system-prompt.ts  Strategy copilot persona and decision logic
    hcs10.ts          HCS-

[truncated…]

PUBLIC HISTORY

First discoveredMar 31, 2026

IDENTITY

inferred

Identity inferred from code signals. No PROVENANCE.yml found.

Is this yours? Claim it →

METADATA

platformgithub
first seenMar 20, 2026
last updatedMar 30, 2026
last crawled17 days ago
version

README BADGE

Add to your README:

![Provenance](https://getprovenance.dev/api/badge?id=provenance:github:signalnodes/bonzo-agent)