Skip to content

feat: ETH↔USDC trend-following agent that copies smart-money flows (+ dashboard)#34

Merged
hebbianloop merged 1 commit into
mainfrom
feat/evm-trading-smart_money_rotator
Jun 25, 2026
Merged

feat: ETH↔USDC trend-following agent that copies smart-money flows (+ dashboard)#34
hebbianloop merged 1 commit into
mainfrom
feat/evm-trading-smart_money_rotator

Conversation

@arunsajeev17

@arunsajeev17 arunsajeev17 commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

What this is, plainly

An agent that automatically moves a wallet between ETH and a dollar stablecoin
(USDC) by following wallets with a track record of trading well. Nansen labels
that group "smart money" and tracks whether they are collectively net buying or
net selling. When smart money is net-buying ETH, the agent rotates into ETH;
when they are net-selling, it rotates into USDC (cash). It runs on Base, pays
for the Nansen signal itself via x402, and every trade is signed by a
policy-gated WaaP wallet — so it can shift the position but cannot drain the
wallet. (Full reader-facing explainer in the activity README.)

Summary

Adds the Smart-Money ETH/USDC Rotator — a new AEX starter activity (plus its
monitoring dashboard) that follows Nansen smart-money netflow and rotates WETH/USDC
on Base through a WaaP-signed CoW order.

AEX fit: it's the first catalog activity with a paid, off-chain data dependency
it pays for its own signal via x402 — which makes it the catalog's concrete proof of
the "agent pays for its own data" pattern AEX wants to showcase.

What's here

  • agents/evm-trading-smart-money-rotator/activity.json, README, and templates
    for the claude / standalone / nous runtimes. Registry build passes.
  • dashboards/smart-money-rotator/ — Next.js dashboard; reads the agent's JSON-lines
    log live (mock fallback), README documents the LOG_DIR/LOG_FILE wiring.

Design notes

  • Two wallets by design: a throwaway hot wallet (~$5) pays Nansen via x402; the
    WaaP wallet (2PC, policy-gated) signs the trades and never sits in env.
  • Enforcement is honest: the per-order cap is enforced in the agent (a swap is
    net-~$0, so WaaP's net-balance policy auto-approves it); WaaP is the exfiltration
    firewall + split-key signer. The agent can churn the position, not drain the wallet.
  • Dry-run by default. No profitability claim — a clean reference of
    signal → decision → signed execution.

Verification — live on Base

The full path is verified live. A WaaP-signed CoW order was accepted and filled
end-to-end
on Base: signature recovery to the WaaP address, CoW appData
passthrough, and the VaultRelayer allowance all confirmed. The live run caught and
fixed two bugs now in this PR:

  • VaultRelayer checksum — the address had an invalid EIP-55 checksum that crashed
    every run via viem getAddress; corrected to canonical.
  • Order sizing — orders ignored the wallet's actual balance and could be
    unfillable; now bounded by min(order cap, 24h outflow cap, sell-balance × 0.97).

Known issue (WaaP product, not this recipe): WaaP policy false-flags canonical
Base WETH (0x4200…0006) as malicious, firing a one-time 2FA on the first approval.
Tracked at holonym-foundation/internal-docs#1353. After that one tap, trading is
autonomous.

Tracking issue: holonym-foundation/internal-docs#1235

🤖 Generated with Claude Code

@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
aex-agents Ready Ready Preview, Comment Jun 25, 2026 2:34pm

Request Review

@arunsajeev17 arunsajeev17 changed the title feat: Smart-Money Rotator activity + dashboard feat: ETH↔USDC trend-following agent that copies smart-money flows (+ dashboard) Jun 15, 2026
@arunsajeev17 arunsajeev17 marked this pull request as ready for review June 15, 2026 13:29

@hebbianloop hebbianloop left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (consolidation pass): scoped, additive new-agent template — green CI, no shared-code changes, no leaked secrets. Note: the agent holds a separate raw-key EOA (DATA_WALLET_PRIVATE_KEY, ~$5 USDC) for x402/Nansen data payments — intentional + isolated from WaaP custody; fine to ship, consider WaaP/x402 routing later. LGTM — holding for @hebbianloop to merge (contributor PR).

@hebbianloop

Copy link
Copy Markdown
Member

Status update (2026-06-22): this went CONFLICTING after #44 (batch-1 Scout→Farmer + profile-class registry) merged to main — both touch the create-agent-wallet registry (likely registry-coverage.test.ts / src/registry/types.ts + the agents manifest list). The change is additive, so the rebase should be clean to resolve (keep both agent sets + add evm-trading-smart-money-rotator to the coverage list).

@arunsajeev17 — could you git rebase origin/main and push? Then it's good to merge (review already LGTM'd). Happy to do the rebase for you if you'd prefer — just say the word.

… batch 1 (PR #34)

Rebuilt onto current main (agent + dashboard only). Joins batch 1 per Shady.
First catalog activity with a paid off-chain data dependency (pays its own
Nansen signal via x402); WaaP-signed CoW orders, dry-run by default.

Signed-off-by: Shady El Damaty <shady@holonym.id>
@hebbianloop hebbianloop force-pushed the feat/evm-trading-smart_money_rotator branch from 35459c7 to b0ef852 Compare June 25, 2026 14:34
@hebbianloop hebbianloop merged commit f196b5e into main Jun 25, 2026
24 of 26 checks passed
hebbianloop pushed a commit that referenced this pull request Jun 25, 2026
…emplate list

Completes #34 merge (the coverage test's expected template set).

Signed-off-by: Shady El Damaty <shady@holonym.id>
hebbianloop added a commit that referenced this pull request Jun 25, 2026
…emplate list (#59)

Completes #34 merge (the coverage test's expected template set).

Signed-off-by: Shady El Damaty <shady@holonym.id>
Co-authored-by: Shady El Damaty <shady@holonym.id>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants