Pools and liquidity endpoints
GET /pools
Query: chain (optional). All pools, including pools on an earlier contract (legacy: true), which accept no new money.
GET /pools/:ref
| Field | Meaning |
|---|---|
pair, direction | What the pool sells |
creator | Creator address |
acceptingHedges, allowExternalLp | Sale and deposit settings |
structures | open, capped, minCapDistanceBps, maxCapDistanceBps, openMaxPayoutBps, minStrikeDistanceBps |
tenors | [{ tenorDays, active, markupBps }] |
fees | hedgerFeeRateE6, payoutFeeRateE6, lpProfitFeeRateE6, creatorShareE6 (fixed at creation) |
liquidity.reserved | Total reserved for active positions |
liquidity.free, liquidity.capacity | Free capital of backing underwriters |
liquidity.cash, liquidity.nav, totalShares | Total capital held for underwriters |
creatorEarnings | Creator's accrued fee share |
activePositions, latestExpiry | Open exposure |
GET /pools/setup
Pairs open for new pools and the creation fee: { chain, pairs, creationFee }.
GET /pools/:ref/positions
Active positions sold by the pool.
GET /pools/:ref/lp (auth)
The user's account in the pool: free, reserved, earned, paid, pendingWithdraw, withdrawable, backing, maxTenorDays.
POST /pools/prepare (auth)
Create a pool.
{
"pair": "USD/NGN",
"direction": "up",
"allowExternalLp": true,
"structures": { "open": true, "capped": true, "minCapDistanceBps": 300, "maxCapDistanceBps": 2000, "openMaxPayoutBps": 3000, "minStrikeDistanceBps": 200 },
"tenors": [ { "tenorDays": 30, "active": true, "markupBps": 11500 } ],
"initialLiquidity": "1000"
}
POST /pools/:ref/tenors/prepare (auth, creator)
Body: { tenorDays, active, markupBps }. Adds or updates one tenor. How the markup sets the buyer's price: Premium calculation.
POST /pools/:ref/structures/prepare (auth, creator)
Body: the structures object.
POST /pools/:ref/deposits/prepare (auth)
Body: { "amount": "500" }.
POST /pools/:ref/preferences/prepare (auth)
Body: { "backing": true, "maxTenorDays": 30 }.
POST /pools/:ref/withdrawals/prepare (auth)
Body: { "shares": "200" }, a USDC amount up to withdrawable.
GET /withdrawals (auth)
The user's withdrawal requests on every chain and contract.
POST /withdrawals/:chain/:id/execute/prepare (auth)
Completes a request. Pass contract as a query parameter for requests on an earlier contract.