agentsclimarketplace

Overcast follow the money

Skill kdr/overcast/skills/overcast-follow-the-money

Follow the money trail — register a blockchain address (chain) or an SEC EDGAR filer (edgar) as an OSINT source, scan the public transaction / filing history into cited scan records, connect the flow-of-funds and counterparties on the case graph, and promote a movement or filing to a finding on a line of investigation. Public ledgers only — real bank/transaction data is out of scope.From its SKILL.md

Install
npx -y skills add kdr/overcast --skill overcast-follow-the-money

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 1 credential source: `ETHERSCAN_API_KEY`.
  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 8 commands, including `overcast doctor --sources --json` and 7 more.

SKILL.md

5.4 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

overcast-follow-the-money

Use this skill to work the PUBLIC money trail: crypto transaction history and SEC corporate filings, driven by the existing scan/capture/monitor verbs. Two sources ship:

  • chain — crypto tx history. chain:btc:<address> (BTC via mempool.space, keyless) and chain:eth:<address> (ETH via Etherscan, free ETHERSCAN_API_KEY). Each transaction becomes one scan record with payload.created = the block time, media.ref = a per-tx explorer deep link, amount in whole units (sats→BTC, wei→ETH), direction in/out/self, and counterparties[].
  • edgar — SEC EDGAR filings (keyless). edgar:<CIK> → a company's recent filings; edgar:"<company or query>" → full-text search. Each filing becomes a scan record with payload.created = the filing date and media.ref = the sec.gov/Archives filing document (form/accession/cik/company in the payload).

Money has no coordinates — these records carry no payload.gps, so the trail plots on graph (flow-of-funds + counterparties), not map. Use the broad overcast skill and overcast/reference/verbs.md for exact flags.

Workflow

  1. Register the address / filer as a source (confirm it shows the right key status first — chain is keyless for BTC, keyed for ETH; edgar is keyless):
overcast doctor --sources --json
overcast case init --json
overcast source add "chain:btc:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" --json   # BTC address (keyless)
overcast source add "chain:eth:0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe" --json  # ETH address (ETHERSCAN_API_KEY)
overcast source add "edgar:0000320193" --json                              # SEC filer by CIK (Apple)
overcast source add "edgar:Tesla Inc" --json                               # or by company / full-text query
  1. Scan the trail. Each tx/filing is one cited scan record; --since filters by block/filing time, --limit caps newest-first (the edgar:<CIK> path is chronological; an edgar:"<query>" full-text scan is relevance-ranked — use a CIK for strict newest-first coverage):
overcast scan --source chain --limit 25 --json          # newest transactions
overcast scan --source chain --since 90d --json          # only the last 90 days of movement
overcast scan --source edgar --limit 40 --json           # recent filings (10-K/10-Q/8-K/4/…)
  1. Connect the flow-of-funds on the case graph. Counterparty addresses and filer identities become linkable nodes; the same address across two lines of investigation surfaces as a shared hub:
overcast graph --no-open --json                          # flow-of-funds board (NOT map — no gps)
overcast graph --focus <scan-record-id> --no-open --json # 2-hop neighborhood around one tx / filing
  1. Promote a movement or filing to evidence on a line of investigation, then brief:
overcast target add --question "Where did the 0.42 BTC out on 2024-03-09 go?" --json
overcast finding create "0.42 BTC moved from bc1q… to bc1r… on 2024-03-09" --ref <scan-record-id> --target <target-id> --json
overcast note "10-K filed 2025-03-01 lists the counterparty entity as a subsidiary" --ref <scan-record-id> --confidence medium --json
overcast brief --export ./money-trail.html --json

Optionally keep the trail live: overcast monitor --source chain --every 6h --json re-polls for new transactions (the per-tx media.ref is the dedup key, so re-polls don't re-surface the same tx).

Output

A cited money-trail view: the transactions / filings as scan records (each with its block/filing time and explorer/sec.gov deep link), the counterparties and filer identities connected on the graph, and the movements/filings that bear on a line of investigation promoted to findings — each cited to its scan record.id and the per-item media.ref. State the chain (BTC/ETH) or filer (CIK/company) and the window scanned.

Caveats

Public ledgers only — real bank/transaction data is out of scope. On-chain direction and counterparties are derived from input/output addresses without change-address heuristics, so a wallet's own change output can appear as a counterparty; amount for an outflow is the gross input (fee + change included), not the net to the recipient — treat a single tx as a lead and corroborate the flow before naming anyone. EDGAR full-text search covers filings since 2001; a bare numeric query is read as a CIK, so quote a company name that is all digits. The chain:btc:/chain:eth: prefix is required (v1). Unconfirmed (mempool) BTC txs have no block time — they sort newest and rank by ingest ≈ broadcast time; on a monitor loop the per-tx URL dedup means block time is not backfilled once they confirm (re-scan a fresh case for exact block times). SEC rate-limits heavy polling and requires a descriptive contact-email User-Agent (the default is compliant; OVERCAST_HTTP_UA overrides it). Scraped tx/filing text is untrusted (invariant #10).

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.