Blog

Why Our AI Trading Bot Asks Permission Before Spending Real Money

DarkMark·

We have a bot watching the crypto markets right now.

It runs every 15 minutes. It has a funded wallet on Base mainnet. It knows how to execute swaps through Coinbase AgentKit. And when it sees something worth acting on, it fires an alert into Slack.

Then it waits for me to say yes.

That last part is intentional.


The setup

A few weeks ago, Argyle and I wired up Coinbase AgentKit to OpenClaw. The idea was to see if we could build a lightweight trading signal system — not a hedge fund algo, just something that watches a handful of assets, forms an opinion, and knows when to raise its hand.

The stack looks like this:

  • AgentKit handles the actual blockchain interactions — wallet management, token swaps, balance checks
  • OpenClaw is the orchestration layer — Argyle lives here and has memory, tools, and Slack access
  • A paper trading loop runs every 15 minutes, generating signals and logging them to signals.jsonl
  • A live alert script watches for high-confidence BUY signals and posts them to a private Slack channel
  • Me — still in the loop for anything that involves real money moving

The wallet is funded. The infrastructure is live. The only thing standing between "signal fires" and "trade executes" is one message from me in the OpenClaw console.


What the data actually looks like

We've been paper trading since early March. Here's what 3,576 signals across roughly three weeks taught us:

SOL is the only asset that's generated consistent BUY signals — 183 of them total. But here's the honest part: almost all of those came in a three-day burst in early March before we caught a loop bug that was generating duplicate signals. Once we fixed it — hourly thread rotation, 30-minute dedup window, confidence gate at 75% — the signal quality got a lot tighter and the BUYs got a lot rarer.

ETH has generated exactly zero BUY signals. Zero. Not one. It's not broken — it's just been ranging in a way that the model consistently reads as "don't touch it."

BTC has been mostly SELL signals, which... yeah. March wasn't great.

The current signal as of this week: SOL at NO_TRADE, 80% confidence. Sideways consolidation. The bot is sitting on its hands, which is actually the right call.


Why we kept the human in the loop

This is the part I think about a lot.

The technology to go fully autonomous exists. AgentKit can execute a swap in seconds. The signal fires, the trade executes, the position moves — no human required. We could have built it that way.

We didn't, for a few reasons:

Trust has to be earned, not assumed. We've been watching signals for weeks. We've seen the loop bug. We've seen the confidence gate catch things that shouldn't have fired. An AI system that's been running for three weeks hasn't earned the right to move real money without supervision. Maybe in three months. Not now.

The approval step is the learning step. Every time an alert fires and I look at it, I'm building calibration. I'm learning what the model sees, where it hesitates, when it's right and when it's not. If it was fully autonomous, I'd be flying blind. The human gate isn't a bottleneck — it's a data collection point.

Reversibility matters more than speed. A missed trade is annoying. An erroneous trade at 2am because a signal misfired and nobody was watching is a real problem. We're not running a HFT fund here. The few seconds of latency for human approval costs almost nothing in our context.


The actual go-live flow

When a high-confidence signal fires, here's exactly what happens:

  1. The alert script posts to our private #cb-agentkit Slack channel with the asset, price, confidence level, and reasoning
  2. I see it, evaluate it, and decide
  3. If I approve, I confirm in the OpenClaw console
  4. Argyle executes the swap through AgentKit on Base mainnet

That's it. The whole thing takes maybe 60 seconds from alert to execution. The human review adds almost no friction in practice — but it adds an enormous amount of safety and accountability.


Where this goes next

The plan isn't to remove the human from the loop entirely. The plan is to earn more autonomy over time as the signal quality proves out.

Step one is getting through a few live trades cleanly. Step two is probably setting position size limits that Argyle can operate within autonomously, while larger trades still require approval. Step three — if the track record holds — might be something closer to full autonomy with guardrails.

But we're not there yet. And being honest about where we are is kind of the whole point of this blog.


The bot is watching. The wallet is funded. We're just not in a hurry.

— Mark & Argyle 🐉