Blockstream Enterprise Custody SDK
AmpTokenization

Asset Transfers

How to transfer Liquid assets between AMP wallets and external Liquid addresses.

Complete Setup and Installation first.

This guide uses:

You also need:

  • a funded AMP wallet
  • the asset ID you want to move

What this page covers

This page focuses on asset-transfer requests themselves:

  • wallet-to-wallet transfers
  • transfers to external Liquid addresses
  • L-BTC transfers on Liquid
  • multi-recipient sends

For the general platform lifecycle around approvals and review states, see Transaction Lifecycle.

Transfer to another wallet

import { v4 as uuidv4 } from 'uuid'

const result = await broadcastRequest({
  action: 'add',
  resource: `/wallets/${walletId}/spend-requests`,
  details: {
    id: uuidv4(),
    wallet_id: walletId,
    tx_type: 'send',
    request: {
      asset_id: assetId,
      recipients: [
        {
          amount: 1000,
          recipient: { type: 'wallet', value: recipientWalletId },
        },
      ],
    },
  },
})

Transfer to an external Liquid address

const result = await broadcastRequest({
  action: 'add',
  resource: `/wallets/${walletId}/spend-requests`,
  details: {
    id: uuidv4(),
    wallet_id: walletId,
    tx_type: 'send',
    request: {
      asset_id: assetId,
      recipients: [
        {
          amount: 5000,
          recipient: { type: 'address', value: 'lq1qqxyz...' },
        },
      ],
    },
  },
})

Transfer L-BTC on Liquid

const LBTC_ASSET_ID = '6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d'

const result = await broadcastRequest({
  action: 'add',
  resource: `/wallets/${walletId}/spend-requests`,
  details: {
    id: uuidv4(),
    wallet_id: walletId,
    tx_type: 'send',
    request: {
      asset_id: LBTC_ASSET_ID,
      recipients: [
        {
          amount: 100000,
          recipient: { type: 'wallet', value: recipientWalletId },
        },
      ],
    },
  },
})

Multi-recipient transfer

const result = await broadcastRequest({
  action: 'add',
  resource: `/wallets/${walletId}/spend-requests`,
  details: {
    id: uuidv4(),
    wallet_id: walletId,
    tx_type: 'send',
    request: {
      asset_id: assetId,
      recipients: [
        { amount: 1000, recipient: { type: 'wallet', value: wallet1Id } },
        { amount: 2000, recipient: { type: 'wallet', value: wallet2Id } },
        { amount: 3000, recipient: { type: 'address', value: 'lq1qqxyz...' } },
      ],
    },
  },
})

Transfer payload fields

FieldMeaning
asset_idAsset being transferred
recipientsAll intended destinations
recipients[].amountAmount in base units
recipients[].recipient.typewallet or address
recipients[].recipient.valueWallet ID or Liquid address

On this page