@predigy/edge-sdk
v1.0.0
Published
Official JavaScript/TypeScript SDK for the EDGE by Predigy prediction market API
Downloads
48
Maintainers
Readme
@predigy/edge-sdk
Official JavaScript/TypeScript SDK for the EDGE by Predigy prediction market API.
Installation
npm install @predigy/edge-sdkQuick Start
import { EdgeClient } from "@predigy/edge-sdk";
const client = new EdgeClient({
baseUrl: "https://edge-production-7b77.up.railway.app",
apiKey: "your-api-key",
});
// List markets
const { markets } = await client.listMarkets({ status: "OPEN" });
// Get a quote
const quote = await client.getQuote("mkt_abc123", {
side: "YES",
amount: 100,
});
// Execute a trade
const trade = await client.executeTrade("mkt_abc123", {
side: "YES",
amount: 100,
max_avg_price: 0.65, // optional slippage protection
});WebSocket (Real-Time Prices)
import { EdgeWebSocket } from "@predigy/edge-sdk";
const ws = new EdgeWebSocket({
baseUrl: "https://edge-production-7b77.up.railway.app",
apiKey: "your-api-key",
});
ws.onMessage((data) => {
console.log("Price update:", data.prices);
}).onError((err) => {
console.error("WS error:", err);
});
ws.connect("mkt_abc123");Webhook Verification
import { verifyWebhookSignature } from "@predigy/edge-sdk";
// In your webhook handler (Express, etc.)
const isValid = await verifyWebhookSignature(
rawBody,
req.headers["x-edge-signature"],
process.env.WEBHOOK_SECRET,
);Widget Embed
import { EdgeWidget } from "@predigy/edge-sdk";
const widget = new EdgeWidget({
frontendUrl: "https://edge-by-predigy.netlify.app",
container: "#trading-widget",
theme: "draftkings",
marketId: "mkt_abc123",
});
widget.mount();
widget.on("trade", (data) => console.log("Trade executed:", data));Error Handling
import { EdgeClient, EdgeAuthError, EdgeRateLimitError } from "@predigy/edge-sdk";
try {
await client.executeTrade("mkt_abc", { side: "YES", amount: 100 });
} catch (err) {
if (err instanceof EdgeAuthError) {
console.error("Invalid API key");
} else if (err instanceof EdgeRateLimitError) {
console.error(`Rate limited. Retry after ${err.retryAfter}s`);
}
}API Reference
EdgeClient Methods
| Method | Description |
|--------|-------------|
| listMarkets(params?) | List markets with optional filters |
| getMarket(id) | Get market by external ID |
| createMarket(data) | Create a new market (admin) |
| getQuote(marketId, params) | Get a price quote |
| executeTrade(marketId, params) | Execute a trade |
| sellPosition(marketId, params) | Sell contracts |
| getPortfolio() | Get user portfolio |
| getStats() | Get platform statistics |
| getRevenue() | Get revenue breakdown |
| settleMarket(id, outcome) | Settle a market (admin) |
| resetSandbox() | Reset sandbox data |
| createWebhook(params) | Register a webhook |
| listWebhooks() | List webhooks |
| deleteWebhook(id) | Delete a webhook |
| healthCheck() | Health check |
License
MIT
