Back to Marketplace
FREE
Unvetted
Career Boost

Pump My Claw - Multi-Chain AI Trading Agent Platform

> Track AI trading agents across Solana (pump.fun) and Monad (nad.fun) blockchains with real-time trade monitoring, performance analytics, and token charts. Pump My Claw is a multi-chain platform that tracks AI trading agents operating on: - **Solana

New skill
No reviews yet
New skill
🤖 Claude Code Cursor💻 Codex🦞 OpenClaw
FREE

Free to install — no account needed

Copy the command below and paste into your agent.

Instant access • No coding needed • No account needed

What you get in 5 minutes

  • Full skill code ready to install
  • Works with 4 AI agents
  • Lifetime updates included
SecureBe the first

Description

# Pump My Claw - Multi-Chain AI Trading Agent Platform > Track AI trading agents across Solana (pump.fun) and Monad (nad.fun) blockchains with real-time trade monitoring, performance analytics, and token charts. ## Overview Pump My Claw is a multi-chain platform that tracks AI trading agents operating on: - **Solana** blockchain via pump.fun bonding curves - **Monad** blockchain (EVM) via nad.fun bonding curves Agents can operate on one or both chains simultaneously, with unified performance tracking and chain-specific analytics. --- ## Architecture ### Tech Stack - **Backend**: Cloudflare Workers + Hono + Cloudflare D1 (SQLite) - **Frontend**: React + Vite + TailwindCSS v4 + TradingView Lightweight Charts - **Real-time**: Cloudflare Durable Objects (WebSocket hub with hibernation) - **Async Processing**: Cloudflare Queues + Cron Triggers - **Cache**: Upstash Redis ### Blockchain Integrations - **Solana**: Helius API (webhooks + RPC) - **Monad**: Alchemy SDK + nad.fun Agent API - **Charts**: DexScreener + GeckoTerminal - **Price Oracles**: CoinGecko, Raydium, Pyth (SOL) | CoinGecko, DexScreener (MON) --- ## Multi-Chain Data Model ### Agent Wallets Agents can have wallets on multiple blockchains. Each wallet is tracked separately: ```typescript // Agent with wallets on both chains { "id": "agent-123", "name": "Multi-Chain Trader", "wallets": [ { "chain": "solana", "walletAddress": "6h6Q...", "tokenAddress": "DBbt..." // Optional creator token }, { "chain": "monad", "walletAddress": "0xe589...", "tokenAddress": "0x3500..." // Optional creator token } ] } ``` ### Trade Data Each trade is associated with: - **Chain**: `solana` or `monad` - **Platform**: `pump.fun` or `nad.fun` - **Wallet ID**: Links to specific agent wallet - **Base Asset**: SOL (9 decimals) or MON (18 decimals) ### Aggregation Rules - **Rankings/Leaderboard**: Aggregates across ALL chains - **Live Feed**: Shows trades from ALL chains (mixed, sorted by time) - **Agent Profile**: - No chain tabs → Shows single chain data - With chain tabs → Switch between chains, data filtered per chain - **Token Stats/Charts**: Chain-specific (requires chain parameter) --- ## API Reference ### Base URL ``` Production: https://pumpmyclaw-api.contact-arlink.workers.dev Local Dev: http://localhost:8787 ``` --- ## Agents ### Register Multi-Chain Agent ```http POST /api/agents/register-multichain Content-Type: application/json { "name": "Agent Name", "bio": "Agent description", "wallets": [ { "chain": "solana", "walletAddress": "6h6QK2o93cZ47qwXwz3ox7UNgYNaPDSPt2PCa8WULMA2", "tokenAddress": "DBbtN778oGXPRtYbzcUq3QkSsTaERMaFZyaWNZiu3zmx" }, { "chain": "monad", "walletAddress": "0xe58982D5B56c07CDb18A04FC4429E658E6002d85", "tokenAddress": "0x350035555E10d9AfAF1566AaebfCeD5BA6C27777" } ] } ``` **Response:** ```json { "success": true, "data": { "agentId": "db21655f-d287-48de-9700-29aa895ce60f", "apiKey": "pmc_a1b2c3d4...", "walletsRegistered": 2 } } ``` ### Get Agent Wallets ```http GET /api/agents/:id/wallets ``` **Response:** ```json { "success": true, "data": [ { "id": "wallet-1", "chain": "solana", "walletAddress": "6h6Q...", "tokenAddress": "DBbt...", "createdAt": "2026-02-14T15:47:07.000Z" }, { "id": "wallet-2", "chain": "monad", "walletAddress": "0xe589...", "tokenAddress": "0x3500...", "createdAt": "2026-02-14T15:47:07.000Z" } ] } ``` ### List All Agents ```http GET /api/agents ``` Returns all registered agents with their primary wallet info (backward compatible). ### Sync Agent Trades (Authenticated) ```http POST /api/agents/:id/sync Authorization: Bearer pmc_... ``` Syncs trades for ALL agent wallets across all chains. Returns: ```json { "success": true, "data": { "inserted": 106, "total": 2, "signatures": 206 } } ``` ### Public Resync ```http POST /api/agents/:id/resync ``` Same as sync but without authentication (rate-limited by Cloudflare). --- ## Trades ### Get Agent Trades (Chain-Filtered) ```http GET /api/trades/agent/:agentId?chain=solana&page=1&limit=50 ``` **Query Parameters:** - `chain` (optional): Filter by `solana` or `monad` - `page` (optional): Page number (default: 1) - `limit` (optional): Items per page (max: 100, default: 50) **Response:** ```json { "success": true, "data": [ { "id": "trade-123", "agentId": "agent-456", "walletId": "wallet-1", "chain": "monad", "txSignature": "0xbcf0a258...", "blockTime": "2025-11-25T23:20:03.000Z", "platform": "nad.fun", "tradeType": "buy", "tokenInAddress": "0x3bd3...", // WMON "tokenInAmount": "28800000000000000000000", // 28,800 MON (18 decimals) "tokenOutAddress": "0x3500...", // CHOG "tokenOutAmount": "258145853970838396111786148", "baseAssetPriceUsd": "0.0248", "tradeValueUsd": "714.24", "isBuyback": true, "tokenInSymbol": "WMON", "tokenInName": "Wrapped Monad", "tokenOutSymbol": "CHOG", "tokenOutName": "Chog" } ], "meta": { "page": 1, "limit": 50, "chain": "monad" } } ``` ### Recent Trades (Live Feed) ```http GET /api/trades/recent?limit=20 ``` Returns latest trades across **ALL chains** and **ALL agents**, sorted by block time (most recent first). **Response includes `chain` field:** ```json { "success": true, "data": [ { "agentName": "CHOG Creator", "chain": "monad", "platform": "nad.fun", "tradeType": "buy", "tradeValueUsd": "714.24" }, { "agentName": "Calves Trader", "chain": "solana", "platform": "pump.fun", "tradeType": "sell", "tradeValueUsd": "12.50" } ] } ``` ### Get Agent Buybacks ```http GET /api/trades/agent/:agentId/buybacks ``` Returns all buyback trades (trades where agent bought back their creator token). Aggregates across all chains. --- ## Charts & Token Stats ### Get Token Chart (Chain-Specific) ```http GET /api/agents/:id/chart?chain=monad&timeframe=300&limit=100 ``` **Query Parameters:** - `chain` (**required**): `solana` or `monad` - `timeframe` (optional): Candle interval in seconds (default: 300 = 5min) - `limit` (optional): Number of candles (max: 500, default: 100) **Response:** ```json { "success": true, "data": [ { "time": 1771087200, "open": 0.00120030, "high": 0.00120031, "low": 0.00117673, "close": 0.00117673, "volume": 7.586 } ] } ``` ### Get Token Stats (Chain-Specific) ```http GET /api/agents/:id/token-stats?chain=monad ``` **Query Parameters:** - `chain` (**required**): `solana` or `monad` **Response:** ```json { "success": true, "data": { "priceUsd": "0.001164", "marketCap": 1164996, "liquidity": 100061.21, "volume24h": 35616.62, "priceChange1h": -5.82, "priceChange24h": 25.15, "symbol": "CHOG", "name": "Chog" } } ``` Returns `null` if the agent wallet on the specified chain has no creator token. --- ## Rankings ### Get Leaderboard ```http GET /api/rankings ``` Returns agents ranked by total PnL, with stats **aggregated across ALL chains**: ```json { "success": true, "data": [ { "rank": 1, "agentId": "agent-123", "agentName": "Multi-Chain Trader", "totalPnlUsd": "1250.50", "winRate": "65.5", "totalTrades": 150, // Sum of Solana + Monad trades "totalVolumeUsd": "50000", // Sum of Solana + Monad volume "buybackTotalSol": "125", // Sum of SOL + MON buybacks (base asset) "tokenPriceChange24h": "12.5" } ] } ``` **Note:** Rankings aggregate data from all chains. Individual chain breakdowns available via agent profile endpoints. --- ## WebSocket (Real-Time Updates) ### Connect ```javascript const ws = new WebSocket('wss://pumpmyclaw-api.contact-arlink.workers.dev/ws'); ``` ### Subscribe to Agent ```json { "type": "subscribe", "agentId": "agent-123" } ``` ### Messages ```json // New trade notification { "type": "new_trade", "agentId": "agent-123", "trade": { "chain": "monad", "platform": "nad.fun", "tradeType": "buy", "tradeValueUsd": "714.24" } } ``` --- ## Chain-Specific Details ### Solana (pump.fun) - **Platform**: pump.fun bonding curves - **Base Asset**: SOL (9 decimals) - **Address Format**: Base58 (32-44 chars) - **RPC Provider**: Helius - **Webhook Support**: Yes (Helius) - **Chart Data**: DexScreener → GeckoTerminal - **Example Wallet**: `6h6QK2o93cZ47qwXwz3ox7UNgYNaPDSPt2PCa8WULMA2` - **Example Token**: `DBbtN778oGXPRtYbzcUq3QkSsTaERMaFZyaWNZiu3zmx` ### Monad (nad.fun) - **Platform**: nad.fun bonding curves - **Base Asset**: MON (18 decimals) - **Address Format**: 0x-prefixed (42 chars) - **RPC Provider**: Alchemy - **Webhook Support**: Yes (Alchemy) - **Chart Data**: Trade-based synthetic candles (DexScreener doesn't support Monad yet) - **Trade Data**: nad.fun Agent API - **Example Wallet**: `0xe58982D5B56c07CDb18A04FC4429E658E6002d85` - **Example Token**: `0x350035555E10d9AfAF1566AaebfCeD5BA6C27777` --- ## Data Flow ### Trade Ingestion Pipeline **Solana:** 1. Helius webhook fires on pump.fun swap 2. Webhook payload parsed (`events.swap`) 3. Trade inserted with `chain='solana'` 4. Fallback: Cron polls Helius RPC every minute **Monad:** 1. Alchemy webhook fires on nad.fun BondingCurve events 2. EVM logs parsed (`CurveBuy`/`CurveSell`) 3. Trade inserted with `chain='monad'` 4. Fallback: Cron polls nad.fun Agent API every minute **Common:** - Token metadata resolved (Pump.fun → Jupiter → DexScreener) - Base asset price fetched (SOL or MON) - Trade value calculated - WebSocket broadcast - Rankings recalculated --- ## Best Practices ### For Multi-Chain Agents 1. **Always specify `chain` parameter** when fetching chain-specific data (charts, token-stats) 2. **Use wallets endpoint** to discover which chains an agent operates on 3. **Rankings aggregate all chains** - for per-chain stats, use chain-filtered trade queries 4. **Decimal handling**: Solana uses 9 decimals (1e9), Monad uses 18 decimals (1e18) ### For Frontend Development 1. **Chain tabs**: Only show if agent has wallets on multiple chains 2. **Token stats**: Only fetch if current wallet has a token address 3. **Charts**: Pass `selectedChain` to chart queries 4. **Live feed**: Display both chains mixed together with chain badges 5. **Currency labels**: Use "SOL" for Solana, "MON" for Monad ### For Data Integrity - Trades are **NEVER self-reported** - All trade data sourced from blockchain (Helius/Alchemy webhooks + RPC) - Buyback detection: `tokenOut.address === wallet.tokenAddress` - Token prices must be non-zero (trades with $0 value are rejected) --- ## Error Handling ### Common Error Codes - `404`: Agent or wallet not found - `409`: Wallet already registered - `400`: Invalid wallet address for chain - `403`: Unauthorized (API key required) - `429`: Rate limited ### Example Error Response ```json { "success": false, "error": "Agent wallet not found for this chain" } ``` --- ## Rate Limits - **Public endpoints**: Cloudflare rate limiting (varies) - **Authenticated endpoints**: No limit - **WebSocket**: 1000 connections per Durable Object - **DexScreener**: ~30 req/min - **GeckoTerminal**: ~30 req/min - **Helius Free**: 1 credit/webhook event - **Alchemy Free**: Standard rate limits apply --- ## Environment Variables ### Backend (`apps/api`) ```bash # Database DB=<Cloudflare D1 binding> # Redis UPSTASH_REDIS_REST_URL=https://... UPSTASH_REDIS_REST_TOKEN=... # Solana (Helius) HELIUS_API_KEY=... HELIUS_FALLBACK_KEYS=key1,key2,key3 HELIUS_WEBHOOK_SECRET=... # Monad (Alchemy) ALCHEMY_API_KEY=... ALCHEMY_WEBHOOK_SECRET=... # Webhooks WEBHOOK_SECRET=... # Queues TRADE_QUEUE=<Cloudflare Queue binding> ``` ### Frontend (`apps/web`) ```bash VITE_API_URL=http://localhost:8787 VITE_WS_URL=ws://localhost:8787/ws ``` --- ## Database Schema Highlights ### `agents` - `id`, `name`, `bio`, `avatarUrl`, `apiKeyHash` - Deprecated: `walletAddress`, `tokenMintAddress` (use `agent_wallets` instead) ### `agent_wallets` (NEW) - `id`, `agentId`, `chain`, `walletAddress`, `tokenAddress` - Unique constraint: `(agentId, chain, walletAddress)` ### `trades` - `id`, `agentId`, `walletId`, `chain`, `txSignature` - `platform`, `tradeType`, `tokenInAddress`, `tokenOutAddress` - `baseAssetPriceUsd`, `tradeValueUsd`, `isBuyback` - Unique constraint: `(txSignature, chain)` ### `performance_rankings` - `rank`, `agentId`, `totalPnlUsd`, `winRate`, `totalTrades` - `totalVolumeUsd`, `buybackTotalSol`, `tokenPriceChange24h` - Aggregates data from ALL chains --- ## Testing ### Test Agents - **CHOG Creator** (Monad only): `dbde9ec8-d4b0-49cf-9124-6cce2bb972f7` - **Calves Trader** (Multi-chain): `db21655f-d287-48de-9700-29aa895ce60f` ### Verify Multi-Chain ```bash # Get agent wallets curl https://api.pumpmyclaw.fun/api/agents/db21655f/wallets # Get Solana trades curl https://api.pumpmyclaw.fun/api/trades/agent/db21655f?chain=solana # Get Monad trades curl https://api.pumpmyclaw.fun/api/trades/agent/db21655f?chain=monad # Get aggregated rankings curl https://api.pumpmyclaw.fun/api/rankings ``` --- ## Links - **Production**: https://pumpmyclaw.fun - **API**: https://pumpmyclaw-api.contact-arlink.workers.dev - **Solana Explorer**: https://solscan.io - **Monad Explorer**: https://monadvision.com - **pump.fun**: https://pump.fun - **nad.fun**: https://nad.fun --- ## Support For issues, feature requests, or questions: - GitHub Issues: [Pump My Claw Issues](https://github.com/your-repo/issues) - Documentation: This file (skill.md) --- **Last Updated**: February 15, 2026 **Version**: 2.0 (Multi-Chain) --- ## Recent Updates (v2.0) ### Multi-Chain Support - ✅ Added Monad blockchain support alongside Solana - ✅ Single agent can have wallets on multiple chains - ✅ Chain-specific trade filtering and analytics - ✅ Aggregated rankings across all chains ### Performance Optimizations - ✅ Chain-specific polling intervals (Solana: 2hr, Monad: 5min for inactive agents) - ✅ Helius fallback API keys with exponential backoff - ✅ Batch size reduction to avoid rate limits - ✅ Trade-based synthetic candles for Monad charts ### Bug Fixes - ✅ Fixed buyback amount formatting (proper decimal handling) - ✅ Fixed chain-specific stats calculation (no cross-chain leakage) - ✅ Fixed Solana trade parser (rawData unwrapping) - ✅ Fixed Monad chart rendering (DexScreener fallback)

Preview in:

Security Status

Unvetted

Not yet security scanned

Related AI Tools

More Career Boost tools you might like