Skip to content

How to Create a Bridge Liquidation Address for Tempo USDC (2026)

Create a Bridge Liquidation Address on Tempo for USDC: POST chain=tempo currency=usdc, point to ACH/wire or crypto, then monitor drains as deposits auto-offramp.

Table of Contents

Operators that settle Tempo USDC into fiat or another crypto rail can skip one-off transfer calls by issuing a Bridge Liquidation Address once and reusing the on-chain deposit address.

The named object is a Bridge Liquidation Address with chain=tempo and currency=usdc. Deposits to that permanent address auto-convert and forward to a configured fiat external account or crypto destination.

📌
Stablecoin Insider's framing: Virtual Accounts pull fiat onto Tempo. Liquidation Addresses push Tempo USDC off to fiat or crypto. Pair them when the product needs both inbound ACH/wire and outbound auto-drain.

This guide follows Bridge public docs as of September 21, 2026: Liquidation address, Tempo integration guide, Offramp with liquidation addresses, and Create a Liquidation Address. It does not invent fee schedules, unsupported countries, or unpublished hostnames.

Key Takeaways

  • Create POST /v0/customers/{id}/liquidation_addresses with chain tempo and currency usdc.
  • Point the LA at an external_account_id (ACH/wire/SEPA) or a crypto destination_payment_rail plus destination_address.
  • Bridge rejects duplicate LAs for the same customer, source chain, source currency, and destination.
  • Each deposit becomes a drain with states from funds_received through payment_processed (or returned/error).
  • Named downside: KYC/jurisdiction gates, developer fees, Tempo availability, and return_instructions must be set before production drains.
⚠️
Named downside: Liquidation Addresses require a KYC-approved customer, a valid destination (external account or crypto address), and no duplicate route for that customer. ACH drains batch daily; wire and blockchain destinations move closer to real time. Confirm Tempo USDC support and fee percent with Bridge before go-live.

Who this is for

Use a Tempo USDC Liquidation Address when end users or treasury wallets already hold USDC on Tempo and you need automatic offramp without creating a Transfer on every deposit.

Typical buyer: remittance, neo-bank, or marketplace platforms that settled users onto Tempo via Virtual Accounts and now need the reverse rail. Bridge's Tempo guide lists Liquidation Addresses alongside wallets, transfers, issuance, and Virtual Accounts.

Stablecoin Insider already covered how to open a Bridge Virtual Account for USDC and Bridge Open Issuance for branded stablecoins. This post is the operator how-to for the Liquidation Address object on the Tempo rail.

What a Liquidation Address does

Per Bridge docs, a Liquidation Address is a permanent payment route that ties a blockchain address to either a fiat external account or a crypto destination. When a customer sends USDC (or other supported currency) to that address, Bridge converts and forwards funds based on destination_payment_rail.

Real-time rails such as wire, SEPA, and blockchains send funds promptly. Batch rails such as ACH queue and process daily. Static template transfers are similar saved routes, but they rely on a deposit message; Liquidation Addresses give customers a unique on-chain address, which Bridge notes is more intuitive.

FieldTempo USDC LA exampleDoc source
chaintempoTempo guide + Create LA
currencyusdcCreate LA source currency enum
external_account_idBank/ACH or wire destination idOfframp LA guide
destination_payment_railach, wire, sepa, or a crypto railCreate LA
destination_currencyusd (or eur/crypto)Create LA
custom_developer_fee_percentOptional override (e.g. 0.1)LA + Developer fees
address (response)Permanent Tempo deposit addressCreate LA response

Prerequisites before the first POST

Complete these before calling Create a Liquidation Address. Skipping any of them returns 400s or undeliverable drains.

  • Bridge API key with Liquidation Address scope (sandbox key first).
  • Customer created and KYC-approved for the jurisdictions you serve.
  • For fiat destinations: External Account registered (API or Plaid) with currency matching destination_currency.
  • Idempotency-Key header on every create call.
  • Return path configured via return_instructions (preferred) so failed drains can be refunded on Tempo.
  • Webhook endpoint for drain state changes.
  • Confirmed Tempo is enabled for your developer account (Bridge Tempo guide).

Customer onboarding and external-account steps match the same Bridge stack used for Virtual Accounts. Reuse approved customers rather than opening a second KYC path.

Step 1: Register the fiat or crypto destination

For ACH or wire USD offramp, create an External Account under the customer, then capture its id. Bridge's offramp guide shows US bank, SEPA IBAN, and MXN CLABE examples. The External Account currency must match destination_currency.

For crypto-to-crypto, skip the bank object and plan destination_payment_rail, destination_currency, and destination_address instead. Tempo can also appear as a destination rail when you drain into Tempo from another chain.

💡
Stablecoin Insider's take: lock the destination before you mint the LA. Changing destinations later means Update a Liquidation Address, and duplicate create attempts for the same route fail by design.

Step 2: Create the Tempo USDC Liquidation Address

Call POST /v0/customers/{customerID}/liquidation_addresses with Api-Key and Idempotency-Key. Bridge's Tempo integration guide shows the Tempo-specific shape: currency usdc, chain tempo, external_account_id, destination_payment_rail ach, destination_currency usd, optional destination_ach_reference, and optional custom_developer_fee_percent.

