aeon-on-chain-monitor · git:20260512.574b491 · 2026-05-12 · sha256 e8d1edcae7a07895
aeon-on-chain-monitor git:20260512.574b491A
Immutable. This exact content is served forever at /api/v1/blob/e8d1edcae7a07895.
---
name: aeon-on-chain-monitor
description: |
Monitor blockchain addresses and contracts for notable activity — large transfers, new approvals,
fresh deployments, unusual gas spends, MEV interactions. Watchlist-driven, surfaces only changed
addresses. Pairs with Bankr-compatible RPC, Quicknode, or Alchemy as the data layer. Use for
whale-watch, tracking a treasury, or watching a counterparty contract.
Triggers: "watch this wallet", "monitor address X", "alert on activity for 0x...",
"did the multisig move funds", "track this contract".
---
# aeon-on-chain-monitor
Watchlist monitor over blockchain addresses and contracts. Pulls activity from public RPC + indexers, classifies events, and surfaces only what's changed since the last run. Silent on quiet watchlist members.
## Watchlist format
```yaml
addresses:
- address: "0x..."
label: "DAO treasury"
chain: base
notes: "team multisig, expect monthly distributions"
alert_min_usd: 1000 # only surface transfers above this
- address: "0x..."
label: "Counterparty contract"
chain: ethereum
notes: "watch for upgrade events"
- address: "0x..."
label: "Whale A"
chain: base
alert_min_usd: 50000
```
## Alert triggers
A watchlist address surfaces if any of:
| Trigger | Default |
|---|---|
| **Transfer in/out** above `alert_min_usd` | $1,000 |
| **New ERC-20 approval** | any |
| **Contract upgrade** (proxy `Upgraded` event) | any |
| **Large gas spend** (> 0.05 ETH equivalent in a single tx) | any |
| **First-time interaction** with a new contract | any (one alert per pair) |
| **MEV bot interaction** (sandwich, frontrun, backrun pattern) | any |
Addresses with no triggered events are not in the output.
## Data sources
Three options, configured per deployment:
| Layer | Use it when |
|---|---|
| **Bankr-compatible RPC** | Already provisioned via Bankr Wallet API — `eth_getLogs`, `eth_getTransactionCount`, balance reads. |
| **Quicknode / Alchemy** | High-volume monitoring across many addresses; use their token/portfolio endpoints for value enrichment. |
| **Public RPC** | Minimal watchlist; rate-limited but free. |
```bash
# Recent transfers via eth_getLogs (ERC-20 Transfer topic)
curl -s -X POST "${RPC_URL}" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0","id":1,"method":"eth_getLogs",
"params":[{
"fromBlock":"'"${from_block}"'","toBlock":"latest",
"topics":[
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
null,
"0x000000000000000000000000${addr_no_prefix}"
]
}]
}'
```
## USD enrichment
Each event is enriched with USD value using:
- Token price at block timestamp (CoinGecko / DefiLlama).
- Decimals from token contract.
- For native ETH, ETH price at block time.
Events that can't be priced are shown without a $ value (never zero-filled).
## Output
```
*On-Chain Monitor — 2026-05-12*
3 addresses surfaced (12 silenced)
DAO treasury (0x...) — base
Transfer out: 50,000 USDC → 0xexchange (Coinbase deposit) [tx]
Transfer out: 12 ETH → 0xunknown (label unknown) [tx]
Notes: 50k USDC outflow > $25k monthly avg
Counterparty contract (0x...) — ethereum
Contract upgrade: implementation slot changed (0xnew_impl)
Verify: new implementation has same ABI? [link to source]
⚠ Risk: review storage layout before next interaction
Whale A (0x...) — base
Transfer in: 250k USDC ← 0xdex (Aerodrome swap)
Transfer out: 60 ETH → 0xnew_recipient (first interaction)
Pattern: rotating ETH after stable inflow — historical pattern
```
## Guardrails
- Watchlist file is the source of truth. The skill never adds or removes addresses on its own.
- Silence on quiet members.
- "First-time interaction" alerts fire **once** per (watched address, counterpart) pair — not every subsequent tx.
- Contract upgrade alerts always fire — even on whitelisted upgrades — because they're high-blast-radius.
## Pairs with
- `aeon-unlock-monitor` (the team wallet that just moved is probably the next unlock).
- Quicknode / Alchemy / Bankr for the RPC layer.
- BlueAgent for allowance audits on the watched address.
## Required keys
One of: Bankr API key with Wallet API scope (for `/wallet/portfolio` reads), Quicknode API key, Alchemy API key, or just a public RPC URL.