synpath 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- synpath/__init__.py +183 -0
- synpath/__main__.py +66 -0
- synpath/base.py +723 -0
- synpath/bucket.py +154 -0
- synpath/client.py +356 -0
- synpath/engine/__init__.py +37 -0
- synpath/engine/__main__.py +354 -0
- synpath/engine/alerts.py +170 -0
- synpath/engine/engine.py +888 -0
- synpath/engine/eod.py +154 -0
- synpath/engine/events.py +140 -0
- synpath/engine/fair_values.py +117 -0
- synpath/engine/feeds.py +220 -0
- synpath/engine/journal.py +907 -0
- synpath/engine/ledger.py +353 -0
- synpath/engine/orders/__init__.py +42 -0
- synpath/engine/orders/base.py +441 -0
- synpath/engine/orders/day.py +72 -0
- synpath/engine/orders/iceberg.py +121 -0
- synpath/engine/orders/manager.py +223 -0
- synpath/engine/orders/oco.py +255 -0
- synpath/engine/orders/peg.py +168 -0
- synpath/engine/orders/routed.py +496 -0
- synpath/engine/orders/stop.py +240 -0
- synpath/engine/orders/taker.py +187 -0
- synpath/engine/orders/twap.py +190 -0
- synpath/engine/paper.py +532 -0
- synpath/engine/reconcile.py +279 -0
- synpath/engine/risk.py +403 -0
- synpath/engine/router.py +261 -0
- synpath/errors.py +98 -0
- synpath/history.py +71 -0
- synpath/hosted.py +86 -0
- synpath/hosted_auth.py +201 -0
- synpath/ids.py +61 -0
- synpath/kalshi.py +1378 -0
- synpath/matching.py +86 -0
- synpath/polymarket.py +1004 -0
- synpath/polymarket_us.py +989 -0
- synpath/remote.py +195 -0
- synpath/server/__init__.py +98 -0
- synpath/server/__main__.py +118 -0
- synpath/server/api.py +439 -0
- synpath/server/errors.py +87 -0
- synpath/server/local.py +96 -0
- synpath/server/models.py +75 -0
- synpath/server/serve.py +236 -0
- synpath/server/store.py +363 -0
- synpath/server/trading.py +764 -0
- synpath/trading/__init__.py +79 -0
- synpath/trading/__main__.py +69 -0
- synpath/trading/base.py +126 -0
- synpath/trading/credentials.py +400 -0
- synpath/trading/errors.py +94 -0
- synpath/trading/init.py +233 -0
- synpath/trading/instruments.py +162 -0
- synpath/trading/kalshi.py +957 -0
- synpath/trading/limiter.py +177 -0
- synpath/trading/money.py +172 -0
- synpath/trading/polymarket.py +1362 -0
- synpath/trading/polymarket_signing.py +478 -0
- synpath/trading/polymarket_us.py +705 -0
- synpath/trading/polymarket_us_exchange.py +825 -0
- synpath/trading/types.py +414 -0
- synpath/types.py +608 -0
- synpath/ws/__init__.py +55 -0
- synpath/ws/base.py +544 -0
- synpath/ws/grpc.py +578 -0
- synpath/ws/kalshi.py +418 -0
- synpath/ws/polymarket.py +430 -0
- synpath/ws/polymarket_us.py +299 -0
- synpath/ws/polymarket_us_exchange.py +754 -0
- synpath-0.1.0.dist-info/METADATA +224 -0
- synpath-0.1.0.dist-info/RECORD +77 -0
- synpath-0.1.0.dist-info/WHEEL +4 -0
- synpath-0.1.0.dist-info/entry_points.txt +2 -0
- synpath-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: synpath
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: One API for prediction markets. Kalshi and Polymarket, normalized, with every price labelled by source and time.
|
|
5
|
+
Project-URL: Homepage, https://synpath.dev
|
|
6
|
+
Project-URL: Documentation, https://synpath.dev/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/Synpath-ai/synpath
|
|
8
|
+
Project-URL: Issues, https://github.com/Synpath-ai/synpath/issues
|
|
9
|
+
Project-URL: Discord, https://discord.gg/QZzsHTpGA3
|
|
10
|
+
Author: Synpath
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: kalshi,market-data,polymarket,prediction-markets,trading,unified-api
|
|
14
|
+
Classifier: Development Status :: 3 - Alpha
|
|
15
|
+
Classifier: Intended Audience :: Financial and Insurance Industry
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
19
|
+
Requires-Python: >=3.10
|
|
20
|
+
Requires-Dist: aiosqlite>=0.20
|
|
21
|
+
Requires-Dist: cryptography>=42
|
|
22
|
+
Requires-Dist: eth-account>=0.13
|
|
23
|
+
Requires-Dist: fastapi>=0.110
|
|
24
|
+
Requires-Dist: httpx>=0.27
|
|
25
|
+
Requires-Dist: pydantic>=2.6
|
|
26
|
+
Requires-Dist: pyjwt[crypto]>=2.8
|
|
27
|
+
Requires-Dist: tomli>=2.0; python_version < '3.11'
|
|
28
|
+
Requires-Dist: uvicorn[standard]>=0.27
|
|
29
|
+
Requires-Dist: websockets>=13
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: anyio>=4; extra == 'dev'
|
|
32
|
+
Requires-Dist: cryptography>=42; extra == 'dev'
|
|
33
|
+
Requires-Dist: grpcio-tools>=1.60; extra == 'dev'
|
|
34
|
+
Requires-Dist: grpcio>=1.60; extra == 'dev'
|
|
35
|
+
Requires-Dist: protobuf>=5.26; extra == 'dev'
|
|
36
|
+
Requires-Dist: pyjwt[crypto]>=2.8; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest>=8; extra == 'dev'
|
|
38
|
+
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
39
|
+
Provides-Extra: engine
|
|
40
|
+
Provides-Extra: grpc
|
|
41
|
+
Requires-Dist: cryptography>=42; extra == 'grpc'
|
|
42
|
+
Requires-Dist: grpcio-tools>=1.60; extra == 'grpc'
|
|
43
|
+
Requires-Dist: grpcio>=1.60; extra == 'grpc'
|
|
44
|
+
Requires-Dist: protobuf>=5.26; extra == 'grpc'
|
|
45
|
+
Requires-Dist: pyjwt[crypto]>=2.8; extra == 'grpc'
|
|
46
|
+
Provides-Extra: server
|
|
47
|
+
Provides-Extra: trading
|
|
48
|
+
Provides-Extra: ws
|
|
49
|
+
Description-Content-Type: text/markdown
|
|
50
|
+
|
|
51
|
+
<div align="center">
|
|
52
|
+
|
|
53
|
+
<img src="https://raw.githubusercontent.com/Synpath-ai/synpath/main/assets/synpath-banner.png" alt="Synpath: one API for every prediction market" width="100%">
|
|
54
|
+
|
|
55
|
+
# Synpath – One API for prediction markets
|
|
56
|
+
|
|
57
|
+
**Build on prediction markets without building against each one.**<br/>
|
|
58
|
+
One open-source API across Kalshi, Polymarket and Polymarket US: market data, order entry, live streams, and an execution engine that remembers what it sent. In-process from Python, over REST and WebSocket from anywhere.
|
|
59
|
+
|
|
60
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a>
|
|
61
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10%2B-blue.svg" alt="Python 3.10+"></a>
|
|
62
|
+
<a href="https://discord.gg/QZzsHTpGA3"><img src="https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
|
|
63
|
+
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
**🆕 New: Every Kalshi order book, every tick.**<br/>
|
|
67
|
+
Full-depth books and trades for every past Kalshi trade. Query any moment in under a minute. **[Get the data →](https://synpath.dev/tick-data)**
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Supported Exchanges
|
|
72
|
+
|
|
73
|
+
| | Exchange | id | Market data | Order entry | Streams | Order books |
|
|
74
|
+
|:-:|---|---|:-:|:-:|:-:|---|
|
|
75
|
+
| <img src="assets/kalshi.png" width="20" height="20" alt="Kalshi"> | [Kalshi](https://kalshi.com) | `kalshi` | ✓ | ✓ | WebSocket | one book per market, both sides read it |
|
|
76
|
+
| <img src="assets/polymarket.png" width="20" height="20" alt="Polymarket"> | [Polymarket](https://polymarket.com) | `polymarket` | ✓ | ✓ | WebSocket | one book per outcome token |
|
|
77
|
+
| <img src="assets/polymarket.png" width="20" height="20" alt="Polymarket US"> | [Polymarket US](https://polymarket.us) | `polymarket_us` | ✓ | ✓ retail and exchange APIs | WebSocket and gRPC | one book per market, both sides read it |
|
|
78
|
+
|
|
79
|
+
## Why Synpath
|
|
80
|
+
|
|
81
|
+
- **Liquidity is fragmented. Your time shouldn't be.** The same market trades on Kalshi, Polymarket and Polymarket US, each with its own API, units and quirks. Synpath gives you one interface for all of them, and smart order routing buys from whichever book is cheapest. Spend your time on alpha, not plumbing.
|
|
82
|
+
|
|
83
|
+
- **Traders deserve advanced order types.** Stops, trailing stops, icebergs, OCO, brackets, TWAP and pegs, on every venue, even where the exchange has none. Orders are journaled before they're sent, so a crash never places one twice.
|
|
84
|
+
|
|
85
|
+
- **A home after Dome and pmxt.** Dome's API shut down in April 2026, and pmxt hasn't shipped since July 2026. Synpath is MIT-licensed, actively maintained, and follows ccxt conventions.
|
|
86
|
+
|
|
87
|
+
## Installation
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
pip install synpath # market data, order entry, streams, the engine and the server
|
|
91
|
+
pip install "synpath[grpc]" # + Polymarket US exchange gRPC streams
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Python 3.10 or newer.
|
|
95
|
+
|
|
96
|
+
**Hosted API.** Run `synpath login`, then `synpath keys create`. It serves tick-level Kalshi order book and trade history, and cross-venue market matching. Trading stays on your machine: Synpath never holds your keys or funds.
|
|
97
|
+
|
|
98
|
+
## Quick Start
|
|
99
|
+
|
|
100
|
+
**Markets and quotes**
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
import synpath
|
|
104
|
+
|
|
105
|
+
kalshi = synpath.Kalshi()
|
|
106
|
+
market = kalshi.fetch_markets(limit=1)[0]
|
|
107
|
+
|
|
108
|
+
print(market.title) # Will Elon Musk visit Mars before Aug 1, 2099?
|
|
109
|
+
print(market.yes.quote.bid, market.yes.quote.ask) # 0.1 0.12
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Order books and search**
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
book = kalshi.fetch_order_book(market.id, depth=5)
|
|
116
|
+
book.best_bid, book.best_ask # best first on both sides
|
|
117
|
+
kalshi.fetch_order_book(market.id, side="no") # what NO costs
|
|
118
|
+
|
|
119
|
+
markets = kalshi.fetch_markets(query="trump", limit=10)
|
|
120
|
+
fee = kalshi.fetch_fee_schedule(markets[0].id)
|
|
121
|
+
fee.estimate(price=0.50, contracts=100) # 1.75
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Same code, every venue**
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
for venue_id in synpath.exchanges: # ['kalshi', 'polymarket', 'polymarket_us']
|
|
128
|
+
with synpath.exchange(venue_id) as venue:
|
|
129
|
+
page = venue.fetch_markets(limit=5)
|
|
130
|
+
|
|
131
|
+
client = synpath.Client() # or one client, routed by the id
|
|
132
|
+
client.fetch_market("polymarket:2252244") # every id starts with its venue
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Order entry**
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
from decimal import Decimal
|
|
139
|
+
from synpath import KalshiTrading, OrderRequest, Side, load_credentials, require
|
|
140
|
+
|
|
141
|
+
async with KalshiTrading(require("kalshi", load_credentials())) as kalshi:
|
|
142
|
+
order = await kalshi.create_order(OrderRequest(
|
|
143
|
+
market_id=market.id, side=Side.BUY, # buy takes YES, sell takes NO
|
|
144
|
+
amount=Decimal("10"), price=Decimal("0.42"), # always the YES price
|
|
145
|
+
))
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**Live streams**
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
from synpath import PolymarketMarketStream, BookEvent
|
|
152
|
+
|
|
153
|
+
async with PolymarketMarketStream() as stream:
|
|
154
|
+
await stream.watch_order_book(["polymarket:2252244"]) # both sides of the market
|
|
155
|
+
async for event in stream:
|
|
156
|
+
if isinstance(event, BookEvent):
|
|
157
|
+
print(event.market_id, event.side, event.best_bid, event.best_ask)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**The engine, and the orders the venues do not hold**
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
from synpath.engine import Engine, EngineConfig, RiskConfig
|
|
164
|
+
from synpath import OrderType
|
|
165
|
+
|
|
166
|
+
async with Engine({"kalshi": kalshi}, EngineConfig(journal_path="trading.db"),
|
|
167
|
+
risk=RiskConfig(max_order_contracts=Decimal("100"))) as engine:
|
|
168
|
+
await engine.submit(OrderRequest(
|
|
169
|
+
market_id=market.id, side=Side.SELL, amount=Decimal("20"),
|
|
170
|
+
type=OrderType.TRAILING_STOP, stop_price=Decimal("0.40"),
|
|
171
|
+
params={"trail": "0.03"}, book="alpha",
|
|
172
|
+
))
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**REST server**
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
python -m synpath.server # http://127.0.0.1:8000/docs
|
|
179
|
+
curl "localhost:8000/venues/kalshi/markets?limit=1"
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Trading has its own app, with per-account keys and an append-only audit log:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
python -m synpath.server bootstrap --control control.db # the first key
|
|
186
|
+
python -m synpath.server schema --trading --out openapi.json
|
|
187
|
+
npx openapi-typescript openapi.json --default-non-nullable false -o src/synpath.d.ts
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Documentation
|
|
191
|
+
|
|
192
|
+
- [CLI](https://synpath.dev/docs/quickstart): hosted data API sign-in and keys versus local venue trading server setup
|
|
193
|
+
- [Unified API](https://synpath.dev/docs/sdks/python): methods, data structures, identifiers, paging, status, errors
|
|
194
|
+
- [Capabilities](https://synpath.dev/docs/concepts/exchanges): what each venue can and cannot answer
|
|
195
|
+
- [HTTP server](https://synpath.dev/docs/api-reference): routes, envelopes, typed client generation, trading routes with per-account keys, mounting behind your own auth
|
|
196
|
+
- [Trading](https://synpath.dev/docs/concepts/orders): credentials, `Decimal` money, order entry on Kalshi, Polymarket and Polymarket US
|
|
197
|
+
- [Streaming](https://synpath.dev/docs/ws-api-reference): WebSocket and gRPC books, trades, orders and fills as self-healing event streams
|
|
198
|
+
- [Engine](docs/engine.md): a journal written before anything is sent, pre-trade risk, a ledger, reconciliation, a kill switch, the order types the venues do not hold, buckets that route one order across venues, paper trading
|
|
199
|
+
- [TypeScript client](https://synpath.dev/docs/sdks/typescript): generate a typed client from the OpenAPI document, place through cancel without Python
|
|
200
|
+
|
|
201
|
+
## Development
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
git clone https://github.com/Synpath-ai/synpath
|
|
205
|
+
cd synpath
|
|
206
|
+
pip install -e ".[dev]"
|
|
207
|
+
|
|
208
|
+
pytest # offline, against recorded venue payloads
|
|
209
|
+
pytest -m live # market data against the real venues
|
|
210
|
+
pytest -m demo # order entry on a venue's demo environment
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
The `demo` tests place and cancel real orders on a demo exchange with the
|
|
214
|
+
credentials in your environment, and leave the account flat. `python -m
|
|
215
|
+
synpath.trading doctor` says which venues are configured without printing a
|
|
216
|
+
secret.
|
|
217
|
+
|
|
218
|
+
## Prior Art
|
|
219
|
+
|
|
220
|
+
[ccxt](https://github.com/ccxt/ccxt) set the conventions this library follows. [pmxt](https://github.com/pmxt-dev/pmxt) got to prediction markets first.
|
|
221
|
+
|
|
222
|
+
## License
|
|
223
|
+
|
|
224
|
+
MIT
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
synpath/__init__.py,sha256=dZzuqbg_2YxLNeErA0se0yV5IOjg5gvwKl27psgYLOU,7087
|
|
2
|
+
synpath/__main__.py,sha256=et04tmgvRIYu_P55DbBfdyXyfpbpWs0UAWd6ttjUYeU,2521
|
|
3
|
+
synpath/base.py,sha256=4YMwVwGMjMIt6reAYuyIM8T-Ef8SjnKjaNFCN6SQlc8,27805
|
|
4
|
+
synpath/bucket.py,sha256=nQyRW9mQl8PhWGYO7YJO5StQU1ax4PqrOzu_g-1409Y,5764
|
|
5
|
+
synpath/client.py,sha256=usVv49ec3hjkzwTtXPnLpsOdPV7Vb9EAoI4MU6cbhv0,17312
|
|
6
|
+
synpath/errors.py,sha256=MSIG2TNp1Mccy5EjnasXAtQuKTNsCBMUFxlbMIZHMMk,3273
|
|
7
|
+
synpath/history.py,sha256=vOpY6ieq3Fu2idRStbu7TYQxhw09IeVNgbeon8SgD7w,3492
|
|
8
|
+
synpath/hosted.py,sha256=ROE-crwfM8e1Fdw9Fo6q7qpo7LPVOH9abTTItpqGy2c,3836
|
|
9
|
+
synpath/hosted_auth.py,sha256=yOd1CdOPyxYkBwe8-f1N_KI_CHJIcEeRKmIL5FMNRXw,8236
|
|
10
|
+
synpath/ids.py,sha256=evrMDMqTkBf9MQutLb1GYRI1J273OHlqyNo8d8FWLbE,2631
|
|
11
|
+
synpath/kalshi.py,sha256=yQJr8aqUIXlE49LRLznI08bZ8-jrw7B5MI2SKvc0FXc,62334
|
|
12
|
+
synpath/matching.py,sha256=z19MzFCH6ezp6vapw9l7qZFoD1GCGB0yZFy1Kv56pSM,4533
|
|
13
|
+
synpath/polymarket.py,sha256=MtRDGstIl6JJgOsaS5dC837NiwcC3Uuc7uzHnue1vig,45478
|
|
14
|
+
synpath/polymarket_us.py,sha256=JQb5eqZkpIuK9i9aXw8BT82D3a_V8NaKogZfBZyWG58,43511
|
|
15
|
+
synpath/remote.py,sha256=cXTT1i40m22_xNftavIZOdZgitrPT2wUxzYqR7NQkwI,10164
|
|
16
|
+
synpath/types.py,sha256=cRr27ewlVFyKi_16AsGOC7QiHgx3dbpsNREyxNxzGsw,24525
|
|
17
|
+
synpath/engine/__init__.py,sha256=qB9a4ENpHm7LphO4foleUXvAMTr3ReNZ-SWmm_3tKYk,1541
|
|
18
|
+
synpath/engine/__main__.py,sha256=-JKoxBREqsbr99tF5d89XcpoXiYfbrSIYhLqSw9Gwt0,16085
|
|
19
|
+
synpath/engine/alerts.py,sha256=Fgk4rODl1_8aHyHJNRc-A_wfAgswZqbR6kL_v0qM04s,7779
|
|
20
|
+
synpath/engine/engine.py,sha256=yO4-yHEytINodmItDKR2eYVwtl6HsObzA7cpLeE-vm0,45407
|
|
21
|
+
synpath/engine/eod.py,sha256=7ZJV6S-wuhO36vwmLuOLJwZ0_gS2XXUBHooMY8YLsM4,6768
|
|
22
|
+
synpath/engine/events.py,sha256=fvoGdo8p_19elAAKxQ3-oW8Gw5azPlxC3fwXVoY5ehc,5536
|
|
23
|
+
synpath/engine/fair_values.py,sha256=UOCvYqx-J_B8t5_aGHF5XxH0k0y3o5Bug4A7uT5MKGM,4909
|
|
24
|
+
synpath/engine/feeds.py,sha256=5H4YHBky_ZCs9LGVRsbGdhbon7DeAmd5hi384WgZ2u4,10171
|
|
25
|
+
synpath/engine/journal.py,sha256=_3ShqI6t3Qrj4u-SNgz1d3oq1ShZVZdLMTlCuz8eXb0,40430
|
|
26
|
+
synpath/engine/ledger.py,sha256=nUjIACS5APsxTSNbYO9cuJ5h3uc7lsPoGV430S9DMbY,15387
|
|
27
|
+
synpath/engine/paper.py,sha256=l81kp6EL3LWCWZvd91hjmOWcwwiqxGVf6Gcky5SKVZc,24118
|
|
28
|
+
synpath/engine/reconcile.py,sha256=hPyMbxrecKChQNgCOUmdl324Y8YUjyxjdWDrys9W9S8,12589
|
|
29
|
+
synpath/engine/risk.py,sha256=nL-wAroQzCY6S0gBnLauEWVu80BQY5KntX-SMi8q1tw,18125
|
|
30
|
+
synpath/engine/router.py,sha256=Joiw0jfhnrHPWYbf9jKpsgcND2Tmidtjvu_U551B15I,10087
|
|
31
|
+
synpath/engine/orders/__init__.py,sha256=5pMpY_BOM8VFxu0zrghPDMCS76oSPL5l2GNqZ1lGvQI,1691
|
|
32
|
+
synpath/engine/orders/base.py,sha256=15-Y-2CiGEtSWpQhxWMq0IQTFchloyTA-cEpyHurDFM,19043
|
|
33
|
+
synpath/engine/orders/day.py,sha256=ZbIzRfKuTSVmtsQi2l4ldu_3TJ5ae-QtUA3_uzF61_A,3152
|
|
34
|
+
synpath/engine/orders/iceberg.py,sha256=i8O041vcsVWBUJQXAwtDhoRsE5A_4F0L8ZFv-kWEIDU,5165
|
|
35
|
+
synpath/engine/orders/manager.py,sha256=yYotN_JdRUvKWmJsl9zzcO2FW37LiRILbergjIZneLQ,10103
|
|
36
|
+
synpath/engine/orders/oco.py,sha256=Pw0akdT_ju52YeK-C8h0LdFjcTkNi7Bf9tyljV64UDw,11238
|
|
37
|
+
synpath/engine/orders/peg.py,sha256=VNTlQcbBrpVZFxyPCV2hOMa-fkl1PJ5w5lfV7s2O3_k,7270
|
|
38
|
+
synpath/engine/orders/routed.py,sha256=IHDT7y262rzIFNtqp96usP8HtqiVNITYD_Nt_HyVW5Y,23719
|
|
39
|
+
synpath/engine/orders/stop.py,sha256=Mea9SerrdAnb3TR1eEB82FBxMko9Rjqo-v2EnTIKd-8,10660
|
|
40
|
+
synpath/engine/orders/taker.py,sha256=YU8nguy_unr2ckYkuFWE0h_G1e8HDAARQ5xWfynKrIo,7952
|
|
41
|
+
synpath/engine/orders/twap.py,sha256=1Gtya_jJxXQI_wf8T4dXh2OWq2dVMG9kVCNKkv3wXM0,8412
|
|
42
|
+
synpath/server/__init__.py,sha256=akEK_hgT47khkWjmjXvThW8i6TjA79ATVuMn3mZhaco,3472
|
|
43
|
+
synpath/server/__main__.py,sha256=cFU57EdADslRNfaHhvMp_Fc4SMi4JX1961ilXTqTkbM,4333
|
|
44
|
+
synpath/server/api.py,sha256=M9JTZCkW7QVqcgNrUIX_Qd0v913_ckXxXnCt29MkV_U,17969
|
|
45
|
+
synpath/server/errors.py,sha256=paLAFg29zkQhAGSHWJt0l2nJC3vvwT88u5nHUVrIiDY,4176
|
|
46
|
+
synpath/server/local.py,sha256=an9ZluPYd5crhH9K6iRuiYmKhScraTvYZ--g3Vl413s,3887
|
|
47
|
+
synpath/server/models.py,sha256=W39Puc7N5u-PL-c1ZeCPaCKQVNP04K1H1lUSfNJMO24,2639
|
|
48
|
+
synpath/server/serve.py,sha256=Bsa3jlRzY8stALictPSMqerNyvPkar4Eo_IOCBsSJKo,10665
|
|
49
|
+
synpath/server/store.py,sha256=seztt2Bx75bkAm8YpBjaClXKwE9uipbaXMic7ewF77I,14732
|
|
50
|
+
synpath/server/trading.py,sha256=lR7JJtEbiPwiEZaOm2enxAo3Ubm42yM5f0bflpgKZK4,34918
|
|
51
|
+
synpath/trading/__init__.py,sha256=jzFJSmFKW2rXV6thjAtzAtDD4LTFaW5PUO9LDsHEiIs,2547
|
|
52
|
+
synpath/trading/__main__.py,sha256=gHeGYp0lgLuYFyO4Zsme1OF8wgsS0YHsifmth8W7X-s,2790
|
|
53
|
+
synpath/trading/base.py,sha256=BHbE7pF17N8fXyQpLxNjr63ISaSpQzXMqpTWIGn1JFg,5371
|
|
54
|
+
synpath/trading/credentials.py,sha256=iI2oXV5-Ia9o50786JKNK0M_886QBFa4P7BdD59trXg,16376
|
|
55
|
+
synpath/trading/errors.py,sha256=hxGH5Ag_ANP12E95d4i5mq5gc3828_bnINcoC8IbYBo,3393
|
|
56
|
+
synpath/trading/init.py,sha256=LDAzQIaoMCqKKAiIrgFKjl9GqNt4L47ii3fQOpqRnFA,9890
|
|
57
|
+
synpath/trading/instruments.py,sha256=URb0IO6LO9530f7rLikYqZPWEAo3O5pUmsclUhTEO6Y,6473
|
|
58
|
+
synpath/trading/kalshi.py,sha256=5VRrJfYztgwjqIRbjWB_jehD4qPntyOqbk6JQUww_Nc,46271
|
|
59
|
+
synpath/trading/limiter.py,sha256=4KKnIK-x0K65fxmIKxhJWJitoqXG9gwB3306TodOyhQ,6996
|
|
60
|
+
synpath/trading/money.py,sha256=KnwroqFHe3UTz0IHi0T96DjOnVOUmqa583ub9TnggYU,6312
|
|
61
|
+
synpath/trading/polymarket.py,sha256=9uLAVMI8a0Sxvrpm459upM1k11el5Udd4LN6s5PL-EA,67282
|
|
62
|
+
synpath/trading/polymarket_signing.py,sha256=myw6La6vrozkwuIxdIVE1wxj2LR-dgb48TOgyFUKNBw,19179
|
|
63
|
+
synpath/trading/polymarket_us.py,sha256=eaVEvBHCBmwZlu13QB1YIiXv4_fMCNlFiiD6WrZntio,33650
|
|
64
|
+
synpath/trading/polymarket_us_exchange.py,sha256=B_Qj2kLMNkccG9ZIZJT9Yy5fc26Q99QF70dCdzNRHWs,40857
|
|
65
|
+
synpath/trading/types.py,sha256=3ciF-V_Q6Kd0Vp5AS0zorEqoXyT8z7us_gri7aek5-4,14491
|
|
66
|
+
synpath/ws/__init__.py,sha256=ImJr-XIT9Qb2Dj1mnfhA0M4_hhfy-VhZfT2Yx9rMWuo,2366
|
|
67
|
+
synpath/ws/base.py,sha256=xS8_EFLgOj-gL0vsp-Z4m9gH4nA8u4JT-758PKWVPKY,19911
|
|
68
|
+
synpath/ws/grpc.py,sha256=ROZxmdD4yt8ITUyr5N2N6tGmSoxL7aT7TnMj25xnIII,23492
|
|
69
|
+
synpath/ws/kalshi.py,sha256=fdOmI-1lVGKbfSj2pmrGd6qGYC8odWZ2njvJegPD1oE,18638
|
|
70
|
+
synpath/ws/polymarket.py,sha256=tP3UF59zV5evWFiqCySHmp8KWdZPohoS0qPOj-glgII,19567
|
|
71
|
+
synpath/ws/polymarket_us.py,sha256=hGCUAdr2r7EzK_-cbCpHCUseoRjfGYctVKPmlrp6b2E,13626
|
|
72
|
+
synpath/ws/polymarket_us_exchange.py,sha256=7Oky6DtvIDmEr9CPlJe5Os6tUWed1EIP0lo8wmNaFHg,34934
|
|
73
|
+
synpath-0.1.0.dist-info/METADATA,sha256=j_exr6Rs18v0EcefMQ30bcHCQB1H8-TQQ16mqSD4VUw,9882
|
|
74
|
+
synpath-0.1.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
75
|
+
synpath-0.1.0.dist-info/entry_points.txt,sha256=rS62NycIylxByFigG1w8fHxFL1XEE3f3sHpLdv-8ce0,50
|
|
76
|
+
synpath-0.1.0.dist-info/licenses/LICENSE,sha256=w3MGsHcA4yLQygEzyUCfJkSqG5iuFKH3TeaYm0Fr-00,1064
|
|
77
|
+
synpath-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Synpath
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|