Stablecoin remittances
What are stablecoin remittances?
Stablecoin remittances are cross-border transfers in which the sender pays in local currency and the money crosses the border as stablecoins, also called crypto or blockchain remittances.
Remittance companies and money transmitters use them to move money between corridors at any hour, and every send still has to be screened, carry the sender’s details and end with proof the recipient was paid.
Goldsky runs the send as a task that screens the receiving wallet and submits the transfer to your signer, then confirms it arrived; your licenses, identity checks, keys and local payout partners stay with you.
You can send stablecoin remittances two ways: a Compose task that sends each transfer, with a Turbo Pipelines pipeline that confirms its arrival, or a Compose task alone that treats the confirmed receipt as proof of delivery.
Who offers stablecoin remittances?
Remittance companies, money transmitters and consumer payment apps that let customers send money to family abroad.
How stablecoin remittances work
The diagram follows one transfer from the sender booking it in your app to the moment your app tells them it was delivered. Your setup may differ.
Ways to send stablecoin remittances
Adding the pipeline records each arrival in your own database and follows a transfer across chains, whereas the task alone stops at the receipt on the chain it sent on.
- Best for
- Cross-chain routes, with arrival in your database
- Best for
- Same-chain sends, run by one team
- Products
- Compose
| Usual setupOption 1: Send task and arrival pipeline | Option 2: Send task only | |
|---|---|---|
| Best for | Cross-chain routes, with arrival in your database | Same-chain sends, run by one team |
| Products | ComposeTurbo | Compose |
Book the transfer and take the sender’s payment
A remittance starts when someone pays in their local currency and names who should receive the money abroad.
Your app records the amount, the recipient, the payout method and the rate shown to the sender, then collects the payment. If the quote isn’t stored with the booking, a later dispute has nothing to compare the payout against.
Verify the sender
Money transmitters have to know who is sending money and keep each sender within their limits.
Your identity verification provider checks the sender against your onboarding policy and the transfer against their limits. Once a transfer is on the chain it can’t be pulled back, so the check has to clear before anything is sent.
Screen the receiving wallet before sending
Handled by Goldsky ComposeA stablecoin transfer can’t be recalled, so you check where the money is going before it leaves.
The send starts from the booking, and the payout partner’s wallet is checked against your blocked list and any screening provider you use. Each result has to be kept with the transfer, or a reviewer can’t see later why it went ahead.
With Goldsky Compose, an HTTP trigger can start one task per booking. The task checks the wallet against your list and calls your screening provider with
Start a task from an HTTP trigger (opens in a new tab)fetch, and each request and response is recorded on the run.Send the Travel Rule details
The Travel Rule requires the sending firm to pass on who the sender and recipient are along with the money.
Your Travel Rule provider sends the sender and recipient details to the receiving firm before the transfer goes out. If those details don’t arrive, the receiving firm may hold or return the funds.
Build the transfer and send it for signing
Handled by Goldsky ComposeThe transfer has to be built for the right chain, token and amount, then signed with a key you control.
The amount sent has to match the booking exactly. A retry after a timeout must never send the money a second time.
The task can build the transfer in a webhook wallet, which sends the signing endpoint you host a UserOperation (the transaction format smart-account wallets use) to sign, plus a one-time EIP-7702 authorization the first time it sends on a chain, and submits it once signed. If the task restarts, a transfer that already landed returns its original receipt and isn’t sent again.
Learn about webhook wallets (opens in a new tab)Sign the transfer
Moving the money takes a signature, and most firms keep their keys with a custody provider whose rules say who can approve what.
Your signing endpoint holds your treasury limits and approvers: it reads the recipient and amount from the transfer’s call data, checks them, then asks your custody provider to sign. A key kept in application settings with no rules around it lets anyone who can change the app move the funds.
Deliver the stablecoins to the payout partner
The money crosses the border when the stablecoins land in the payout partner’s wallet.
On a route that crosses chains, the transfer is burned on the sending chain and minted on the receiving one, so it’s two events. Between them the money is in flight, and neither chain alone shows where it is.
Wait for the transfer to confirm
Handled by Goldsky ComposeA transfer you sent can still be undone by a reorg, when the chain replaces its newest blocks.
Hold the transfer as pending until enough blocks sit on top of it, by a rule you set for each chain. If a reorg drops it, it has to be sent again, once, with the same amount to the same wallet.
Compose waits for the number of confirmations you set on the transfer. With the
Handle confirmations and reorgs (opens in a new tab)replaybehavior, it resends the transfer with fresh gas and nonce if a reorg drops it.Confirm the money reached the payout partner
Handled by Goldsky TurboYou and the sender need to know the money arrived, not only that it was sent.
Record the transfer landing in the payout partner’s wallet against the booking. On a cross-chain route, pair the burn with its mint; a burn with no mint after your cutoff is a transfer someone has to chase.
Goldsky’s Turbo Pipelines can stream burns and mints from every chain on the route into your database, where you pair them with a join on the source chain and nonce. A direct transfer to the payout partner’s wallet lands in the same tables.
Build a cross-chain settlement ledger (opens in a new tab)Pay the recipient locally
The recipient gets local money, not stablecoins, so someone in their country has to convert and pay out.
Your payout partner converts the stablecoins and pays the recipient in cash, into a bank account or onto a card; where cash agents pay out, it settles with each agent on a regular netting cycle. Keep its payout reference with the booking, because it’s the proof the recipient was paid. Some countries limit which partners may settle cross-border payments in stablecoins, so check the rules in each corridor.
Show the transfer as delivered
The sender wants to know the money arrived, and support needs the same answer when they call.
Your app marks the booking delivered once the payout partner confirms the payout. Marking it delivered when the stablecoins land tells the sender the recipient has money they may not have collected yet.
What to know about sending with a task and tracking with a pipeline
- Goldsky runs the task and the pipeline; the signing endpoint, the database and the payout partners are yours.
- Pairing a burn on one chain with its mint on another is a join in your database, so you define what counts as in flight or delivered.
- Tables with a primary key take reorg corrections in place.
- The task logs every screening call and transfer, and the pipeline’s rows carry the same transaction hash, so the two join into one record per transfer.
Book the transfer and take the sender’s payment
A remittance starts when someone pays in their local currency and names who should receive the money abroad.
Your app records the amount, the recipient, the payout method and the rate shown to the sender, then collects the payment. If the quote isn’t stored with the booking, a later dispute has nothing to compare the payout against.
Verify the sender
Money transmitters have to know who is sending money and keep each sender within their limits.
Your identity verification provider checks the sender against your onboarding policy and the transfer against their limits. Once a transfer is on the chain it can’t be pulled back, so the check has to clear before anything is sent.
Screen the receiving wallet before sending
Handled by Goldsky ComposeA stablecoin transfer can’t be recalled, so you check where the money is going before it leaves.
The send starts from the booking, and the payout partner’s wallet is checked against your blocked list and any screening provider you use. Each result has to be kept with the transfer, or a reviewer can’t see later why it went ahead.
With Goldsky Compose, an HTTP trigger can start one task per booking. The task checks the wallet against your list and calls your screening provider with
Start a task from an HTTP trigger (opens in a new tab)fetch, and each request and response is recorded on the run.Send the Travel Rule details
The Travel Rule requires the sending firm to pass on who the sender and recipient are along with the money.
Your Travel Rule provider sends the sender and recipient details to the receiving firm before the transfer goes out. If those details don’t arrive, the receiving firm may hold or return the funds.
Build the transfer and send it for signing
Handled by Goldsky ComposeThe transfer has to be built for the right chain, token and amount, then signed with a key you control.
The amount sent has to match the booking exactly. A retry after a timeout must never send the money a second time.
The task can build the transfer in a webhook wallet, which sends the signing endpoint you host a UserOperation (the transaction format smart-account wallets use) to sign, plus a one-time EIP-7702 authorization the first time it sends on a chain, and submits it once signed. If the task restarts, a transfer that already landed returns its original receipt and isn’t sent again.
Learn about webhook wallets (opens in a new tab)Sign the transfer
Moving the money takes a signature, and most firms keep their keys with a custody provider whose rules say who can approve what.
Your signing endpoint holds your treasury limits and approvers: it reads the recipient and amount from the transfer’s call data, checks them, then asks your custody provider to sign. A key kept in application settings with no rules around it lets anyone who can change the app move the funds.
Deliver the stablecoins to the payout partner
The money crosses the border when the stablecoins land in the payout partner’s wallet.
The transfer is recorded in a block on the chain both sides use. Until enough blocks sit on top of it, it can still be undone.
Wait for the transfer to confirm
Handled by Goldsky ComposeA transfer you sent can still be undone by a reorg, when the chain replaces its newest blocks.
Hold the transfer as pending until enough blocks sit on top of it, by a rule you set for each chain. If a reorg drops it, it has to be sent again, once, with the same amount to the same wallet.
Compose waits for the number of confirmations you set on the transfer. With the
Handle confirmations and reorgs (opens in a new tab)replaybehavior, it resends the transfer with fresh gas and nonce if a reorg drops it.Keep the record of each send
Handled by Goldsky ComposeExaminers and support may ask later what was checked and sent for one transfer, and the answer has to come from records.
The record ties the booking to the screening result, the transfer, its confirmations and any resend. Spread across systems with no shared reference, one sender’s history has to be rebuilt by hand.
Every call a Compose task makes is logged on its run, from the screening request to the transfer and its receipt, so one run is the full record of one send.
How Compose logs each call (opens in a new tab)Pay the recipient locally
The recipient gets local money, not stablecoins, so someone in their country has to convert and pay out.
Your payout partner converts the stablecoins and pays the recipient in cash, into a bank account or onto a card; where cash agents pay out, it settles with each agent on a regular netting cycle. Keep its payout reference with the booking, because it’s the proof the recipient was paid. Some countries limit which partners may settle cross-border payments in stablecoins, so check the rules in each corridor.
Show the transfer as delivered
The sender wants to know the money arrived, and support needs the same answer when they call.
Your app marks the booking delivered once the payout partner confirms the payout. Marking it delivered when the stablecoins land tells the sender the recipient has money they may not have collected yet.
What to know about confirming delivery from the receipt
- The task sees the transfer up to its receipt; once funds leave the chain for a card or an off-ramp, it doesn’t follow them.
- A route that crosses chains has a burn and a mint on two chains, which needs the pipeline as well.
- Screening, the transfer and any resend are logged on one task run, so the record of each send sits in one place.
- Goldsky runs the task; the signing endpoint, screening provider and payout partners are yours.
What you control
- Your team
- Book the transfer and take the sender’s payment
- Show the transfer as delivered
- Your providers
- KYC/KYB provider
- Travel Rule provider
- Wallet or custody provider
- Bank or on/off-ramp
Security and deployment
- SOC 2 Type IIIndependently audited security controls.
- Dedicated infrastructureSingle-tenant options for production workloads.
- Data residencyCloud, on-premises or co-located.
Use cases built the same way
- B2B cross-border payments in stablecoinsPay suppliers abroad in stablecoins and track each payment from send to off-ramp.
- Stablecoin payroll and contractor payoutsPay contractors and staff in stablecoins and confirm each payout settled.
- Stablecoin payouts for marketplaces and creatorsPay sellers, gig workers and creators in stablecoins from a marketplace balance.
- Cross-chain automationAct on one chain when an event happens on another.
Send stablecoin remittances 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.