Skip to main content

Account Trade List

Type: USER_DATA · Weight: 10

Status: Live in production. Each trade carries orderId, and the orderId filter is supported.

GET /api/v3/myTrades

Your fills, newest first, each carrying its on-chain settlement status and, once settled, the Canton updateId that proves delivery. This endpoint is the external query surface for the on-chain settlement guarantee described in On-chain Settlement.

Request

GET /api/v3/myTrades?symbol=CBTC-USDCB&limit=100&timestamp=1756600000000&signature=...

Parameters

NameTypeRequiredDefaultNotes
symbolstringno—Omit for all symbols.
limitintegerno500Non-positive → default; clamped to 1000.
orderIdstringno—Only fills of this order (UUID). Non-UUID → -1100.

startTime, endTime, fromId are ignored.

Response — 200 (values illustrative)

[
{
"symbol": "CBTC-USDCB",
"id": "019910a4-5b2e-7c3d-9e8f-0a1b2c3d4e5f",
"orderId": "019910a4-9f21-7b34-8c56-1d2e3f4a5b6c",
"orderListId": -1,
"price": "50000",
"qty": "0.001",
"quoteQty": "50.000",
"commission": "0",
"commissionAsset": "CBTC",
"time": 1756600000456,
"isBuyer": true,
"isMaker": false,
"isBestMatch": true,
"settlementStatus": "confirmed",
"cantonUpdateId": "12207f3a9c1e5b2d4a6f8e0c1b3d5f7a9c2e4b6d8f0a1c3e5b7d9f1a3c5e7b9d0f2a"
},
{
"symbol": "CBTC-USDCB",
"id": "019910a4-6c3f-7d4e-8f90-1b2c3d4e5f60",
"orderId": "019910a4-a1c2-7d3e-9f40-5a6b7c8d9e0f",
"orderListId": -1,
"price": "49990",
"qty": "0.002",
"quoteQty": "99.980",
"commission": "0",
"commissionAsset": "CBTC",
"time": 1756600003210,
"isBuyer": true,
"isMaker": true,
"isBestMatch": true,
"settlementStatus": "pending",
"cantonUpdateId": null
}
]
FieldTypeNotes
idstringTrade UUID; same value as id in trades and t on the @trade stream. One row per fill per side: your counterparty sees the same id in their own list.
orderIdstring or nullThe order this fill executed against. null only for fills recorded before order attribution shipped (2026-08-26).
orderListIdnumberAlways -1.
price, qty, quoteQtystringquoteQty = price × qty.
commission, commissionAssetstringFee charged on this side, withheld from the on-chain leg you receive; "0" when both sides are wallet-funded. See Fees. commissionAsset is the asset you received in the fill: the base asset when isBuyer is true, the quote asset when it is false.
timenumberFill time, Unix ms.
isBuyer, isMakerbooleanYour side and role in this fill.
isBestMatchbooleanAlways true.
settlementStatusstringOn-chain settlement state of the fill — see the table below.
cantonUpdateIdstring or nullCanton ledger update id of the settlement transaction. Non-null only when settlementStatus is confirmed.

settlementStatus values​

ValueMeaningcantonUpdateIdTerminal
pendingThe fill has been recorded and queued for on-chain delivery; the settler has not yet submitted it. Normal for the first seconds after a fill.nullno
processingA settlement command is in flight on Canton. If a worker dies mid-flight the row is reclaimed after 5 minutes and resubmitted with the same deterministic command id, so a fill can never settle twice.nullno
retryThe last attempt failed with a transient error (backpressure, contract contention, transport). It will be retried with backoff, up to the configured attempt cap (default 20).nullno
confirmedBoth legs were executed atomically in one Canton transaction. This is the delivery proof. Verify it independently as described in Verifying a settlement on Canton.update idyes
failedSettlement was abandoned: a terminal error (for example the counterparty's MemberAuth was revoked, an unsupported instrument, or a missing party binding) or the attempt cap was reached. Rocky operations are alerted on every failed row and resolve it manually; the internal balances already reflect the fill.nullyes
skippedBoth sides of the fill were Rocky house accounts, so there was nothing to deliver between customers. Recorded for audit. You will only see this if you are trading a Rocky house account.nullyes
internalNo settlement row exists for this fill. Either the fill was executed before on-chain settlement was enabled for the venue (historical fills are never back-filled), or your account is in the internally-funded segment (house bots). For an onboarded wallet-funded account, every fill after go-live carries a real status; internal on such a fill is a support case.nullyes

Polling guidance: a fill normally moves pending → processing → confirmed within a few seconds; delivery is serial per venue, so under load allow minutes. Poll myTrades at weight 10 no more often than every few seconds, or reconcile in batches.

Errors

HTTPcodecause
429-1003Weight bucket exhausted.
500-1000Database unavailable.

Differences from Binance

  • id is a UUID string — no numeric ordering, no fromId paging.
  • orderId is a UUID string; fills before 2026-08-26 carry null.
  • settlementStatus and cantonUpdateId are Rocky extensions.
  • commission is 0 on the on-chain segment.
  • No startTime / endTime filters.