Build with it
Docs / Get started / Gate your first trade
Build a pre-trade token risk gate.
Call the Verdict API before money moves, branch on avoid, caution, or clear, and stop when the service cannot produce a valid result.
01
Get a key.
Mint a keyed Free credential at POST /v2/keys, or fund a prepaid key for higher usage. Wallet-native callers can instead use the x402 challenge returned by the verdict endpoint.
Keyed Free allowances are 2000 triage, 300 fast, and 10 deep calls per day.
02
Make one pinned call.
This runnable request is generated from the checked-in live JUP fixture. The API key comes from your environment.
curl -sS -X POST https://api.vswarm.io/v2/verdict \
-H "Content-Type: application/json" \
-H "X-API-Key: $VS_API_KEY" \
-d '{"address":"JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN","chain":"solana","level":"fast","include":[]}'03
Read the decision first.
Branch on verdict.action. Score, grade, confidence, and signals explain that action; they do not replace it.
{
"schema_version": "1.1",
"request": {
"address": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"chain": "solana",
"level": "fast",
"include": []
},
"verdict": {
"action": "caution",
"score": 82,
"grade": "A",
"risk_level": "low",
"confidence": 1,
"summary": "Jupiter (JUP) is a well-established major Solana ecosystem token with strong financials, a long operating history, and safe authority settings."
},
"signals": [
{
"id": "honeypot_simulation",
"category": "security",
"severity": "critical",
"pass": true,
"value": "ok",
"detail": "Sell simulation passed."
},
{
"id": "mint_authority",
"category": "security",
"severity": "critical",
"pass": true,
"value": "revoked",
"detail": "Mint authority revoked — cannot inflate supply."
},
{
"id": "freeze_authority",
"category": "security",
"severity": "high",
"pass": true,
"value": "revoked",
"detail": "Freeze authority revoked — holders cannot be frozen."
},
{
"id": "top10_holder_concentration",
"category": "distribution",
"severity": "high",
"pass": false,
"value": 66.2,
"detail": "Top-10 wallets hold 66.2% of supply."
},
{
"id": "contract_verified",
"category": "transparency",
"severity": "medium",
"pass": true,
"value": "verified",
"detail": "Contract source code is publicly verified."
},
{
"id": "liquidity_vs_mcap",
"category": "liquidity",
"severity": "high",
"pass": false,
"value": 0.0033,
"detail": "Very low liquidity ratio: 0.33% of market cap."
}
],
"agents": [
{
"name": "FreeTierAI",
"score": 8.2,
"sentiment": "bullish",
"key_findings": [
"Token age is 919 days, indicating a long-standing and established project.",
"Market cap stands at $607.5M with $2.0M in liquidity, reflecting mature market operations.",
"Mint and freeze authorities have both been revoked, eliminating centralized supply manipulation risks.",
"Missing holder metrics are typical data provider anomalies for high-volume native assets and do not negate foundational safety."
],
"reasoning": null
}
],
"data_freshness": {
"onchain_age_seconds": 2911,
"market_age_seconds": 3,
"social_age_seconds": 3,
"basis": "observed"
},
"token": {
"name": "Jupiter",
"symbol": "JUP",
"price_usd": 0.1829,
"liquidity_usd": 2021849.5,
"mcap_usd": 607509009,
"fdv_usd": 1280767814,
"volume_24h_usd": 316009.15,
"holder_count": 827230,
"age_days": 919,
"top10_holder_pct": 66.22
},
"data_quality": {
"required_missing": [
"Holder data"
],
"optional_missing": [],
"warnings": [
"Required data missing: Holder data unavailable during initial scan. Treat as missing data, not a negative signal.",
"Holder count reported as 0 with mcap $607.5M — likely API limitation, not indicative of actual holder base",
"Top 10 holder concentration unavailable — data source did not return holder distribution. Do not penalize for missing data."
],
"degraded_agents": []
},
"liquidity_exposure_cap_usd": 10000,
"data_confidence": 1,
"insufficient_data": false,
"lifecycle": null,
"timing": null,
"observation_id": "9cd71c81-86a4-4380-9eb0-d7e482948e98",
"cached": false,
"generated_at": "2026-08-07T16:55:18.090125Z",
"latency_ms": 3099,
"billing": {
"rail": "free",
"amount_usdc": "0",
"tx": null,
"degraded": false,
"retry_voucher": null
}
}04
Gate execution.
Keep the verdict as one control inside your own policy. A clear result permits the next control to run; it does not compel a trade.
decision = response["verdict"]["action"]
if decision == "clear":
continue_only_if_local_policy_passes()
elif decision == "caution":
require_review()
else:
block_execution()05
Write the integrator policy.
| Decision | Meaning | Integrator action | Log |
|---|---|---|---|
| avoid | A blocking risk signal was found. | Stop execution. | Action, score, signal ids, observation id, and failure context. |
| caution | Material concerns or uncertainty need verification. | Pause for review or a policy-approved deeper call. | Action, confidence, unresolved signals, and chosen escalation. |
| clear | No policy blocker was identified in the available data. | Continue only if every other local control passes. | Action, data freshness, observation id, and local controls. |
Builder questions
How does Free API access work?
Mint a key without account auth. Daily allowances are tracked separately for triage, fast, and deep; x402 or prepaid credits can cover later calls.
When should a human upgrade?
Pro is $19.99 per month, or $15.99 per month billed annually, with 50 web scans per day and the configured specialist panel.
Which chains can the verdict endpoint scan?
solana and base only. Other chains must stop at your routing boundary.
Can an autonomous agent call it?
Yes. Use the API with x402 or prepaid credits, the published MCP server, or the Virtuals ACP offering. See the integration guide.
Understand it
Read what the machine decided.
A verdict is an execution-oriented risk assessment built from deterministic signals, live data, and—at deep depth—a specialist analyst swarm.
What a verdict is.
AVOID means a blocking risk signal was found. CAUTION means material concerns or uncertainty require verification. CLEAR means no policy blocker was identified in the available data. The result is automated risk information, not financial advice.
Read the full decision and evidence methodology for analysis depths, base category weights, uncertainty rules, and bounded outcome accounting.
The 6 analysts.
Deep calls run the configured specialist panel independently, then cross-examine material disagreement before adjudication.
SCOUT
Technician
On-chain technical analysis
SCOUT
Security
Smart contract security audit
INVESTIGATOR
Tokenomics
Token distribution and economics analysis
INVESTIGATOR
Social
Social intelligence and sentiment analysis
INVESTIGATOR
Macro
Macro market conditions analysis
INVESTIGATOR
Devil's Advocate
Skeptical due-diligence contrarian analysis
How the score works.
The score and grade summarize the supporting analysis. The configured thresholds below map the score to a grade; the authoritative pre-trade signal remains verdict.action.
| Score | Grade | Risk |
|---|---|---|
| 90–100 | A+ | LOW |
| 80–89 | A | LOW |
| 70–79 | B | MEDIUM |
| 60–69 | C | MEDIUM |
| 40–59 | D | HIGH |
| 0–39 | F | CRITICAL |
Reading a receipt.
Start with the action, verify confidence and freshness, inspect the signals, then retain the observation id as the decision receipt. Report pages and proof surfaces are verification aids; no public immutable verdict-storage product is claimed.
| Field | Read as | Reader policy |
|---|---|---|
| verdict.action | The authoritative execution signal. | CLEAR is not a buy recommendation. |
| verdict.score | A summary of the supporting analysis. | It does not override the action. |
| verdict.confidence | How strongly the available evidence supports the result. | Check data coverage before relying on it. |
| signals | The machine-readable evidence behind the decision. | Inspect failed and high-severity signals. |
Who runs this
Sentien Labs LLC.
VerdictSwarm is built by Sentien Labs LLC, a Texas-based company focused on applied AI products.