Skip to main content
This is the product. One call, one grounded verdict on whether an action is safe and sound — with the strongest surviving argument against it, and citations to external investor canon.
POST https://api.geckovision.tech/v1/research
Authorization: Bearer <session_token>
Content-Type: application/json

Request

{
  "idea": "deposit USDC into Kamino",
  "protocol": "kamino",
  "vertical": "dex"
}
FieldTypeNotes
ideastringThe action in plain language.
protocolstringThe venue/protocol the idea touches (kamino, drift, jupiter, …).
verticalstring?Optional. dex is the default lens.
The tier is forced to basic server-side — there is no tier toggle to expose. A basic verdict is synchronous and takes ~30–40s (seven specialists debate). Show a real loading state.

Response — TradePanelVerdict

{
  "verdict": "pass",
  "confidence": 0.62,
  "dissent": [
    { "voice": "strategist", "stance": "oppose",
      "verbatim": "The depeg-tail on the collateral leg isn't priced — a 3% wick liquidates the Multiply position before the monitor can rotate.",
      "on_topic": "collateral depeg risk" }
  ],
  "evidence_citations": [
    { "id": "c1", "source": "Kamino docs", "url": "https://...",
      "provider_kind": "protocol_docs", "freshness_tier": "static",
      "snippet": "Liquidation LTV for the USDC/SOL market is ..." }
  ],
  "framework_context": [
    { "id": "f1", "source": "Howard Marks — Risk", "url": "https://...",
      "provider_kind": "investor_canon", "freshness_tier": "static",
      "snippet": "Risk means more things can happen than will happen ..." }
  ],
  "key_drivers": ["hurdle not cleared net of fees", "buffer thin vs predicted downside"],
  "blocker_questions": ["What is the operating LTV at entry?"],
  "dissent_count": 1
}
FieldMeaning
verdict"act" · "pass" · "defer". A pass or defer is the productdon’t take this trade.
confidence0–1.
dissent[]The opposing voices that survived the debate. stance is "oppose" or "abstain". Make it prominent — a verdict with no honest dissent is a red flag, not a green light.
evidence_citations[]The data — protocol docs, market reads.
framework_context[]The lens — external investor canon (Marks, Damodaran, Berkshire letters).
key_drivers[] · blocker_questions[]Why, and what’s still unknown.
Citation url may be a hash fallback rather than a live link — guard before rendering an anchor. Receipt fields (tx_signature, solscan_url, settlement_mode, backtest) are present only when a verdict settles on-chain in live mode; in stub they are null — hide them.

Pricing & payment

A verdict is priced per call over x402 (see Pricing). The route is x402-gated only when X402_MODE != stub — in stub mode the call is free and the full payment path is still exercised.

Errors

CodeMeaning
401Missing/expired session token → re-onboard.
422Validation error on the body.
500Panel error (one-line message). Retry.
There is no 400 on this route. Seed the wedge with { "idea": "deposit USDC into Kamino", "protocol": "kamino", "vertical": "dex" } — it reliably returns a verdict with dissent and citations.