---
title: "Paid multi-advisor risk panel for a Solana token with consensus (x402)"
method: GET
path: "/v1/risk-panel/{mint}"
---

# Paid multi-advisor risk panel for a Solana token with consensus (x402)

`GET /v1/risk-panel/{mint}`

## Request

- Base URL: `https://getrugshield.com` (the document declares no server; this is the origin it was published from)
- URL: `https://getrugshield.com/v1/risk-panel/{mint}`
- Auth: none declared

Parallel Solana risk advisors; flags are not proof of safety. Select ?advisors=a,b from GET /v1/advisors or omit for all. Price = advisor cost + max(US$ 0.005, 15% of advisor cost). Exact prepayment returns 202 charged:true, receipt and job_id/status_url. Advisors run only after the buyer receipt is saved. Poll status_url for free; no second signed request or payment. Paid failures need review, with no automatic refund.

## Path parameters

- `mint` string, required

## Query parameters

- `advisors` string, nullable: Comma-separated anonymous ids from free GET /v1/advisors; omit for all compatible advisors.
- `chain` string: CAIP-2 network id of the token being analyzed, distinct from the x402 payment network. Currently only Solana mainnet is accepted.
- `prefer_async` boolean: Compatibility option: every new panel prepays once and returns HTTP 202 job_id/status_url. Poll for free until ready; no further signed request or payment is needed.

## Headers

- `idempotency-key` string, nullable: Optional canonical 43-character base64url key generated from 32 random bytes, for example secrets.token_urlsafe(32). Send with the first signed x402 request. Replay this key, original PAYMENT-SIGNATURE and exact panel URL only to recover a lost acceptance; poll status_url for the final result. A different payment or query returns 409. If no key was used, replay with X-RugShield-Job-ID and the original proof; never send both recovery headers.
- `PAYMENT-SIGNATURE` string
- `X-RugShield-Job-ID` string

## Response `200`

Historical completed panel recovery; new panels return 202 acceptance.

- object
  - `mint` string, required
  - `price_usd` number, required
  - `consensus` object, required
    - `risk` number, nullable, required
    - `level` 'LOW' | 'MEDIUM' | 'HIGH' | 'NO_SCORE', required
    - `advisors_scored` integer, required
  - `advisors` object[], required
    - `id` string, required
    - `verdict` string, nullable, required
    - `risk` number, nullable, required
    - `facts` object, nullable, required
    - `answered` boolean, required
    - `error` string, nullable, required
    - `latency_ms` number, required
  - `rugshield_flags` object, nullable, required
    - `mint` string, required
    - `token_name` string, nullable, required
    - `token_symbol` string, nullable, required
    - `deployer` string, required
    - `verdict` 'RISK_FLAGS' | 'NO_FLAGS', required
    - `flags` object[], required
      - `id` string, required
      - `detail` string, required
      - `measured_precision` number: Historical share of flagged tokens labeled rug in a selected cohort; not a prospective guarantee.
      - `false_positive_rate` number: Historical share of labeled healthy tokens flagged in a selected cohort; not a prospective guarantee.
      - `sample` string: Selected historical evaluation cohort and date; does not establish performance on new tokens.
      - `hits` object[]
        - `signature` string, nullable, required
        - `fee_lamports` integer, required
        - `fee_payer` string, nullable, required
        - `matches` string, required
    - `deployer_stats` object, nullable, required
      - `tokens_launched` integer, required
      - `graduation_rate` number, required
    - `checks_unavailable` string[], required
    - `note` string, required
  - `note` string, required
  - `pricing` 'exact' | 'upto', required
  - `charged_usd` number, required

## Other responses

- `202`: Exact payment confirmed and durably stored before advisors start. Poll status_url for free; no second signed request is needed. A later analysis failure retains charged:true and the receipt; no automatic refund.
- `400`: Invalid token network, address, advisor choice or Idempotency-Key; no payment is settled.
- `402`: Payment Required: x402 challenge with the exact USDC price and accepted payment networks
- `409`: Payment proof or Idempotency-Key conflicts with a different panel request, an unpaid job requires its original authorization and returned job handle, a settled proof lacks matching recovery credentials, or an earlier outcome is uncertain. Advisors are not called again and no new payment is settled.
- `422`: Validation Error
- `502`: No usable result; payment is not settled.
- `503`: Queue busy, prepayment preflight failure or buyer settlement in progress. No advisor is called before confirmed buyer funding. charged:null means another settlement is in progress; do not authorize another payment. Retry-After is a polling interval, not a completion deadline.

---

[API](https://skmtc.dev/getrugshield/apis/rugshield-parallel-solana-risk-api.md) · [All operations](https://skmtc.dev/getrugshield/apis/rugshield-parallel-solana-risk-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getrugshield/apis/rugshield-parallel-solana-risk-api/revisions/5395ade4e1f8?raw)
