Account Trade List
Type: USER_DATA · Weight: 10
Status: Live in production. Each trade carries
orderId, and theorderIdfilter 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×tamp=1756600000000&signature=...
Parameters
| Name | Type | Required | Default | Notes |
|---|---|---|---|---|
symbol | string | no | — | Omit for all symbols. |
limit | integer | no | 500 | Non-positive → default; clamped to 1000. |
orderId | string | no | — | 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
}
]
| Field | Type | Notes |
|---|---|---|
id | string | Trade 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. |
orderId | string or null | The order this fill executed against. null only for fills recorded before order attribution shipped (2026-08-26). |
orderListId | number | Always -1. |
price, qty, quoteQty | string | quoteQty = price × qty. |
commission, commissionAsset | string | Fee 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. |
time | number | Fill time, Unix ms. |
isBuyer, isMaker | boolean | Your side and role in this fill. |
isBestMatch | boolean | Always true. |
settlementStatus | string | On-chain settlement state of the fill — see the table below. |
cantonUpdateId | string or null | Canton ledger update id of the settlement transaction. Non-null only when settlementStatus is confirmed. |
settlementStatus values
| Value | Meaning | cantonUpdateId | Terminal |
|---|---|---|---|
pending | The 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. | null | no |
processing | A 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. | null | no |
retry | The 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). | null | no |
confirmed | Both 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 id | yes |
failed | Settlement 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. | null | yes |
skipped | Both 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. | null | yes |
internal | No 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. | null | yes |
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
| HTTP | code | cause |
|---|---|---|
429 | -1003 | Weight bucket exhausted. |
500 | -1000 | Database unavailable. |
Differences from Binance
idis a UUID string — no numeric ordering, nofromIdpaging.orderIdis a UUID string; fills before 2026-08-26 carrynull.settlementStatusandcantonUpdateIdare Rocky extensions.commissionis0on the on-chain segment.- No
startTime/endTimefilters.