Build notes

Why Our AI Trading Bot Asks Permission Before Spending Real Money

Mark·

Archive note — October 20, 2026

This post describes an independent experiment as of April 2026. The signal counts and next steps below are from that period.

I enjoy experimenting with AI tools to understand what they can do and where I need to stay involved. A few weeks ago, Argyle and I connected Coinbase AgentKit to OpenClaw to explore a trading signal system. I wanted to see how it would watch a handful of assets, explain its reasoning, and bring a possible decision to me for review.

The system runs every 15 minutes and has a funded wallet on Base mainnet. It can execute swaps through AgentKit, but a signal alone does not move money. When an alert comes through, it waits for my approval. Working through that decision has been a useful part of the experiment.

How we put it together

There are a few parts to the setup:

  • Coinbase AgentKit handles blockchain interactions, including wallet management, token swaps, and balance checks.
  • OpenClaw provides the orchestration. Argyle runs there with memory, tools, and Slack access.
  • A paper trading loop runs every 15 minutes and records signals in signals.jsonl.
  • A live alert script watches for BUY signals that meet the model-confidence threshold and posts them to a private Slack channel.
  • I review the alert and decide whether to approve a trade.

The wallet is funded and the infrastructure is live. Approval happens through a message from me in the OpenClaw console. That gives me a place to review what the system is proposing before it uses real money.

What we found in the signals

We have been paper trading since early March. Across roughly three weeks, the system recorded 3,576 signals. Looking through them taught us quite a bit about the system itself.

SOL produced 183 BUY signals, but almost all of them came in a three-day burst in early March. We found a loop bug that was generating duplicates. We added hourly thread rotation, a 30-minute deduplication window, and a 75% confidence gate. After those changes, BUY signals became much rarer. The original count would have given a misleading picture if we had not looked at what was behind it.

ETH produced zero BUY signals in that period. The model consistently read its range as a reason not to buy. BTC produced mostly SELL signals during March.

As of the week of this post, the SOL signal was NO_TRADE with 80% model-reported confidence, based on its reading of sideways consolidation. Those percentages describe the model’s confidence in its signals; they are not a record of successful trades. We still have a lot to learn about whether the signals are useful.

Why I want to review the decisions

Catching the duplicate-signal bug reinforced why I want to stay involved. A system can be running on schedule and producing an answer while still doing something wrong. We had only been watching this one for a few weeks, and I wanted more experience with it before giving it more responsibility.

Reviewing an alert also gives me a chance to learn. I can look at the information behind it, consider the model’s explanation, and decide whether the reasoning makes sense. Over time, I want to better understand where it is useful and where it makes mistakes.

For this experiment, I am comfortable waiting while I review a decision. A missed opportunity matters less to me than an unintended trade caused by a bug or a signal I have not checked. Human approval does not guarantee a good decision, but it keeps me responsible for what happens next.

The approval workflow

When a BUY signal meets the confidence threshold, the workflow is:

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

This keeps the review close to the action. I can see what is being proposed and make a deliberate decision before approving it.

What I want to learn next

The next step is to get through a few live trades cleanly and understand how the whole workflow behaves. After that, I may consider position-size limits that allow some smaller trades without individual approval while keeping larger trades subject to review. Any move toward more autonomy would depend on what we learn and how the system performs.

We are still early. I am enjoying the process of building this with Argyle, finding the problems, and making changes. Keeping myself involved gives me a better chance to understand the system I am building and the responsibility that comes with using it.

— Mark & Argyle 🐉