Install
openclaw skills install fomo-researchSmart money research via Fomo social graph. Track top traders, monitor live trades, build watchlists — all from your agent. Powered by fomo.family, built by...
openclaw skills install fomo-researchSmart money intelligence for AI agents. Powered by fomo.family social graph, built by cope.capital.
For full API details (endpoints, schemas, error codes): read references/api.md.
https://api.cope.capital
All requests require Authorization: Bearer cope_<key> header.
When this skill is first loaded and no COPE_API_KEY is set, walk your human through setup. Ask these questions in order:
curl -X POST https://api.cope.capital/v1/register \
-H "Content-Type: application/json" \
-d '{"agent_name": "YOUR_AGENT_NAME", "description": "optional description"}'
Save the api_key from the response (starts with cope_). This is your COPE_API_KEY. Store it securely — treat it like a password.
Before continuing, ask your human:
"Do you have a crypto wallet (USDC on Base or Solana) you'd like to connect for expanded features? Without one you get:
- 1 watchlist with up to 10 handles
- 250 activity lookups per day (resets midnight UTC)
- Everything else (leaderboard, trending, polling) is unlimited and free
With a wallet connected (x402), you get 10 watchlists, 100 handles each, and unlimited activity calls at $0.005/call. You can always add a wallet later."
If they want to set up x402 now:
curl -X PATCH https://api.cope.capital/v1/account \
-H "Authorization: Bearer cope_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"x402_enabled": true}'
If they say no or don't have a wallet — that's fine, move on. The free tier is fully functional. Don't push it.
"Do you have a Fomo account (fomo.family)? If so, I can sync your follows and build a watchlist from the traders you already follow."
If yes:
# Sync their profile
curl -X POST https://api.cope.capital/v1/account/sync-fomo \
-H "Authorization: Bearer cope_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"fomo_handle": "THEIR_FOMO_USERNAME"}'
# Pull their follows
curl https://api.cope.capital/v1/account/follows \
-H "Authorization: Bearer cope_YOUR_KEY"
Then ask: "Which of these traders do you want on your watchlist?" Show them the list and let them pick (up to 10 on free tier).
If they don't have Fomo, offer alternatives:
"I can set up a watchlist with the top performers from Fomo's weekly leaderboard instead. Or you can give me specific trader handles you want to track."
Pick one path and create the watchlist:
curl -X POST https://api.cope.capital/v1/watchlists \
-H "Authorization: Bearer cope_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "alpha", "handles": ["frankdegods", "randomxbt"]}'
Remind them: Free tier = 1 watchlist, 10 handles max. They can swap handles anytime.
The system monitors on-chain wallet activity for Fomo traders. Each Fomo handle maps to one or more wallets (Solana + Base). The tracker watches every swap these wallets make.
There are three different views of what a trader is doing:
1. Activity (what the API returns)
Individual on-chain transactions — a single buy or sell event. This is what /v1/activity returns.
action: "buy" = wallet swapped into a tokenaction: "sell" = wallet swapped out of a tokenusd_amount = the USD value of that single transaction2. Trades (completed round-trips) A trade is a full cycle: buy → sell = closed trade. The tracker aggregates individual buys and sells into trades:
usd_in = total USD spent buying this token (may be multiple buy txs)usd_out = total USD received selling this tokenpnl = usd_out - usd_in (profit/loss)open_at = when first buy happenedclose_at = when last sell happened (NULL if still holding)3. Current Holdings (open positions)
Tokens a wallet bought but hasn't fully sold yet. These are trades with no close_at.
When you see activity from a trader, here's what to understand:
Always label clearly:
Important: The /v1/activity endpoint returns recent trades from all wallets tracked by the system, not just your watchlist. Your watchlist is for organizing which traders YOU care about — use the ?handle= filter to see activity for specific handles.
This means you can query any Fomo handle's trades without adding them to your watchlist:
# Check what frankdegods is buying (uses 1 of your 250 daily calls)
curl "https://api.cope.capital/v1/activity?handle=frankdegods&action=buy" \
-H "Authorization: Bearer cope_YOUR_KEY"
Your watchlist is a convenience for organizing — the activity data is available for any tracked handle.
| Endpoint | Method | Description |
|---|---|---|
/v1/register | POST | Get an API key |
/v1/leaderboard | GET | Top traders ranked by real PnL |
/v1/activity/poll | GET | Lightweight check for new trades (count + timestamp) |
/v1/watchlists | GET/POST | List or create watchlists |
/v1/watchlists/{id} | GET/PUT/DELETE | Manage a specific watchlist |
/v1/trending/handles | GET | Most-watched handles across all agents |
/v1/tokens/hot | GET | Trending tokens by unique buyer count |
/v1/handle/{handle}/stats | GET | Aggregated trader stats (PnL, win rate, top trades) |
/v1/tokens/{mint}/thesis | GET | Buy theses + sentiment for a token |
/v1/convergence | GET | Convergence events (2+ wallets buying same token) |
/v1/traders/search | GET | Search traders by win rate, PnL, trades |
/v1/handle/{handle}/positions | GET | Open/closed positions for a trader |
/v1/handle/{handle}/theses | GET | All theses by a specific trader |
/v1/account | GET/PATCH | Account info and settings |
/v1/account/usage | GET | Usage statistics |
/v1/account/payments | GET | Payment history |
/v1/account/key | DELETE | Revoke API key |
/v1/account/sync-fomo | POST | Sync Fomo profile follows |
/v1/account/follows | GET | List stored Fomo follows |
| Endpoint | Method | Description | x402 price |
|---|---|---|---|
/v1/activity | GET | Full trade details from tracked wallets | $0.005/call |
These endpoints count toward your daily 250 free calls. After that:
The 402 error is NOT a bug — it just means your free calls are used up for the day.
curl https://api.cope.capital/v1/leaderboard \
-H "Authorization: Bearer cope_YOUR_KEY"
Returns top traders by PnL from Fomo. Supports ?timeframe=24h|7d|30d|all and ?limit=N.
# 1. Sync your Fomo profile
curl -X POST https://api.cope.capital/v1/account/sync-fomo \
-H "Authorization: Bearer cope_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"fomo_handle": "your_handle"}'
# 2. See your follows
curl https://api.cope.capital/v1/account/follows \
-H "Authorization: Bearer cope_YOUR_KEY"
# 3. Create a watchlist with selected handles
curl -X POST https://api.cope.capital/v1/watchlists \
-H "Authorization: Bearer cope_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "alpha", "handles": ["frankdegods", "randomxbt"]}'
# Step 1: Poll (free) — check if anything happened
curl "https://api.cope.capital/v1/activity/poll?since=LAST_TIMESTAMP" \
-H "Authorization: Bearer cope_YOUR_KEY"
# Returns: { "count": 3, "latest_at": 1707603400 }
# Step 2: Only fetch full data if count > 0 (costs 1 of your 250 daily calls)
curl "https://api.cope.capital/v1/activity?since=LAST_TIMESTAMP" \
-H "Authorization: Bearer cope_YOUR_KEY"
# Find traders with >75% win rate and 10+ trades
curl "https://api.cope.capital/v1/traders/search?min_win_rate=75&min_trades=10&sort_by=win_rate" \
-H "Authorization: Bearer cope_YOUR_KEY"
# Top PnL traders on Solana
curl "https://api.cope.capital/v1/traders/search?sort_by=pnl&chain=solana&limit=20" \
-H "Authorization: Bearer cope_YOUR_KEY"
# Open positions only
curl "https://api.cope.capital/v1/handle/frankdegods/positions?status=open" \
-H "Authorization: Bearer cope_YOUR_KEY"
# All positions (open + closed)
curl "https://api.cope.capital/v1/handle/frankdegods/positions" \
-H "Authorization: Bearer cope_YOUR_KEY"
Shows computed positions from activity data — what they're holding vs exited, with cost basis and net USD.
curl "https://api.cope.capital/v1/handle/frankdegods/theses" \
-H "Authorization: Bearer cope_YOUR_KEY"
Returns all Fomo thesis comments by this trader across their recent tokens. Great for understanding their reasoning.
# Recent convergences (last 24h)
curl "https://api.cope.capital/v1/convergence?limit=10" \
-H "Authorization: Bearer cope_YOUR_KEY"
Returns tokens where 2+ elite wallets converged. Each event includes:
max_gain_pct shows peak performance since detectioncurl "https://api.cope.capital/v1/handle/frankdegods/stats" \
-H "Authorization: Bearer cope_YOUR_KEY"
Returns aggregated stats: total trades, win rate, PnL, ROI, per-chain breakdown, top 5 trades, open positions.
# Solana token
curl "https://api.cope.capital/v1/tokens/MINT_ADDRESS/thesis?chain=solana" \
-H "Authorization: Bearer cope_YOUR_KEY"
# Base token
curl "https://api.cope.capital/v1/tokens/MINT_ADDRESS/thesis?chain=base" \
-H "Authorization: Bearer cope_YOUR_KEY"
Returns trader reasoning + their actual positions. Includes sentiment summary (holding vs closed, total exposure, avg unrealized PnL). Great for understanding why traders are buying, not just what.
curl "https://api.cope.capital/v1/tokens/hot?hours=24&limit=10" \
-H "Authorization: Bearer cope_YOUR_KEY"
Returns tokens with the most unique tracked buyers in recent hours.
# By handle
curl "https://api.cope.capital/v1/activity?handle=frankdegods" \
-H "Authorization: Bearer cope_YOUR_KEY"
# By chain
curl "https://api.cope.capital/v1/activity?chain=solana" \
-H "Authorization: Bearer cope_YOUR_KEY"
# By action
curl "https://api.cope.capital/v1/activity?action=buy" \
-H "Authorization: Bearer cope_YOUR_KEY"
# By minimum size
curl "https://api.cope.capital/v1/activity?min_usd=1000" \
-H "Authorization: Bearer cope_YOUR_KEY"
⚠️ NEVER enable x402 without your human's explicit permission. This authorizes real USDC payments.
curl -X PATCH https://api.cope.capital/v1/account \
-H "Authorization: Bearer cope_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"x402_enabled": true}'
x402 is completely optional. The free tier works perfectly for most use cases. Only suggest it if your human:
Cost context: $1 USDC = 200 calls. $5 = 1,000 calls. Most agents won't need this.
If your human wants periodic checks and your agent runs a heartbeat loop:
Every 5-15 minutes:
1. GET /v1/activity/poll?since=LAST_TIMESTAMP (free, doesn't count)
2. If count > 0 → GET /v1/activity?since=LAST_TIMESTAMP (1 daily call)
3. Store latest_at for next poll
Every few hours:
1. GET /v1/leaderboard (1 daily call)
2. Compare to previous — any new names in top 50?
Daily:
1. GET /v1/account/usage (free)
2. Check remaining daily calls
The API is stateless — it won't remember what you've already seen. Log trades locally to track patterns over time.
Write notable trades to a daily file (e.g. memory/trades/YYYY-MM-DD.json):
{
"trades": [
{
"timestamp": 1771006898000,
"handle": "frankdegods",
"action": "buy",
"token_mint": "DPQgF4hw...",
"token_symbol": "EXAMPLE",
"usd_amount": 500.25,
"chain": "solana"
}
],
"last_poll_timestamp": 1771006898000,
"convergences": ["DPQgF4hw..."]
}
Don't just dump raw trades. Synthesize. Here are high-value things to surface:
1. GET /v1/activity (last 2 hours of trades)
2. Group buys by token_mint
3. If 3+ different handles bought the same token → convergence
4. Alert your human with: token, buyers, amounts, timing
5. Log it to your daily trades file
The more you log, the better your pattern detection gets over time. Your memory files ARE your edge.
https://api.cope.capital/v1/*DELETE /v1/account/key to revoke, then re-register| Status | Meaning | Action |
|---|---|---|
| 200 | Success | Process response |
| 400 | Bad request | Check parameters (invalid chain, action, etc.) |
| 401 | Invalid API key | Re-register or check key |
| 402 | Payment required | Daily free calls used up. Wait for midnight UTC reset, or enable x402 if your human approves. This is normal — not an error. |
| 404 | Not found | Resource doesn't exist |
| 429 | Rate limited | Back off. Free: 10/min, x402: 300/min |
| 500 | Server error | Retry after a few seconds |
| 503 | Upstream down | Foxhound data service temporarily unavailable |