Skip to content

Tracking a message

Track messages sent through Concero’s messaging protocol and obtain detailed status, origin, destination, and transaction information.

Endpoint & Method

  • Method: GET
  • URL: https://api.v2.concero.io/api/v1/scan/tx

Query Parameters

ParameterTypeDescriptionRequired/Optional
messageIdstringUnique identifier of the messageOptional
srcHashstringSource chain transaction hashOptional
dstHashstringDestination chain transaction hashOptional
senderstringAddress of the message senderOptional
receiverstringAddress of the message recipientOptional
takenumberNumber of messages to return (pagination limit)Optional
skipnumberNumber of messages to skip (pagination offset)Optional

Note: One of messageId, srcHash, dstHash, sender, or receiver must be provided. Use take and skip for pagination control.

Response Structure

The API response includes:

  • code — API response status (ok or error codes)
  • payload.transactions — Array of matched message transactions
  • payload.pagination — Pagination information (take and skip)

Example

Request

Below is an example demonstrating how to make a request to the Concero API to track a specific message by its messageId. The request uses the GET method with the messageId and pagination options as query parameters.

curl -X 'GET' \
  'https://api.v2.concero.io/api/v1/scan/tx?&messageId=0xfff31ff0333baba7b54da7710edfc2fb7b645e95e57ebb44cfe06a505c0410f6&take=1&skip=0' \
  -H 'accept: application/json'

Response

Following the request example is a sample JSON response showing the structure of the data returned by the API. This response includes transaction details such as the message status, token transfers, source and destination chain information, and pagination metadata.

{
  "code": "ok",
  "payload": {
    "transactions": [
      {
        "type": "lbf",
        "id": "0xfff31ff0333baba7b54da7710edfc2fb7b645e95e57ebb44cfe06a505c0410f6",
        "status": "success",
        "isFinalityRequired": false,
        "dstChainGasLimit": "0",
        "messagePayload": "0x0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000239d5b78680e9ad600ab41e56508670ba9e78f51000000000000000000000000239d5b78680e9ad600ab41e56508670ba9e78f5100000000000000000000000000000000000000000000000000000000000f187b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011e00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000",
        "from": {
          "chain": {
            "id": 421614,
            "selector": 421614,
            "name": "Arbitrum Sepolia"
          },
          "token": {
            "name": "USD Coin",
            "symbol": "USDC.e",
            "address": "0xefc3ac3bcb37f0f26efde1e1b06609bdff690604",
            "decimals": 6,
            "priceUsd": 1,
            "amount": 0.99
          },
          "address": "0x239d5b78680e9ad600ab41e56508670ba9e78f51",
          "hash": "0xeda4c75e41b6f1bea80a9fb116e67f6e99518b4eb7fccf1587348eac00a49791",
          "timestamp": 1758708525
        },
        "to": {
          "chain": {
            "id": 43113,
            "selector": 43113,
            "name": "Avalanche Fuji"
          },
          "token": {
            "name": "USD Coin",
            "symbol": "USDC.e",
            "address": "0x855f39baacaf30d7de448542316a889ee4db4ddb",
            "decimals": 6,
            "priceUsd": 1,
            "amount": 0.989307
          },
          "address": "0x239d5b78680e9ad600ab41e56508670ba9e78f51",
          "hash": "0x4c321b5b88eed8d38baeb1c81527758b2bdfb562e6ea94cb0ca6251f657442f4",
          "timestamp": 1758708536
        }
      }
    ],
    "pagination": {
      "skip": 0,
      "take": 1
    }
  }
}