RektReceipt

DEVELOPER API

← Home

RektScore Public API

RektReceipt exposes a public API for projects to verify wallet reputation before granting whitelist access or presale spots. Every score is derived entirely from on-chain execution data — slippage paid, fees burned, rugs survived.

ENDPOINT

GEThttps://rektreceipt.xyz/api/score/{wallet}

PATH PARAMETER

wallet

Solana wallet address (base58). A wallet must have been audited at least once for a score to exist.

RESPONSES

200Score found. Returns the object below.
404No audit on file for this wallet.
429Rate limit exceeded. Retry after the Retry-After header.

EXAMPLE RESPONSE

application/json200 OK
{
  "score": 74,
  "grade": "B",
  "breakdown": {
    "winRate": 61,
    "slippageEfficiency": 78,
    "disciplineScore": 90,
    "rugResilience": 80,
    "bagHealth": 55
  }
}
SCORE74
B
Win Rate61

Profitable tokens traded / total tokens traded

Slippage Efficiency78

How well the wallet controls slippage loss relative to volume

Discipline Score90

Penalised for over-trading the same token repeatedly

Rug Resilience80

Penalised for each rug pull the wallet was caught in

Bag Health55

Dead-bag value as a share of total fees paid

RATE LIMITS

30 requests / minuteper IP address

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining. On a 429, use Retry-After (seconds) before retrying. For higher limits, reach out.

WHITELIST INTEGRATION

JavaScript / TypeScript
async function checkWalletReputation(wallet, minScore = 60) {
  const res = await fetch(
    `https://rektreceipt.xyz/api/score/${wallet}`
  );

  if (res.status === 404) {
    // Wallet has never been audited — no score on file
    return { allowed: false, reason: 'no_audit' };
  }
  if (!res.ok) throw new Error('RektReceipt API error');

  const { score, grade } = await res.json();

  if (score < minScore) {
    return { allowed: false, reason: 'score_too_low', score, grade };
  }

  return { allowed: true, score, grade };
}

// Usage — reject wallets below score 65
const result = await checkWalletReputation(walletAddress, 65);
if (!result.allowed) {
  throw new Error(`Wallet score ${result.score ?? 'unknown'} below threshold`);
}

Scores are cached for 1 hour. Re-audit a wallet at rektreceipt.xyz to refresh.

Signal Marketplace →