API Documentation

Score any Solana wallet with a single GET request. JSON response, no SDK required.

GET /api/score/:address

Returns the reputation score, grade, and full signal breakdown for a wallet. The first request scores from the most recent 1,000 transactions, then a deep scan runs in the background covering the wallet's entire history.

Request

GET https://jetcheck.io/api/score/{wallet_address}

Response

{
  "success": true,
  "data": {
    "wallet": "...",
    "score": 0-100,
    "grade": "Toxic | Poor | Fair | Good | Excellent",
    "breakdown": {
      "sniper_penalty":   -20 to 0,
      "bot_penalty":      -10 to 0,
      "age_penalty":      -10 to 0,
      "wash_penalty":     -20 to 0,
      "hold_bonus":         0 to 15,
      "age_bonus":          0 to 10,
      "diversity_bonus":    0 to 10,
      "defi_bonus":         0 to 10
    },
    "total_tx_count": number,
    "swap_count": number,
    "error_count": number,
    "first_seen_slot": number,
    "last_seen_slot": number,
    "unique_program_count": number,
    "scored_at": unix_timestamp
  },
  "deep": boolean
}

Try it

POST /api/score/batch

Score up to 10 wallets in a single request. Each wallet is scored from its most recent 1,000 transactions.

Request

POST https://jetcheck.io/api/score/batch
Content-Type: application/json

{
  "addresses": ["wallet_1", "wallet_2", ...]
}

Response

{
  "success": true,
  "data": [
    { "wallet": "...", "score": 72, "grade": "Good" },
    { "wallet": "...", "score": 45, "grade": "Fair" }
  ]
}

Integration

JavaScript / TypeScript

const res = await fetch(
  "https://jetcheck.io/api/score/" + walletAddress
);
const { data } = await res.json();

if (data.score >= 80) {
  // High trust — 2x rewards
} else if (data.score >= 50) {
  // Standard — 1x rewards
} else {
  // Low trust — 0.2x rewards
}

Python

import requests

r = requests.get(f"https://jetcheck.io/api/score/{wallet_address}")
score = r.json()["data"]

print(f"{score['grade']} — {score['score']}/100")
print(f"Penalties: sniper={score['breakdown']['sniper_penalty']}")
print(f"Bonuses:   hold={score['breakdown']['hold_bonus']}")

Scoring

Base score of 50, clamped 0–100. Eight signals, graduated scales.

sniper_penaltyHigh swap ratio in short time windows
-20 to 0
bot_penaltyElevated transaction error rate
-10 to 0
age_penaltyWallet younger than 6 weeks
-10 to 0
wash_penaltyFew programs + heavy swap activity
-20 to 0
hold_bonusSpan between first and last transaction
0 to +15
age_bonusWallet age from first transaction to now
0 to +10
diversity_bonusNumber of unique programs interacted with
0 to +10
defi_bonusStaking, lending, or other DeFi activity
0 to +10