All tracking requests require
x-api-key and must be made from your backend. The key returns records only for its associated integrator. Authorize your own end users before returning tracking data to them.Recommended flow
- Submit the transaction and persist the source transaction hash with your own order or user record.
- Wait for the source transaction to be confirmed.
- Call
GET /v1/transactions/{txHash}/status. - A known, just-submitted hash can initially return
404while analytics ingestion catches up. Retry it with bounded backoff. - Once a record exists, poll the lightweight status endpoint while the status is non-terminal. Fetch the full record only when you need token, fee, chain, or diagnostic fields.
- Stop automatic polling for terminal statuses and persist the result in your own system.
Polling cadence
This is a client-side recommendation, not an API SLA:- After source confirmation, retry an initial
404after 30 seconds, then use exponential backoff up to 60 seconds between attempts. - For
bridge_pending,refund_pending, orunknown, poll no more often than once per 60 seconds. Increase the interval after sustained waiting rather than polling indefinitely. - Set an application-level timeout and reconciliation/support path appropriate to your product. A pending bridge can take longer than a normal API request.
Server-side polling example
KeepDELORA_API_KEY in your server environment; do not expose it in browser code.
TypeScript
How to handle responses
substatus and rawBridgeStatus are not stable client contracts. Use the top-level status for business logic. For status meanings and terminal-state caveats, see Status lifecycle.
Full tracking record example
UseGET /v1/transactions/{txHash} when the UI or reconciliation process needs the complete record. This sanitized example shows a provider-specific destination chain ID (57) normalized to Arbitrum (42161).
protocolRawDestChainId is diagnostic only. Use canonicalDestChainId and the list endpoint’s destChainId filter for application logic.
Lightweight status response example
Record identity
Useid as the stable tracking-record identifier. transactionId can be null, and a single source transaction can contain more than one tracked event/log. Do not treat a source transaction hash as a globally unique tracking-record ID.
