Hunch
IntegrationBankr x402 Cloudhunch-partner-api-v1

Hunch Intelligence, agent-payable.

A pool-weighted prediction-market crowd-conviction signal for any token — synthesised from every live Hunch market's odds and real on-chain betting depth. Free on Hunch, and packaged as a paid, agent-discoverable endpoint on Bankr's x402 Cloud — settling USDC on Base.

01 · Overview

The inverse of the betting rail

Hunch already runs a paid x402 endpoint agents pay to bet. x402 Cloud is the inverse: Bankr's turnkey way to deploy paid endpoints — hosting, the USDC payment, and agent discovery handled for you — that agents pay to read. So this integration sells Hunch's data moat where Bankr's bot will find it, with zero ops.

It is two halves that do what each side is best at:

  • The data — shipped by Hunch

    /api/partner/intel — live on playhunch.xyz, free, read-only.

  • The paid edge — deployed by you on Bankr

    hunch-intel — a thin proxy on x402 Cloud that meters access and collects USDC.

Nothing in Hunch's core changes — intel is a read-only synthesis over markets that already exist. The bet/settlement money path is untouched.

02 · The signal

One call, the whole crowd

GET /api/partner/intel?token=$SYMBOL returns a single sentiment score for a token plus the per-market breakdown behind it. Accepts $BNKR, BNKR, or bnkr. CORS-open, cache-friendly, no key.

It doesn't just report — it points to an action. Every signal carries a suggestedBet (the single most-backed directional market, the favoured side, and a one-tap quick-bet link) and a quality read (how many wallets back the score vs one whale) — so an agent can act, not just read.

GET /api/partner/intel?token=$BNKR

{
  "meta": { "version": "hunch-partner-api-v1", "generatedAt": "2026-06-15T05:23:53Z" },
  "token": "bnkr",
  "intel": {
    "token": "bnkr",
    "hasSignal": true,
    "marketCount": 7,
    "sentiment": {
      "score": 68,                  // 0-100, 50 = neutral
      "lean": 18,                   // score - 50
      "label": "strongly_bullish",
      "basis": "pool_weighted",
      "confidence": "low",          // only ~$4 backs it → honestly flagged
      "directionalMarketCount": 4,
      "directionalPoolUsd": 4
    },
    "suggestedBet": {
      "marketId": "bankr-100m-mcap-2026-06-30", "side": "yes",
      "sideLabel": "YES", "impliedCents": 68,
      "betUrl": ".../quick/bankr-100m-mcap-2026-06-30?side=yes&ref=x402"
    },
    "quality": { "distinctBettors": 3, "topWalletPct": 71.4, "label": "concentrated" },
    "activity": { "totalBets": 4, "totalPoolUsd": 5 },
    "topMarket": {
      "id": "bankr-100m-mcap-2026-06-30",
      "shortTitle": "$BNKR $100M by June 30",
      "kind": "binary",
      "yesPriceCents": 68,
      "directional": true,
      "totalPoolUsd": 4,
      "appUrl": "https://www.playhunch.xyz/markets/bankr-100m"
    },
    "markets": [ /* …7 markets, each with odds + pool… */ ],
    "summary": "$BNKR — Hunch crowd: 68/100 (strongly bullish, low confidence) across 7 markets · $5 pooled.",
    "asOf": "2026-06-15T05:23:53Z"
  }
}

A token with no live Hunch market returns hasSignal: false and a neutral, none-confidence shape — never an error, so an agent can branch cleanly.

Three ways to read it: this free partner endpoint, the paid x402 Cloud edge below, and — for agents that live in an MCP client — natively as the token_sentiment tool on Hunch's MCP server (or its REST twin GET /api/agent/v1/sentiment). Same synthesis, every surface.

03 · How the score works

Money-weighted, not vibes

