LayerHopDocsLaunch app (opens in a new tab)

Track any transfer

Look up any bridge or aggregator transfer by its source transaction, not only LayerHop orders, and get its status, the destination transaction and the next step.

"Where's my money?" is the most common question after a bridge. GET /v1/track/{txHash} answers it for any transfer, from any app, given the transaction the user sent on the source chain (an EVM hash or a Solana signature). The same tool runs at layerhop.com/track and app.layerhop.com/track.

Terminal
curl "https://api.layerhop.com/v1/track/0xd9a702a19c7ce879cf38ea79ea4a2ddae514ea3736f725221fe7d6a2269c3c60?chain=soneium"
JSON
{
  "txHash": "0xd9a702a19c7ce879cf38ea79ea4a2ddae514ea3736f725221fe7d6a2269c3c60",
  "chainId": 1868,
  "source": "success",
  "protocol": { "id": "lifi", "name": "LI.FI", "via": "across", "supportUrl": "https://help.li.fi" },
  "status": "filled",
  "dstChainId": 8453,
  "dstTxHash": "0x066e173cec4e7bbc0109529c056c83d203170771aeaf1912d2500564b8095406",
  "next": { "kind": "done", "message": "Delivered. The funds arrived on the destination chain.", "url": "https://basescan.org/tx/0x066e…5406" },
  "sources": ["lifi", "across"]
}

How it works#

  1. Find the transaction. On chain when you pass it, otherwise on about 30 popular chains at once (passing chain is faster). Solana signatures are looked up on Solana.
  2. Detect the protocol from the contract the transaction called and the events it emitted: LI.FI's LiFiTransferStarted, Across FundsDeposited, LayerZero PacketSent (Stargate and other OFTs), Circle CCTP v2 MessageSent, Wormhole LogMessagePublished, native-bridge deposits and withdrawals, and the Mayan, deBridge and Gas.zip contracts. The contract the user called wins over what it used underneath (Mayan over CCTP), and an aggregator's own event wins over the bridge it routed through (LI.FI via Across).
  3. Ask the protocols through their public status APIs: Relay, LI.FI, Across, deBridge DLN, Mayan, LayerZero Scan, Wormholescan, Circle's attestation service (plus the destination chain, to see whether the message was received) and Gas.zip. Native-bridge withdrawals are read on chain, the same way as Recover.

LayerHop's own orders keep their existing path (GET /v1/orders/{provider}/{id}) and come back with protocol.id: "layerhop" and layerhopProvider.

Status and next step#

status Meaning
pending In flight.
filled Delivered; dstTxHash when the protocol reports it.
refunded Returned on the source chain; refundTxHash when known.
failed The protocol reports a failure (or the source transaction reverted: source: "reverted").
needs_claim Waiting for a second transaction: a native-bridge withdrawal, or a Wormhole Portal transfer nobody redeemed after an hour, or an attested CCTP message not yet received.
unknown Not found, or no protocol has indexed it yet.

next.kind turns that into one instruction for the user, with next.url where to act:

  • wait: in progress and within the usual time (typicalSeconds).
  • late: pending for more than 3× the usual time (and at least 15 minutes): contact the protocol's support with the transaction hash.
  • claim: a native withdrawal goes to Recover; other claims to the protocol's own site.
  • refunded, support (failed), source_failed (reverted on the source chain, only gas was spent), done.
  • not_found / unrecognized: we couldn't find the transaction, or found it but couldn't match a bridge we track.

Limits#

Answers are cached: 20 seconds while a transfer can still change, 10 minutes once it's final, and 5 minutes for a hash that no chain and no protocol knows (pass chain right after sending if the transaction is that fresh). At most 20 uncached lookups per IP per minute, within a budget shared by all clients (a busy tracker answers RATE_LIMITED with retry-after). Without chain, an EVM hash is looked for on the 8 most used chains first and on the others only while a shared budget lasts, so passing chain is faster and always complete. Relay looks transactions up through GET /requests/v3 when the operator sets TRACK_RELAY_API_KEY (a key only for the tracker); without one it uses the keyless v2, which Relay throttles and retires on 2026-11-24. Arbitrum deposits are reported as in progress with the usual 10–15 minutes; we don't check their retryable ticket, so a late one points to the Arbitrum bridge.

Last updated