settlerisk
v1.0.0
Published
SettleRisk TypeScript SDK — resolution risk scoring for prediction markets
Maintainers
Readme
settlerisk
Official TypeScript/Node.js SDK for the SettleRisk API — resolution risk scoring, dispute pricing, and settlement delay modeling for prediction markets.
Installation
npm install settleriskRequires Node.js 18+. Zero runtime dependencies.
Quick Start
import { SettleRiskClient } from "settlerisk";
const client = new SettleRiskClient({
keyId: "vx_...",
secret: "your-api-secret",
});
// Get risk score for a market
const score = await client.getRiskScore("polymarket", "0xabc123");
console.log(score);
// Evaluate custom rules text
const result = await client.evaluateRules({
platform: "polymarket",
rules_text: "This market resolves YES if...",
resolution_sources: ["https://example.com"],
});
// Get dispute-adjusted pricing
const pricing = await client.price({
platform: "polymarket",
platform_market_id: "0xabc123",
mid_price: 0.65,
position_side: "YES",
position_notional_usd: 25000,
annual_capital_cost_apr: 0.12,
});Authentication
All requests are signed with HMAC-SHA256. The SDK handles signing automatically — just provide your key ID and secret from the SettleRisk dashboard.
API Methods
| Method | HTTP | Path |
|--------|------|------|
| getRiskScore(platform, marketId) | GET | /v1/markets/{platform}/{id}/risk-score |
| getExpectedDelay(platform, marketId) | GET | /v1/markets/{platform}/{id}/expected-delay |
| evaluateRules(request) | POST | /v1/evaluate-rules |
| batchRiskScores(markets) | POST | /v1/risk-scores:batch |
| batchExpectedDelays(markets) | POST | /v1/expected-delays:batch |
| price(request) | POST | /v1/pricing |
| batchPrice(items) | POST | /v1/pricing:batch |
| createWebhook(url, events) | POST | /v1/webhooks |
| listWebhooks() | GET | /v1/webhooks |
| deleteWebhook(webhookId) | DELETE | /v1/webhooks/{id} |
| rotateWebhookSecret(webhookId) | POST | /v1/webhooks/{id}/rotate-secret |
| listWebhookDeliveries() | GET | /v1/webhook-deliveries |
| replayWebhookDelivery(deliveryId) | POST | /v1/webhook-deliveries/{id}/replay |
| status() | GET | /v1/status |
Error Handling
import {
SettleRiskClient,
AuthenticationError,
RateLimitError,
ValidationError,
} from "settlerisk";
try {
const score = await client.getRiskScore("polymarket", "0xabc");
} catch (err) {
if (err instanceof RateLimitError) {
console.log(`Rate limited. Retry after: ${err.retryAfter}s`);
} else if (err instanceof AuthenticationError) {
console.log("Check your API credentials");
} else if (err instanceof ValidationError) {
console.log(`Invalid request: ${err.message}`);
}
}Automatic Retries
The client automatically retries on 429 (rate limit) and 5xx (server error) responses up to 3 times with exponential backoff. Each retry is re-signed with a fresh timestamp and nonce.
License
MIT
