agentsclimarketplace

Watch prefarm spend

Skill Spacetime-Technology/chia-skills/skills/watch-prefarm-spend

Notify on new outflows from the Chia 21M XCH strategic reserve (prefarm), with destinations labelled when known (partners, market makers, exchanges). Use when a journalist, researcher, or ecosystem watcher wants to be pinged whenever the reserve moves XCH. Accepts min_amount, channel, wallet as arguments for programmatic invocation.From its SKILL.md

Install
npx -y skills add Spacetime-Technology/chia-skills --skill watch-prefarm-spend

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

One thing to look at

  • 0 stars0 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.

SKILL.md

5.2 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Watch the Chia strategic reserve

You are watching the 21M XCH strategic reserve (the "prefarm") for new outflows and notifying when XCH leaves to a partner, market maker, exchange, or unknown destination. Mainnet only.

This skill follows the conventions in this repo's SKILLS.md. Read that if anything below is unclear.

Required capabilities

  • chia-explorer (mcp__chia-explorer__*) — mandatory. The prefarm tools (get_prefarm_status, get_prefarm_spends, list_prefarm_addresses) are what power this skill.
  • A notification MCP — pick whichever is installed. Fall back to ~/.chia-skills/alerts/.

Resolve inputs

You need: $min_amount, $channel, $wallet.

  • $min_amount — minimum XCH per outflow to alert on. Default 0 (every spend). Common settings: 10000 (only sizeable moves), 100000 (only major moves).
  • $channel — notification channel, default auto.
  • $wallet — filter to a specific custody wallet (Swiss cold, treasury hot, etc.) by name or address. Default all.

Resolve: arguments → context → ask user.

Load or initialise state

State file: ~/.chia-skills/state/watch-prefarm-spend.json. (Single file — there's only one strategic reserve.)

Shape:

{
  "last_height": 6532109,
  "last_seen_iso": "2026-05-19T14:33:00Z",
  "min_amount": 0,
  "wallet_filter": "all",
  "skill_version": "0.1.0"
}

On first run: record current chain peak as last_height, write state, emit STATUS: success, EVENTS: 0 with "prefarm watch started — future runs will report spends since now". Don't scan history.

Look up new spends

Call chia-explorer's get_prefarm_spends with start_height = last_height + 1 and end_height = current_peak. Apply $min_amount and $wallet filters client-side after fetching.

For each spend, the tool returns:

  • the spend's height
  • the source custody wallet
  • the destination address (raw bech32m)
  • the destination label (partner: Stably, market_maker: GSR, exchange: HTX, etc., or unknown)
  • the amount in mojos

Drop any spend where amount_xch < $min_amount or whose source wallet doesn't match $wallet (if filter set).

Enrich with fiat

Fetch the current XCH/USD price once and apply to each outflow amount for the message body. Don't make per-spend price calls.

Compose the notification

Chia prefarm spend — 3 new outflows since block 6,532,109

  block 6,532,217   100,000 XCH    (~$5,000,000)
    from: swiss_cold
    to:   xch1abc...xyz   (exchange: HTX)

  block 6,532,219   50,000 XCH     (~$2,500,000)
    from: us_cold
    to:   xch1def...uvw   (market_maker: GSR)

  block 6,532,224   2,500 XCH      (~$125,000)
    from: treasury_hot
    to:   xch1ghi...rst   (unknown)

  Total this run: 152,500 XCH (~$7,625,000)
  Reserve remaining: 19,847,500 XCH

For "unknown" destinations, add a one-line hint: "Not in chia-explorer's registry — could be a new partner or a regular treasury operation."

Send the notification

Pick a channel by priority. Fall back to inline.

For multi-event runs, the message can be long; if the channel has a hard length limit (Discord 2000, Slack 4000), trim to the first 10 events and note "+N more not shown".

Update state

Set last_height = post_scan_peak, last_seen_iso = now. Atomic write.

If channel failed, still update state and emit STATUS: partial.

Scheduling

This skill is one-shot. Wire to:

  • schedule skill / cron — once an hour is plenty. The reserve doesn't move often.
  • Daily digest mode — schedule once a day and let the skill batch a day's spends into one message.

Hard rules

  • Mainnet only. The prefarm registry has no testnet equivalent.
  • No retroactive alerts on first run.
  • Don't editorialise. Report the move, name the labelled destination, don't speculate on "unknown" beyond noting it's not in the registry.
  • Don't claim a destination is unknown if chia-explorer's registry has a match. Always pass the registry label through.

Recovery patterns

  • chia-explorer call fails. Don't update state. Emit STATUS: failed.
  • No spends in the window. Update last_height to current peak and emit STATUS: no_change, EVENTS: 0.

Output

STATUS: success | no_change | partial | failed | aborted
EVENTS: <count of spends reported>
TOTAL_XCH: <sum of XCH this run>
RESERVE_REMAINING_XCH: <total still in custody>
CHANNEL: <channel used> | inline | none
LAST_HEIGHT: <height written to state>
ARTIFACT: <path to inline alert file> | none
REASON: <one line, only when STATUS is failed, partial, or aborted>

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.