Cross-chain transfer tracking
What it is
Cross-chain transfer tracking follows each stablecoin transfer that is burned on one chain and minted on another, and shows whether it has settled, is still in flight or has stalled.
Stablecoin payment providers, wallets and fintechs that keep their own ledger move funds between chains all day, and until the mint lands the money sits in neither balance, so a transfer that stalls unnoticed leaves a customer or a treasury short.
Goldsky records every burn and every mint in your database and runs a scheduled check on late transfers, while you pair them into a status, set the delay you accept and fix any stuck transfer.
Who it’s for
Stablecoin payment providers, payment service providers, wallets, card networks and fintechs that run their own ledger and move stablecoins between chains.
How cross-chain transfer tracking works
The diagram follows one transfer from the burn on the source chain to a stuck transfer being fixed, and shows who does each step. Your setup may differ.
Burn the stablecoins on the source chain
A burn-and-mint transfer starts by destroying the stablecoins on the chain they leave.
The burn records the amount, the destination chain, the recipient and a nonce that identifies the transfer. Until the matching mint lands, the money is in neither chain’s balance.
Record every burn on each source chain
Handled by Goldsky TurboYou can only follow transfers you’ve seen leave.
Every burn on every chain you send from goes into one table, tagged with its source chain, nonce, amount and time. A chain left out shows its transfers as never started.
With Goldsky, one Turbo Pipelines pipeline reads the logs of each chain’s
Build a cross-chain settlement ledger (opens in a new tab)TokenMessengercontract, decodesDepositForBurn, combines the chains withUNION ALLand writes the burns to Postgres.Wait for the issuer to attest the burn
The destination chain mints only against a message the issuer has signed.
The issuer’s attestation service waits for the burn to be confirmed, then signs it. Its API answering “not found” early on is expected and doesn’t mean the transfer failed.
Mint the stablecoins on the destination chain
The transfer is done only when the stablecoins exist again on the chain they were sent to.
Someone submits the signed attestation to the destination chain to mint. If nobody submits it, or the mint fails, the burn stays unmatched.
Record every mint on each destination chain
Handled by Goldsky TurboA burn is settled only once you see its mint.
Each mint is stored with the source domain and nonce of the burn it completes, and the chain it landed on. Without the source domain and nonce, mints can’t be tied back to burns.
A second Turbo Pipelines pipeline decodes
Index mints on every chain (opens in a new tab)MessageReceivedfrom each chain’sMessageTransmitter, which carries the source domain and nonce, and writes the mints to Postgres.Pair burns with mints into a status
Each transfer needs one answer: settled, in flight or stalled.
Join burns to mints on source domain (the issuer’s number for the source chain) and nonce: a match is settled, an unmatched burn is in flight, and one older than the delay you accept is stalled. Nonces repeat across source domains, so joining on the nonce alone pairs the wrong transfers.
Check stalled transfers with the issuer
Handled by Goldsky ComposeA stalled transfer needs someone to know why before customers ask.
For each stalled transfer, ask the issuer’s attestation API whether the signed message is ready, and alert when it isn’t. A transfer with a ready attestation but no mint is stuck at the mint, not the attestation.
A scheduled Compose task calls an endpoint you expose over your database with
Run a task on a schedule (opens in a new tab)fetchfor the stalled transfers, since a task reaches outside systems only over HTTP. It looks each up by source domain and burn transaction and posts an alert when the attestation isn’t complete, with retries and a trace of every run.Fix the stuck transfer
Stalled money has to reach its destination or be accounted for.
Retry a failed mint, or request a fresh attestation when the old one has expired, then mint again. As long as the burn exists on the source chain, the transfer can still be completed.
What you control
- Your team
- Pair burns with mints into a status
- Fix the stuck transfer
- Your providers
- Stablecoin issuer
Security and deployment
- SOC 2 Type IIIndependently audited security controls.
- Dedicated infrastructureSingle-tenant options for production workloads.
- Data residencyCloud, on-premises or co-located.
More use cases that settle across chains and currencies
- Stablecoin settlementSettle business, card-network and interbank payments in stablecoins or deposit tokens across chains.
- B2B cross-border payments in stablecoinsPay suppliers abroad in stablecoins and track each payment from send to off-ramp.
- Stablecoin settlement for card networksSettle card-network obligations with issuers and acquirers in stablecoins across chains.
- Tokenized deposits for interbank settlementSettle payments between banks in tokenized deposits and tie each one to the core.
- Onchain FX between stablecoinsSwap between stablecoin currencies onchain and record the rate and settlement of each trade.
Use cases built the same way
- Authorize and capture stablecoin paymentsHold a buyer’s stablecoins in an escrow contract at checkout, capture them to the merchant as orders ship, void what can’t be filled and refund after capture.
- Programmable escrow for B2B stablecoin paymentsHold a buyer’s stablecoin payment until delivery, a milestone or a deadline, then release it to the seller or refund the buyer.
- Continuous proof of reservesCompare onchain supply with reported reserves on a schedule, then publish the ratio or alert on a gap.
- Wrapped bitcoin reserve monitoringCheck a wrapped bitcoin token’s supply on every chain against the BTC at its custodian’s reserve addresses, and alert on any gap.
Track cross-chain stablecoin transfers with Goldsky
We’ll map it to your systems and show you what Goldsky runs, so your team builds the product, not the pipelines underneath it.