Positions and settlements
A position is a bet that is still running. A settlement is one that has
finished, whether it was closed, the knockout was hit, or the game resolved. Both need a key with the read permission.
GET /positions
This endpoint returns the wallet's open bets. Optional filters are contractId,
league and team, and paging uses limit and offset.
{
"positions": [
{
"contractId": "MLB_CLE_DET_260813",
"outcome": "DET",
"contracts": 47,
"entryPrice": "0.2113",
"estimatedClosingPrice": "0.2640",
"boosted": true,
"costBasis": "9.93",
"value": "12.41",
"pnl": "2.48",
"pnlPercent": "24.93",
"maxPayout": "47.00",
"knockout": "0.1180",
"updatedAt": 1788495392000
}
],
"total": 1,
"limit": 50,
"offset": 0
}
entryPrice is the volume weighted average price of every fill that built the
position, so placing several orders on the same outcome blends them rather than
reporting the last order's price. estimatedClosingPrice is the price the
position would close at now. boosted is true when the bet carries a boost,
and knockout appears whenever the position is boosted. costBasis is the
money actually spent to enter, reconstructed from trade history. value is what
the bet is worth now, the posted collateral plus pnl, capped at maxPayout
since a bet can never return more than that. pnlPercent is pnl as a
percentage of the posted collateral.
GET /settlements
This endpoint returns the wallet's finished bets. Optional filters are contractId,
team and type, and paging uses limit and offset.
type is one of the following.
| Value | Meaning |
|---|---|
CLOSED |
The bet was sold before the game resolved. |
KNOCKED_OUT |
A boosted bet hit its knockout. |
SETTLEMENT |
The game resolved and the bet paid out or expired worthless. |
{
"settlements": [
{
"type": "SETTLEMENT",
"contractId": "MLB_CLE_DET_260813",
"outcome": "DET",
"contracts": 47,
"payout": "47.00",
"tx": "0x3847b7e4f794232b020051767601f4bc65b22e3ce8164acd6451718bcc91956c",
"timestamp": "2026-09-04T04:16:32Z"
},
{
"type": "CLOSED",
"contractId": "MLB_TEX_LAA_260813",
"outcome": "TEX",
"contracts": 20,
"price": "0.5931",
"pnl": "2.48",
"tx": "0x1b42ab85ffe7b43d6102abc488e6f40161b9990757145628b841d8b93e46603d",
"timestamp": "2026-09-04T02:11:07Z"
}
],
"total": 2,
"limit": 50,
"offset": 0
}
The two shapes differ. A SETTLEMENT row carries payout and no price or
pnl, since the game resolved rather than being traded out. A CLOSED or
KNOCKED_OUT row carries price and pnl and no payout.
A CLOSED or KNOCKED_OUT row appears only once the position is flat, so a
partial knockout stays in GET /positions until the rest is closed. A
SETTLEMENT row is different, it appears because the game resolved while the bet was
still held.
A SETTLEMENT row is omitted when the position it belonged to cannot be
reconstructed from the wallet's trade history, so this endpoint can under report older
payouts. The rows come from two sources, the wallet's trade history and the onchain
settlement history, merged and sorted together.