Skip to content

feat: six sports venues (Novig, Matchbook, ProphetX, Azuro, Myriad, Gemini) - #42

Merged
YukiC0804 merged 16 commits into
mainfrom
sp/sports-venues
Oct 25, 2026
Merged

YukiC0804 merged 16 commits into
mainfrom
sp/sports-venues

Conversation

@YukiC0804

Copy link
Copy Markdown
Collaborator

Adds six venues, bringing the SDK to 16: Novig, Matchbook, ProphetX, Azuro, Myriad and Gemini Predictions. Each has market data, streams and trading, wired through Client, the engine feeds, synpath serve, synpath init and synpath doctor, with docs and .env.example entries.

Venue Market data without a key Streams Trading credentials
Novig Public catalog: markets, events, books, trades, fees Signed websocket with a trading key; polls the public book without one NOVIG_KEY_ID, NOVIG_PRIVATE_KEY_PATH, NOVIG_ENV (NOVIG-V3, Ed25519 / P-256)
Matchbook Sports, events, markets, books, fees Polled (no push API) MATCHBOOK_USERNAME, MATCHBOOK_PASSWORD
ProphetX None: every route is keyed Pusher book / trade stream and account stream PROPHETX_ACCESS_KEY, PROPHETX_SECRET_KEY (market data also with PROPHETX_AFFILIATE_KEY)
Azuro Games, conditions, bet tape, limits, fees Feed websocket AZURO_PRIVATE_KEY (EIP-712 bets with a minimum-odds bound)
Myriad Order-book and AMM markets, books, trades, fees Centrifugo websocket MYRIAD_PRIVATE_KEY (+ HMAC API key or SIWE); order-book markets only
Gemini Events, sports taxonomy, books, trades, candles, fees Market and signed user streams GEMINI_API_KEY, GEMINI_API_SECRET (HMAC-SHA384)

Mapping follows the existing venues: two-outcome markets are YES / NO with the venue's first listed (or lowest-id) outcome as YES; back/lay follows Betfair (back = YES ask); American and decimal odds convert exactly to 0–1 prices. New fee types: pool_margin (Azuro), bps_by_price and share_of_value (Myriad); quadratic_theta and min_price round up to the cent when asked (Gemini).

Trading paths are built from each venue's documentation and signing is checked against published or independently computed vectors (Novig's 30 sample signatures, Azuro's toolkit, eth_account, openssl); none was sent against a live account.

Tests: 3414 passed, 3 skipped on the Rust core; 2918 passed with SYNPATH_PURE_PYTHON=1. cargo fmt, clippy and cargo test pass; the sdist builds.

🤖 Generated with Claude Code

Yuki Chu and others added 16 commits October 23, 2026 17:59
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The init wizard now asks sixteen venues (Myriad after Azuro, Gemini last):
every scripted run answers one question per added venue, and the Myriad,
Gemini and Novig setup tests answer at their combined positions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@YukiC0804
YukiC0804 merged commit dd8e570 into main Oct 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant