A Liquidation Address is a permanent payment route which ties a blockchain address to either a fiat or blockchain address. When a customer sends crypto, such as USDC, to their liquidation address, Bridge will automatically send funds to the destination.

πŸš€ New: Multichain / Multicurrency Liquidation Addresses

Bridge now supports creating flexible liquidation addresses that can accept deposits across multiple chains and currencies.
We do not support returning unsupported currencies! Please be careful and guide your users not to send currencies we do not support. You can view what we support here.

Multichain

  • Create a Liquidation Address with chain="evm".
  • Currently supported chains: Base, Ethereum, Polygon.
  • Example: You can send USDC.base, USDC.ethereum, USDC.polygon, etc. to the same liquidation address.
Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "chain": "evm",
  "currency": "usdc",
  "external_account_id": "ea_alice_bofa"
  "destination_wire_message": "alice_wire_123"
  "destination_payment_rail": "wire",
  "destination_currency": "usd",
}'

Multicurrency

  • Create a Liquidation Address with currency="any".
  • Example: You can send USDB.solana, USDC.solana, etc. to the same liquidation address.
Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "chain": "base",
  "currency": "any",
  "external_account_id": "ea_alice_bofa"
  "destination_wire_message": "alice_wire_123"
  "destination_payment_rail": "wire",
  "destination_currency": "usd",
}'

Multichain + Multicurrency

  • Create a Liquidation Address with both chain="evm" and currency="any".
  • Example: You can send USDC.base, USDC.ethereum, USDT.ethereum, USDC.polygon, etc. to the same liquidation address.
Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "chain": "evm",
  "currency": "any",
  "external_account_id": "ea_alice_bofa"
  "destination_wire_message": "alice_wire_123"
  "destination_payment_rail": "wire",
  "destination_currency": "usd",
}'

Point a liquidation address to an external bank account

Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "chain": "ethereum",
  "currency": "usdc",
  "external_account_id": "ea_alice_bofa"
  "destination_wire_message": "alice_wire_123"
  "destination_payment_rail": "wire",
  "destination_currency": "usd",
}'
Response
{
  "id": "liq_alice_123",
  "chain": "ethereum",
  "external_account_id": "ea_alice_bofa",
  "currency": "usdc",
  "address": "0xc0ffee",
  "destination_wire_messaage": "alice_wire_123",
  "destination_payment_rail": "wire",
  "destination_currency": "usd",
  "created_at": "2023-11-22T21:31:30.515Z",
  "updated_at": "2023-11-22T21:31:30.515Z"
}
The response object contains the blockchain address of the liquidation address. Now anytime your customer receives funds on this address, Bridge will automatically convert it to USD and send a wire payment with the wire message.

Create a liquidation address with a crypto destination

Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "chain": "ethereum",
  "currency": "usdt",
  "destination_payment_rail": "polygon",
  "destination_currency": "usdc",
  "destination_address": "0xdeadbeef"
}'
Response
{
  "id": "liq_alice_456",
  "chain": "ethereum",
  "address": "0xc0ffee",
  "currency": "usdt",
  "destination_payment_rail": "polygon",
  "destination_currency": "usdc",
  "destination_address": "0xdeadbeef",
  "created_at": "2023-11-22T21:31:30.515Z",
  "updated_at": "2023-11-22T21:31:30.515Z"
}

Memo based blockchains

Don’t forget the blockchain memo.
For memo-based blockchains, such as Stellar, a blockchain_memo will be provided as part of the response. This must be included in the crypto deposit memo.
Response
{
  "id": "liq_alice_123",
  "chain": "stellar",
  "external_account_id": "ea_alice_bofa",
  "currency": "usdc",
  "address": "GDUY7JBRIDGESTELLARLIQUIDATIONADDRESS",
  "blockchain_memo": "12345",
  "created_at": "2023-11-22T21:31:30.515Z",
  "updated_at": "2023-11-22T21:31:30.515Z"
}

Create a liquidation address with a custom developer fee

Setting a custom developer fee overrides the default Liquidation Address developer fee for a given Liquidation Address upon creation.
Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/cust_alice/liquidation_addresses' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <Api-Key>' \
--header 'Idempotency-Key: <Unique Idempotency Key>' \
--data-raw '{
  "chain": "ethereum",
  "currency": "usdc",
  "external_account_id": "ea_alice_bofa"
  "destination_wire_message": "alice_wire_123"
  "destination_payment_rail": "wire",
  "destination_currency": "usd",
  "custom_developer_fee_percent": "10.2",
}'

Static Template Transfers vs Liquidation Addresses

Static template transfers are similar to liquidation address in that they are both saved payment routes. The key difference is that a liquidation address is a permanent blockchain address, whereas static template transfer rely on the deposit message to route funds. For customers, it’s more intuitive to use a unique blockchain address.