Example fields from the Tempo guide: destination_ach_reference such as "test", custom_developer_fee_percent "0.1". Wire destinations use destination_wire_message (Fedwire-style constraints). SEPA uses destination_sepa_reference (6–140 chars).

A successful 201 response returns id (for example la_123), chain tempo, currency usdc, state active, and address (the permanent Tempo deposit address such as 0x…). Store address and id in your ledger; customers send Tempo USDC to address only.

Destination typeRequired create fieldsNotes
USD ACHexternal_account_id, destination_payment_rail=ach, destination_currency=usdBatch daily; ACH ref max 10 chars
USD wireexternal_account_id, destination_payment_rail=wire, destination_wire_messageNear real-time per Bridge
EUR SEPAexternal_account_id, destination_payment_rail=sepa, destination_currency=eurSEPA reference recommended
Crypto destdestination_payment_rail, destination_currency, destination_addressNo external_account_id

Step 3: Fund the address and watch drains

When USDC arrives on the Liquidation Address, Bridge opens a drain. Retrieve history with GET /v0/customers/{customerID}/liquidation_addresses/{liquidationAddressID}/drains, and subscribe to webhooks for state changes.

Drain states documented by Bridge include in_review, funds_received, payment_submitted, payment_processed, undeliverable, returned, refunded, error, and canceled. Forward progress only: funds_received → payment_submitted → payment_processed. payment_processed may include rail metadata such as tx_hash, imad, or trace_number.

Canceled often means AML review or a deposit below Bridge's minimum. Undeliverable usually means a bad destination account or unsupported asset. Wire your support runbook to those states before production volume.

Step 4: Fees, duplicates, and updates

custom_developer_fee_percent on create overrides the default Liquidation Address developer fee for that address. Values are base-100 percentages (10.2 means 10.2%). Null uses the developer default from Developer fees.

Bridge does not allow duplicate Liquidation Addresses for the same customer with the same source chain, source currency, and destination. A second create with that triple fails with an API error. To change bank or fee, use Update a Liquidation Address rather than creating a twin.

Multi-chain / multi-currency LAs (chain=evm, currency=all_supported) exist for other products. For this how-to, keep a single-chain Tempo USDC address so operators can reason about one deposit string.

How this fits next to Virtual Accounts and cards

Virtual Accounts move fiat onto Tempo USDC. Liquidation Addresses move Tempo USDC out. Together they form a closed loop for payment apps building on Tempo with Bridge wallets and transfers.

If the product also needs local card spend against a USDC wallet, compare BVNK USDC Cards and Circle-style stablecoin payouts. For generic USDC ACH/wire without Tempo, see how to off-ramp USDC to ACH or wire.

How to Open a Bridge Virtual Account for USDC
Operator how-to for Bridge Virtual Accounts that settle fiat deposits to USDC, the inbound counterpart to Liquidation Addresses.

Operator checklist before go-live

  • Sandbox: create External Account → create Tempo USDC LA → deposit test USDC → observe drain to payment_processed.
  • Assert Idempotency-Key reuse returns the same LA, and a true duplicate destination fails.
  • Set return_instructions on Tempo so failed fiat payouts can reverse on-chain.
  • Map webhook drain states into your ledger and support SLAs (especially ACH batch lag).
  • Confirm custom_developer_fee_percent with finance; document it in customer pricing.
  • Store the returned address immutably; never regenerate for the same route.

Need the primary reference? Start with Bridge's Tempo Liquidation Address example, then wire External Accounts and drain webhooks before the first production deposit.

Read Tempo integration guide

Security and compliance notes for operators

Travel Rule data can be attached on create when the same originator or beneficiary applies to every future drain. If counterparties vary per deposit, submit Travel Rule payloads per movement instead.

Because destinations are permanent routes, treat LA addresses like bank account numbers: scope them per customer, rotate only via Update, and monitor for unexpected deposit_tx_hash activity on the drain history endpoint.

FAQ

What is a Bridge Liquidation Address?

A permanent blockchain address that auto-routes incoming crypto (such as Tempo USDC) to a configured fiat external account or crypto destination without a new Transfer API call per deposit.

How do you create a Tempo USDC Liquidation Address?

POST /v0/customers/{customerID}/liquidation_addresses with currency usdc, chain tempo, Idempotency-Key, and either an external_account_id plus fiat rail fields or a crypto destination_payment_rail and destination_address.

Can you create two Liquidation Addresses for the same destination?

No. Bridge rejects duplicates for the same customer, source chain, source currency, and destination. Update the existing LA instead.

How fast do ACH vs wire drains settle?

Bridge documents batch rails such as ACH as queued and processed daily, and real-time rails such as wire, SEPA, and blockchains as sending promptly after conversion.

What is a drain?

A drain is the lifecycle record for one deposit that Bridge converts and forwards from a Liquidation Address. Track states via drain history and webhooks until payment_processed or a failure state.

Do Virtual Accounts replace Liquidation Addresses?

No. Virtual Accounts onramp fiat to Tempo USDC. Liquidation Addresses offramp Tempo USDC to fiat or crypto. Most Tempo payment apps need both.


This content is provided for informational and educational purposes only and does not constitute financial, investment, legal, or tax advice; no material herein should be interpreted as a recommendation, endorsement, or solicitation to buy or sell any financial instrument, and readers should conduct their own independent research or consult a qualified professional.

Latest