The score is a pool-weighted average of the implied YES odds across a token's directional price markets — each weighted by how much real USDC is backing it. More money down → more weight.

  • Directional markets only

    Only the three unambiguous "YES = the token went up" shapes feed the signal: market-cap milestones, close-above-strike markets, and up/down rounds. Flips, ladders, and chain-metric markets count toward activity but not the directional read — folding them in would muddy "is the crowd bullish on this token's price".

  • Basis & confidence

    With money down, basis: pool_weighted and confidence scales with the backing USD — < $50 low, < $500 medium, ≥ $500 high. With markets but no money yet, it falls back to an equal-weight average of the implied odds (basis: equal_weight, low confidence). No directional markets → basis: none, neutral 50.

Label bands

  • score ≥ 67strongly_bullish
  • 56 – 66bullish
  • 45 – 55neutral
  • 34 – 44bearish
  • ≤ 33strongly_bearish

04 · API reference

Request & response

GET/api/partner/intel?token=$SYMBOL

Required: token. Returns 200 with the signal, or 422 invalid_token for a malformed symbol (and 404 when the partner API is disabled).

Response — intel object

  • token

    Normalised symbol, no $ (e.g. "bnkr").

  • hasSignal

    true ⟺ ≥ 1 live Hunch market is about this token.

  • marketCount

    Count of live Hunch markets about the token.

  • sentiment.score

    0–100 pool-weighted bullish index; 50 = neutral.

  • sentiment.lean

    score − 50, the signed lean (−50…+50).

  • sentiment.label

    strongly_bullish · bullish · neutral · bearish · strongly_bearish.

  • sentiment.basis

    pool_weighted · equal_weight · none — how the score was derived.

  • sentiment.confidence

    high · medium · low · none — by how much USD backs the signal.

  • sentiment.directionalMarketCount

    # markets feeding the directional signal.

  • sentiment.directionalPoolUsd

    USD pooled across those directional markets.

  • activity.totalBets / totalPoolUsd

    Bets + USD pooled across ALL the token's markets.

  • topMarket

    The hottest market by pool (full per-market object), or null.

  • suggestedBet

    The one bet the signal points to — most-backed directional market + favoured side + a one-tap quick-bet link. null if none.

  • quality.{distinctBettors, topWalletPct, label}

    Conviction quality: distinct wallets, the biggest wallet's stake share, and broad · mixed · concentrated · none.

  • markets[]

    Per-market breakdown: kind, yesPriceCents, pool, directional, appUrl, …

  • summary

    Render-ready one-liner you can show verbatim.

  • asOf

    ISO timestamp of the read.

05 · Examples

Read it from anything

The free Hunch endpoint, three ways:

# Free, live on Hunch — no key, no signup:
curl -s "https://www.playhunch.xyz/api/partner/intel?token=\$BNKR" | jq '.intel.sentiment'

# {
#   "score": 68, "lean": 18, "label": "strongly_bullish",
#   "basis": "pool_weighted", "confidence": "low", ...
# }
// Node / browser — native fetch, zero deps:
const res = await fetch(
  "https://www.playhunch.xyz/api/partner/intel?token=$BNKR",
);
const { intel } = await res.json();
console.log(intel.sentiment.score, intel.sentiment.label);
//        → 68 "strongly_bullish"
console.log(intel.summary);
//        → "$BNKR — Hunch crowd: 68/100 (strongly bullish, low confidence) across 7 markets · $5 pooled."
import httpx

r = httpx.get("https://www.playhunch.xyz/api/partner/intel", params={"token": "$BNKR"})
intel = r.json()["intel"]
print(intel["summary"])
print(intel["sentiment"]["score"], intel["sentiment"]["label"])

