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.
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.
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.
| Field | Tempo USDC LA example | Doc source |
|---|---|---|
| chain | tempo | Tempo guide + Create LA |
| currency | usdc | Create LA source currency enum |
| external_account_id | Bank/ACH or wire destination id | Offramp LA guide |
| destination_payment_rail | ach, wire, sepa, or a crypto rail | Create LA |
| destination_currency | usd (or eur/crypto) | Create LA |
| custom_developer_fee_percent | Optional override (e.g. 0.1) | LA + Developer fees |
| address (response) | Permanent Tempo deposit address | Create 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.
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 type | Required create fields | Notes |
|---|---|---|
| USD ACH | external_account_id, destination_payment_rail=ach, destination_currency=usd | Batch daily; ACH ref max 10 chars |
| USD wire | external_account_id, destination_payment_rail=wire, destination_wire_message | Near real-time per Bridge |
| EUR SEPA | external_account_id, destination_payment_rail=sepa, destination_currency=eur | SEPA reference recommended |
| Crypto dest | destination_payment_rail, destination_currency, destination_address | No 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.
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.
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.