REST and chain-direct capabilities#
The REST API is a convenience projection and unsigned-transaction builder. Custody and execution remain on Solana. A chain-direct integration brings its own RPC, signing wallet, event history, and reconciliation; using an RPC provider does not eliminate provider availability or data-trust assumptions.
The table describes the interfaces in this checkout. It does not promise a
hosted endpoint, published SDK package, or a second implementation of every
capability. REST paths are relative to /api/v1; see Endpoints
for authentication and request schemas.
| Capability | REST path | Chain-direct path | Explicit parity decision |
|---|---|---|---|
| Discover native markets | GET /markets, /markets/current | Program-account query and validated market decoder | Keep both; use Reading data for discriminator, size, and creator filters |
| Read book and own open orders | Market/order read routes | Decode the orderbook and filter by full owner key | Keep both; chain state is current state, not a historical archive |
| Read positions | Authenticated /positions and /user/positions | Derive and decode each position PDA | Keep both; verify market and owner identity |
| Read free quote/share funds | Wallet balance and external maker-credit projections where exposed | Decode the owner slot in each trader ledger | Accept the broader chain surface; do not infer a generic free-funds endpoint from a wallet balance route |
| Place an order | POST /tx/place-order | Canonical place-order builder | Keep both; callers verify, sign, and submit the transaction |
| Cancel one order | POST /tx/cancel-order | Canonical cancel-order builder | Keep both |
| Explicit-ID bulk cancel, cancel-up-to, reduce, and batch post-only | No corresponding general transaction-builder routes | Canonical maintenance and batch builders | Accept chain-only builders; use documented capacity and batch bounds |
| Deposit/withdraw free funds | No generic transaction-builder routes | DepositFunds, WithdrawFunds | Accept chain-only builders; balances belong to one market |
| Mint pairs and withdraw shares | No generic transaction-builder routes | MintShares, WithdrawShares | Accept chain-only builders; distinguish ledger custody from wallet tokens |
| Redeem settled shares and free funds | POST /tx/redeem | Canonical redeem builder | Keep both; require an accepted terminal outcome |
| Claim creator/referral earnings | /tx/claim-creator-fees, /tx/claim-referrer-earnings | Canonical claim builders | Keep both; identities and fee routing remain program-controlled |
| Set referral binding | POST /tx/set-referrer | Canonical set-referrer builder | Keep both; no self-referral or arbitrary trade-time fee recipient |
| Create a native market | POST /tx/create-market-pull | Market creation and allocation builders | Keep both; each requires valid oracle evidence and funded creation accounts |
| Create/resolve/halt/extend an external market | Read/build-context routes and public proof-runner integration | Reclaim V1 staged proof and verifier-CPI transaction plan | Accept the staged proof workflow; there is no generic trusted server outcome endpoint |
| Native snapshot/resolve/expiry and terminal cleanup | No general transaction-builder routes | CLI/SDK lifecycle builders | Accept chain-only maintenance; permissionless does not guarantee service |
| Splines | No hosted transaction builders | Canonical spline lifecycle and trading account builders | Accept chain-only support; see current spline restrictions |
| Real-time activity | Hosted WebSocket channels where deployed | User-owned Solana RPC/stream and recorder decoding | Keep both; reconcile and replay on gaps; no outbound webhook service is promised |
| Historical candles, portfolio history, and search | Indexer projections | Build and retain an event/account history | Accept indexer-derived history; current accounts cannot reconstruct every past state |
| Error decoding | Structured API errors | Program error codes and SDK decoders | Keep both; preserve the original code and transaction logs |
The absence of a REST builder is a deliberate interface boundary in this release, not a statement that the on-chain action is unavailable. Conversely, indexer search/history is a derived product, not an extra on-chain account. Future parity work must add an implemented path and update this table together.
<!-- E-05: update parity decisions when additional chain-direct or REST capabilities ship -->The CCXT read adapter does not close execution gaps: its write methods reject. The Hummingbot connector also states its current integration boundary. For a trading bot, use the canonical transaction builders and monitoring/reconciliation guide.