What agents do with it

  • Ground a TA reply

    An agent answering "is $BNKR a buy?" reads the score for a money-backed second opinion: "the Hunch crowd is 68/100 bullish with real USDC down".

  • Pre-trade conviction check

    Before a swap, an agent gates on sentiment.confidence and lean — skip when the crowd is bearish or the signal is thin.

  • Surface a bet to place

    topMarket + appUrl give the single most-backed Hunch market for the token, ready to drop in a reply with a one-tap link to bet.

  • Multi-token watchlist

    Poll a basket of tokens and rank by lean to find where prediction-market conviction is strongest right now.

06 · The paid x402 edge

How a paid read settles

The hunch-intel endpoint on x402 Cloud is a thin proxy over the free Hunch read. Hunch computes; Bankr hosts the paid edge, handles the payment, and makes it discoverable to agents; the USDC settles to your Bankr wallet. It's the standard x402 handshake:

  1. Call the endpoint

    An agent GETs hunch-intel?token=$BNKR with no payment header.

  2. Get a 402

    x402 Cloud replies 402 with the price ($0.005 USDC on Base) and your payTo wallet.

  3. Pay + retry

    The agent's wallet signs the USDC payment and retries with the X-PAYMENT header.

  4. 200 + signal

    Settle-after-response: the agent is billed only because the handler returned a real 200. Hunch's free read backs it.

HTTP/1.1 402 Payment Required

{
  "x402Version": 1,
  "accepts": [{
    "scheme": "exact",
    "network": "base",
    "maxAmountRequired": "5000",        // $0.005 USDC (6 decimals)
    "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",   // Base USDC
    "payTo": "<your Bankr wallet>"
  }]
}
# After you deploy the edge on Bankr x402 Cloud:
curl -i "https://x402.bankr.bot/<wallet>/hunch-intel?token=\$BNKR"
#   → HTTP/1.1 402 Payment Required   (USDC on Base)
# A funded agent signs the payment, retries, and gets 200 + the signal.

07 · Deploy on Bankr

~30 seconds, two ways

x402 Cloud runs the handler on Bankr's infra and pays out to your Bankr wallet, so this step is yours. The handler + runbook live in the repo under x402-cloud/.

RecommendedVia the Bankr agent
Paste to @bankrbot:

  Deploy an x402 endpoint called hunch-intel that proxies
  https://www.playhunch.xyz/api/partner/intel, forwarding the caller's
  ?token= param, and returns the JSON. Charge $0.005 per request, settle
  after a successful response, env HUNCH_API_BASE=https://www.playhunch.xyz.
  Here is the handler:

  <paste x402-cloud/hunch-intel/handler.mjs>

Bankr writes/wraps the handler, deploys it, and replies with the live URL (x402.bankr.bot/<wallet>/hunch-intel).

CLIbankr x402 deploy
# from x402-cloud/hunch-intel/
bankr x402 deploy
# then set price + env (confirm flags with `bankr x402 --help`):
bankr x402 set hunch-intel \
  --price 0.005 \
  --env HUNCH_API_BASE=https://www.playhunch.xyz

08 · Pricing & what's free

Meter the signal, never the funnel

  • Free, always

    /discover and /quote stay free — they feed the discover→bet funnel where Hunch earns its fees. Paywalling them would suppress the funnel.

  • Metered

    Only the standalone intel signal — valuable to a reader who never bets — sits behind the paid edge (suggested $0.005/call; x402 Cloud is free under 1k req/mo, then a 5% platform fee).

The honest near-term value is distribution and positioning — Hunch as the prediction-market data layer for agents — more than the per-call USDC, which compounds at agent-traffic scale.

09 · Why it helps

Both sides win

  • The Bankr ecosystem

    Every agent gets a new, payable capability — ground a take in a real, money-backed prediction signal, then tag @bankrbot to bet on it in-thread. A flagship third-party x402 Cloud use case, settling real USDC on Base.

  • Hunch

    A second way to monetise agents (they bet → Hunch earns fees, and they buy the signal), distribution on Bankr's native agent surface, and positioning as the prediction-market data layer — none of it touching the bet funnel.

Hunch Intelligence on x402 Cloud — Hunch