All skills

Agent skill

HermesAgent

Automate Pump.fun social bounties with HermesAgent. Discovers open bounties,

Install path

.cursor/skills/pumpfun-bounties-hermes/SKILL.md

Pump.fun Bounties for HermesAgent

HermesAgent skill for automating **social deliverables** on Pump.fun bounty

boards: tweet tasks, quote-retweets, meme captions, and thread submissions.

When to use this skill

  • User asks to "run bounties", "check pump.fun bounties", or "complete a tweet bounty"
  • A scheduled cron triggers pumpfun-bounties-hermes
  • A bounty brief mentions X/Twitter deliverables (tweet, thread, QT, meme)

Do **not** use for on-chain proofs, wallet signing, or holder snapshots.

Use the OpenClaw skill instead.

Prerequisites

VariableRequiredDescription
PUMPFUN_API_KEYYesPump.fun API key for bounty feed access
X_BEARER_TOKENYesX API v2 bearer token for posting
X_ACCOUNT_IDYesConnected account ID
BOUNTY_MIN_REWARD_SOLNoMinimum reward filter (default: 0.05)
BOUNTY_MAX_ACTIVENoMax concurrent submissions (default: 3)

Bounty lifecycle

1. Discover

Poll the bounty feed every 6 hours (or on manual invoke):

GET https://frontend-api.pump.fun/bounties?status=open&sort=reward_desc

Filter bounties where:

  • reward_sol >= BOUNTY_MIN_REWARD_SOL
  • deliverable_type is tweet, thread, meme, or quote_retweet
  • deadline is more than 2 hours away
  • Bounty ID is not in ~/.bountyos/completed.json

2. Parse brief

Extract structured fields from each bounty description:

  • **Token**: $TICKER, contract address, pump.fun link
  • **Deliverable**: tweet text constraints, hashtag requirements, media rules
  • **Proof**: URL format expected by submit endpoint
  • **Restrictions**: "no bots", "original content only", min follower count

If the brief is ambiguous, skip and log to ~/.bountyos/skipped.json.

3. Draft content

Generate deliverables matching the brief:

  • **Tweet**: ≤280 chars unless thread specified. Include required $TICKER and hashtags verbatim.
  • **Thread**: 3 to 7 tweets. First tweet hooks; last tweet includes pump.fun link.
  • **Meme**: Draft caption only; attach image from assets/ if brief allows templates.
  • **Quote retweet**: Draft commentary (≥50 chars) referencing the linked tweet.

Tone: concise, CT-native, no financial advice disclaimers unless brief requires.

4. Post and submit proof

1. Post via X API v2 (POST /2/tweets)

2. Capture tweet_id and construct proof URL: https://x.com/i/status/{tweet_id}

3. Submit to Pump.fun:

POST https://frontend-api.pump.fun/bounties/{bounty_id}/submit
Content-Type: application/json

{
  "proof_url": "https://x.com/i/status/...",
  "agent": "hermesagent",
  "metadata": { "tweet_id": "..." }
}

5. Track and claim

  • Append bounty ID + tx pending status to ~/.bountyos/active.json
  • Poll submission status until approved or rejected
  • On approval, record payout signature in ~/.bountyos/completed.json
  • On rejection, log reason and do not retry the same bounty

File layout

~/.bountyos/
├── completed.json    # { bounty_id, payout_sig, completed_at }
├── active.json       # in-flight submissions
├── skipped.json      # skipped with reason
└── logs/
    └── YYYY-MM-DD.jsonl

Safety rules

  • Never post content that violates X automation policies or Pump.fun ToS
  • Never exceed BOUNTY_MAX_ACTIVE concurrent submissions
  • Never reuse tweet text across different token bounties
  • Confirm with user before posting if reward_sol > 1.0
  • Rate-limit X API calls: max 50 posts per 24h

Example invocation

User: Run the pump.fun bounty scanner and complete any tweet bounties over 0.1 SOL

Agent:
1. Load pumpfun-bounties-hermes skill
2. Fetch open bounties, filter social deliverables ≥ 0.1 SOL
3. Draft and post highest-reward eligible bounty
4. Submit proof URL
5. Report bounty ID, tweet link, and pending approval status

Troubleshooting

ErrorAction
403 on bounty feedRotate PUMPFUN_API_KEY
429 on X APIBack off 15 min, reduce batch size
submission_rejectedRead rejection_reason, do not auto-retry
Duplicate content flagRegenerate with different hook angle