DEVELOPER API
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
https://rektreceipt.xyz/api/score/{wallet}PATH PARAMETER
walletSolana wallet address (base58). A wallet must have been audited at least once for a score to exist.
RESPONSES
Retry-After header.EXAMPLE RESPONSE
{
"score": 74,
"grade": "B",
"breakdown": {
"winRate": 61,
"slippageEfficiency": 78,
"disciplineScore": 90,
"rugResilience": 80,
"bagHealth": 55
}
}Profitable tokens traded / total tokens traded
How well the wallet controls slippage loss relative to volume
Penalised for over-trading the same token repeatedly
Penalised for each rug pull the wallet was caught in
Dead-bag value as a share of total fees paid
RATE LIMITS
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
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 →