For the complete documentation index, see llms.txt. This page is also available as Markdown.

Transaction Models

The tracked transaction and its steps, including the chained-journey fields that describe a two-leg order as one user intent.

The shapes returned by the /transactions endpoints. For the other schemas, see Models.

TrackedTransaction

Key fields (a single-transaction GET additionally returns the steps array):

Field
Type
Description

id

string

Deployment-scoped uid (for example "rwa:0x52b1…"), unique across redeployments. This is not orderId — see below.

orderId

string

The raw on-chain order id. This is what the escrow's cancel / claimCancellation / getOrder calls take; passing id there reverts. Returned by the API but not yet declared in the published OpenAPI spec, so a generated client may not surface it.

txHash

string

Source transaction hash (the lookup key).

protocol

string[]

GMP protocol(s) involved.

sourceChainId / destChainId

string

Source / destination chain IDs.

wallet

string

Order owner wallet.

status

TrackingStatus

Lifecycle status of this order. For a chained order see journeyStatus.

claimable

boolean

True iff claimCancellation() on the execution-chain escrow would succeed right now (status is awaiting_claim or expired).

fromTokenAddress / fromTokenSymbol / fromTokenDecimals

—

Source token metadata.

fromTokenAmount / fromTokenRawAmount

string

Human-readable / raw source amount.

toTokenAddress / toTokenSymbol / toTokenDecimals

—

Destination token metadata. On a chained leg 1 this is the internal connector, not what the user bought — see the finalToToken* fields.

toTokenAmount / toTokenRawAmount

string

Human-readable / raw destination amount.

completedSteps / totalSteps

integer

Step progress.

currentStep

string

Current step name.

submittedAt / arrivedAt / filledAt / deliveredAt / failedAt

string or null

Lifecycle timestamps.

failedReason / failedStep

string

Failure detail.

steps

TransactionStep[]

Step entries (single-transaction GET only).

sourceExplorerLink / destinationExplorerLink

string

Explorer links.

destinationTx

string

Destination transaction hash.

gmpStatus / gmpMessageId

string

GMP status / message ID.

orderNonce

string

Per-source-chain order nonce (decimal string); part of the identity triple that derives orderId.

destinationReceiver

string

Receiver of the ask token on the destination chain.

orderDeadline

string

Order deadline (unix seconds, decimal string); "0" means none.

executionChainId

string

Chain where the escrow lives (where cancel / claimCancellation are called).

executionEscrowAddress

string

Escrow proxy address on the execution chain.

createdAt / updatedAt

string

RFC 3339 timestamps.

Chained-journey fields

A chained (two-leg) order is the shape used when the asset being bought exists only on the chained destination chain — an RWA vault share on Plume, for example. It is one user intent settled as two orders, and these fields describe the journey rather than the individual leg.

Field
Type
Description

isDirect

boolean

True for a direct-bridged transfer (OrderDirectBridged): a same-token order bridged straight to the destination at submit time — no solver fill, no execution-chain round-trip, and not cancellable.

isChained

boolean

True for either leg of a chained order. On leg 1 the toToken* fields describe the internal connector, not the asset the user bought.

chainedParentOrderId

string

Order ID of leg 1, present only on the child. Rows carrying it are excluded from GET /transactions unless includeChainedLegs=true.

chainedChildOrderId

string

Order ID of leg 2, once continueChain has created it. Absent during the park window between leg 1's fill and leg 2's creation.

journeyStatus

TrackingStatus

Status of the user's intent, which for a chained order is not the status of any one leg: leg 1 reaching delivered means the connector was parked on the destination escrow, not that the user received anything. Reads continuing for that window. Branch completion checks on this field, falling back to status when it is absent.

journeyStartedAt

string

When leg 1 was submitted — the start of the whole journey.

journeyCompletedAt

string or null

When the final leg delivered. Null until the journey actually completes. It means the user got their asset at this time, not that movement stopped.

legs[]

TransactionLeg[]

The whole journey, index 0 being this order. Present only on a chained parent and omitted entirely for a single-leg order, so the single-leg response shape is unchanged.

finalToTokenAddress

string

The destination the user actually asked for, as opposed to the internal connector in toToken*. Correct from the moment of submit, including before leg 2 exists — leg 2's ask is ABI-encoded into Order.nextOrders on-chain at submit.

finalToTokenSymbol / finalToTokenDecimals

—

Metadata for the asset the user actually bought.

finalToTokenAmount / finalToTokenRawAmount

string

Human-readable / on-chain raw amount of that asset.

finalDestChainId

string

The chain the user's asset actually lands on. On a chained order this is not destChainId of leg 1.

deliveryEvidence

string

Qualifies a delivered status; absent for any order not claiming delivery. observed means the delivery was seen — a solver-confirmed outbound row, a same-chain direct transfer, or a fill that was itself the delivery. presumed means it was inferred.

sourceEventMissing

boolean

The source-chain submit event was never indexed, so the row was reconstructed. Returned by the API but not yet declared in the published OpenAPI spec.

A chained order spans three chains, and the execution chain is neither end. Leg 1 is a same-symbol cross-chain move of the bid asset (a USDC to USDC hop is correct, not a bug) onto the execution chain; leg 2 swaps that connector into the ask and delivers it. A destination that looks wrong in a UI is usually the invisible middle hop — read finalDestChainId and finalToToken*, not destChainId and toToken*.

TransactionLeg

One leg of a chained journey, as returned in TrackedTransaction.legs[].

Field
Type
Description

index

integer

Position in the journey, 0-based.

role

string

What the leg is for, so a consumer can label it without re-deriving intent from the token pair. source-swap turns the user's bid into the internal connector and parks it on the destination chain — its ask side is not what the user bought, and its final step is a bridge-and-park rather than a delivery. delivery turns the connector into the asset the user asked for and delivers it.

orderId

string

On-chain order id for this leg.

txHash

string

Submit transaction hash for this leg.

sourceChainId / destChainId

string

Chain IDs for this leg, serialized as strings.

fromTokenAddress / fromTokenSymbol / fromTokenAmount

—

What this leg sold.

toTokenAddress / toTokenSymbol / toTokenAmount

—

What this leg bought.

status

TrackingStatus

Status of this leg alone.

completedSteps / totalSteps

integer

Step progress for this leg.

submittedAt / arrivedAt / filledAt / deliveredAt

string or null

Lifecycle timestamps for this leg.

steps

TransactionStep[]

Step entries for this leg.

TransactionStep

Field
Type
Description

stepNumber

integer

Step index.

stepName

string

One of submitted, arrived, filled, delivered.

stepStatus

string

One of completed, pending, failed, recovered.

eventType

string

Underlying event type.

chainName / chainId

string

Chain this step occurred on.

txHash

string

Step transaction hash.

explorerLink / protocolExplorerLink

string

Explorer links.

blockNumber

integer

Block number.

blockTimestamp

string or null

Block timestamp.

gasUsed

integer

Gas units consumed (omitted when unknown).

gasPriceWei

string

Effective gas price in wei (omitted when unknown).

TransactionStats

Field
Type
Description

total

integer

Total matching transactions.

byStatus

object

Count keyed by TrackingStatus.

byProtocol

object

Count keyed by protocol.

avgDeliveryMs

number or null

Average delivery time in milliseconds.

bySourceChain / byDestChain

object

Counts keyed by chain ID.