ToolMint

Catalog / ToolMint Bounty Finder

Coming soon Crypto & web3

ToolMint Bounty Finder

Live crypto/USDC bounties, grants, hackathons and bug bounties from public sources, as one clean JSON list.

Routes and prices

RoutePriceWhat it doesParameters (* required)
GET /search$0.01Live crypto/USDC bounties, grants, hackathons and bug bounties (Superteam Earn, Immunefi, Devpost Blockchain) as one JSON list: payout + token + USD estimate, deadline, requirements (KYC, invite-only, location, agent access), source URL. Filters: kind, token, stablecoin, minUsd, dueWithinDays, noKyc, q, sort. Example: kind=bounty,grant&token=USDC&minUsd=500kind, source, token, stablecoin, minUsd, dueWithinDays, noKyc, status, q, sort, limit

Free routes: /, /health, /openapi.json, /.well-known/x402, /sources.

Try it

Not deployed yet. The URL below is the planned address. After launch, an unpaid call returns 402 with the terms in the price table.
curl -i "https://toolmint-bounty-finder.toolmint.workers.dev/search?kind=bounty,grant&token=USDC&minUsd=500"

What question it answers

"What paid work is open right now in crypto, and what does it pay?" One call returns a merged list from Superteam Earn (bounties and grants), Immunefi (bug bounty programs) and Devpost (hackathons tagged Blockchain), in one JSON shape: payout, token, USD estimate where it can be stated honestly, deadline, requirements (KYC, invite-only, location, agent access) and a link to the source page.

When to use it

  • An agent looks for work it could take on, filtered by token (token=USDC), size (minUsd=500), urgency (dueWithinDays=14) or noKyc=true.
  • You want one list instead of three site-specific scrapers.

When not to

  • It is a pointer to public listings, not an application service. Confirm payouts, deadlines and eligibility on the source page (url) before doing any work. Not financial advice.
  • usdEstimate is null for non-stablecoin tokens and non-USD prizes. Hackathon prizes are usually fiat. For Immunefi, usdEstimate is the program's maximum bounty, which is a ceiling, not a typical payout.
  • noKyc=true only drops items that state KYC is required. Many items say nothing (kyc: null) and are kept.
  • Four sources only; it does not cover every bounty board.

Example

curl -i "https://toolmint-bounty-finder.toolmint.workers.dev/search?kind=bounty,grant&token=USDC&minUsd=500&limit=5"

Unpaid, this returns HTTP 402. Trimmed 200 response shape (the item is the example from the Worker's discovery metadata, not a live listing):

{
  "tool": "bounty-finder-json",
  "version": "0.1.0",
  "query": { "kinds": ["bounty", "grant"], "token": "USDC", "minUsd": 500, "status": "active", "sort": "deadline", "limit": 5 },
  "sources": [
    { "id": "superteam_bounties", "ok": true, "cached": false, "fetchedAt": "2026-10-31T...Z", "count": 40, "error": null },
    { "id": "superteam_grants",   "ok": true, "cached": false, "fetchedAt": "2026-10-31T...Z", "count": 12, "error": null }
  ],
  "generatedAt": "2026-10-31T...Z",
  "partial": false,
  "count": 1,
  "totalMatched": 1,
  "items": [{
    "id": "superteam:example-bounty",
    "source": "superteam_bounties",
    "kind": "bounty",
    "title": "Write a Solana Pay integration guide",
    "organizer": "Example Sponsor",
    "payout": { "amount": 1500, "minAmount": 1500, "maxAmount": 1500, "token": "USDC",
                "model": "fixed", "usdEstimate": 1500, "stablecoin": true },
    "deadline": "2026-11-15T23:59:59.000Z",
    "deadlinePrecision": "datetime",
    "status": "open",
    "requirements": { "kyc": null, "inviteOnly": null, "location": null, "agentAccess": "AGENT_ALLOWED",
                      "ecosystems": ["Solana"], "categories": [], "notes": [] },
    "url": "https://superteam.fun/earn/listing/example-bounty"
  }],
  "provenance": [{ "source": "superteam_bounties", "site": "https://superteam.fun/earn", "terms": "..." }],
  "notice": "Facts are pulled live from each public source and linked back; ToolMint is not affiliated with any source. ..."
}

The counts in sources[] above are placeholders. Other filters: source, stablecoin, status (active, open, upcoming), q (up to 80 chars), sort (deadline, payout, newest), kind (bounty, grant, hackathon, bug_bounty, all). The free GET /sources lists the sources and their terms notes.

Data sources and licence

Fixed public endpoints at superteam.fun, immunefi.com and devpost.com. None states a data licence, so the tool returns facts (titles, amounts, dates, flags) and links back, and never copies program rules text. Check each source's terms for your own use. ToolMint is not affiliated with any of them.

Freshness and limits

  • Cached per source on a warm Worker instance: 10 minutes for Superteam bounties, 30 minutes for the others. sources[].fetchedAt tells you how old each source is.
  • At most 100 items per call (default 25).
  • Deadlines from Devpost are dates only (deadlinePrecision: "date", no time zone).
  • Superteam grants are rolling (deadline: null).

Errors are not charged

Payment settles only on a successful answer. These responses are never settled:

StatusMeaning (from the OpenAPI)Charged?
400Bad input, code bad_input (no charge; rejected before payment)No
404No matches, code no_matches (not charged)No
500Internal error, code internal (not charged)No
502All selected sources unavailable, code upstream_error (not charged; a failed source is retried after 60 s)No
503Payment init down, code payment_unavailable, Retry-After (not charged)No