Transfer Asset from Wallet

POST /wallets/{walletId}/transfers

Transfer an asset out of the specified wallet to a destination address. For all fungible token transfers, the transfer amount must be specified in the minimum denomination of that token. For example, use the amount in Satoshi for a Bitcoin transfer, or the amount in Wei for an Ethereum transfer etc.

Required Permissions

NameConditions

Wallets:TransferAsset

Always Required

Parameters

Path parameters

Path parameterDescription

walletId

Unique identifier of the Wallet. ex. wa-1f04s-lqc9q-xxxxxxxxxxxxxxxx

Native Token

Transfer the native token of the network. All networks support the native token type.

Request body

PropertyTypeDescription

kind*

String

Native

to*

String

The destination address

amount*

String

The amount of native tokens to transfer in minimum denomination

priority

(Optional) String

The priority that determines the fees paid for the transfer [1]

memo

(Optional) String

The memo or destination tag [2]

externalId

(Optional) String

A unique ID from your system. It can be leveraged to be used as an idempotency key (read more here)

  1. All EVM compatible networks and Bitcoin support priority. Not supported for other networks. The accepted values are Slow, Standard and Fast. When specified, it uses the estimate fees API to calculate the transfer fees. When not specified, the transfer will use the fees returned from the blockchain node providers.

  2. Stellar and XrpLedger support memo. Not valid for other networks.

Sample request body

{
  "kind": "Native",
  "to": "0xb282dc7cde21717f18337a596e91ded00b79b25f",
  "amount": "1000000000"
}

200 response example

{
  "id": "xfr-1vs8g-c1ub1-xxxxxxxxxxxxxxxx",
  "walletId": "wa-39abb-e9kpk-xxxxxxxxxxxxxxxx",
  "network": "Ethereum",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Native",
    "to": "0xb282dc7cde21717f18337a596e91ded00b79b25f",
    "amount": "1000000000"
  },
  "metadata": {
    "asset": {
      "symbol": "ETH",
      "decimals": 18,
      "verified": true,
      "quotes": {
        "EUR": 2802.867647101728,
        "USD": 3020.82462287215
      }
    }
  },
  "dateRequested": "2023-05-08T19:14:25.568Z",
  "status": "Pending"
}

Algorand

Algorand Standard Assets

Transfer Algorand standard assets, or ASAs.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Asa

String

assetId

Required

The asset ID of the token

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

Sample request body

{
  "kind": "Asa",
  "assetId": "31566704",
  "to": "FRZP423Y7MNMTG4OOLESESTPCFGGHZMY7QN462YEQAJK5H6EOMFHZG73UA",
  "amount": "1000000"
}

200 response example

{
  "id": "xfr-22e36-7p55v-xxxxxxxxxxxxxxxx",
  "walletId": "wa-39abb-e9kpk-xxxxxxxxxxxxxxxx",
  "network": "Algorand",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Asa",
    "assetId": "31566704",
    "to": "FRZP423Y7MNMTG4OOLESESTPCFGGHZMY7QN462YEQAJK5H6EOMFHZG73UA",
    "amount": "1000000"
  },
  "metadata": {
    "asset": {
      "symbol": "USDC",
      "decimals": 6,
      "verified": true
    }
  },
  "dateRequested": "2024-05-10T14:35:55.768Z",
  "status": "Pending"
}

EVM Compatible Networks

ERC-20

Transfer fungible tokens that implement the ERC-20 specification.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Erc20

String

contract

Required

The ERC20 contract address

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

priority

Optional

The priority that determines the fees paid for the transfer

String

Sample request body

{
  "kind": "Erc20",
  "contract": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
  "to": "0xb282dc7cde21717f18337a596e91ded00b79b25f",
  "amount": "1000000"
}

200 response example

{
  "id": "xfr-6ulmv-sa183-xxxxxxxxxxxxxxxx",
  "walletId": "wa-40f4f-51gpm-xxxxxxxxxxxxxxxx",
  "network": "Ethereum",
  "requester": {
    "userId": "us-4vu4v-kud3l-xxxxxxxxxxxxxxxx",
    "appId": "ap-7c2pm-avfsr-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Erc20",
    "contract": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "amount": "1000000",
    "to": "0xb282dc7cde21717f18337a596e91ded00b79b25f"
  },
  "metadata": {
    "asset": {
      "symbol": "USDC",
      "decimals": 6,
      "verified": true,
      "quotes": {
        "USD": 1.000804849917271,
        "EUR": 0.9201529894769885
      }
    }
  },
  "status": "Confirmed",
  "fee": "1542993669053672",
  "txHash": "0x8e88793607610a83798eb5ec6dde861f3e459c7e4a22e78b0d2e675b86d0d1e7",
  "dateRequested": "2024-01-18T23:03:53.739Z",
  "dateBroadcasted": "2024-01-18T23:03:55.685Z",
  "dateConfirmed": "2024-01-18T23:03:59.000Z"
}

ERC-721

Transfer non-fungible tokens that implement the ERC-721 specification

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Erc721

String

contract

Required

The ERC721 contract address

String

to

Required

The destination address

String

tokenId

Required

The token to transfer

String

priority

Optional

The priority that determines the fees paid for the transfer

String

Sample request body

{
  "kind": "Erc721",
  "contract": "0x00fb58432ef9d418bf6688bcf0a226d2fcaa18e2",
  "to": "0xb282dc7cde21717f18337a596e91ded00b79b25f",
  "tokenId": "1"
}

200 response example

{
  "id": "xfr-4n0dm-fqju5-xxxxxxxxxxxxxxxx",
  "walletId": "wa-39abb-e9kpk-xxxxxxxxxxxxxxxx",
  "network": "EthereumSepolia",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Erc721",
    "contract": "0x00fb58432ef9d418bf6688bcf0a226d2fcaa18e2",
    "to": "0xb282dc7cde21717f18337a596e91ded00b79b25f",
    "tokenId": "1"
  },
  "dateRequested": "2023-05-08T18:10:43.521Z",
  "status": "Pending"
}

Solana

Solana Program Library Token (SPL)

Transfer SPL tokens.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Spl

String

mint

Required

The mint account address

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

createDestinationAccount

Optional

If True, pay to create the associated token account of the recipient if it doesn't exist. Defaults to False.

Boolean

Sample request body

{
  "kind": "Spl",
  "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "to": "3U6stgsD1FmA7o3omUguritCU8iWmUM7Rs6KqAHHxHVZ",
  "amount": "1000000"
}

200 response example

{
  "id": "xfr-4qc73-2kr4s-xxxxxxxxxxxxxxxx",
  "walletId": "wa-3i0nv-fa4e7-xxxxxxxxxxxxxxxx",
  "network": "Solana",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Spl",
    "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "to": "3U6stgsD1FmA7o3omUguritCU8iWmUM7Rs6KqAHHxHVZ",
    "amount": "1000000"
  },
  "metadata": {
    "asset": {
      "symbol": "USDC",
      "decimals": 6,
      "verified": true
    }
  },
  "dateRequested": "2024-06-11T13:46:55.175Z",
  "status": "Pending"
}

Solana Program Library Token 2022 (SPL-2022)

Transfer SPL 2022 tokens.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Spl2022

String

mint

Required

The mint account address

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

createDestinationAccount

Optional

If True, pay to create the associated token account of the recipient if it doesn't exist. Defaults to False.

Boolean

Sample request body

{
  "kind": "Spl2022",
  "mint": "DnECowYZoUEyqfntQmeLPPH5s1TLR7P5v4iyToZxFjDZ",
  "to": "3U6stgsD1FmA7o3omUguritCU8iWmUM7Rs6KqAHHxHVZ",
  "amount": "1000000"
}

200 response example

{
  "id": "xfr-2kmot-fk31j-xxxxxxxxxxxxxxxx",
  "walletId": "wa-3i0nv-fa4e7-xxxxxxxxxxxxxxxx",
  "network": "Solana",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Spl2022",
    "mint": "DnECowYZoUEyqfntQmeLPPH5s1TLR7P5v4iyToZxFjDZ",
    "to": "3U6stgsD1FmA7o3omUguritCU8iWmUM7Rs6KqAHHxHVZ",
    "amount": "1000000"
  },
  "metadata": {
    "asset": {
      "symbol": "Dfns22",
      "decimals": 8
    }
  },
  "dateRequested": "2024-06-05T17:02:43.295Z",
  "status": "Pending"
}

Stellar

Classic Stellar Assets (SEP-41)

Transfer classic Stellar Assets. They all implement the SEP-41 token interface.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Sep41

String

issuer

Required

The asset issuer address

String

assetCode

Required

The asset code

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

memo

Optional

The memo

String

Sample request body

{
  "kind": "Sep41",
  "issuer": "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
  "assetCode": "USDC",
  "to": "GAZWLHTNAOJWW52GZCUJAS5MSXK7LAWCUC5TFOFFVDQ7CDTNFODJ37GB",
  "amount": "1000000"
}

200 response example

{
  "id": "xfr-gbasv-hssu9-xxxxxxxxxxxxxxxx",
  "walletId": "wa-46sdf-a9stj-xxxxxxxxxxxxxxxx",
  "network": "Stellar",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Sep41",
    "issuer": "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
    "assetCode": "USDC",
    "to": "GAZWLHTNAOJWW52GZCUJAS5MSXK7LAWCUC5TFOFFVDQ7CDTNFODJ37GB",
    "amount": "1000000"
  },
  "metadata": {
    "asset": {
      "symbol": "USDC",
      "decimals": 7,
      "verified": true
    }
  },
  "dateRequested": "2024-05-08T14:34:04.446Z",
  "status": "Pending"
}

TON

TON TEP74 Jetton

Transfer Jetton.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Tep74

String

master

Required

The jetton master address

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

Sample request body

{
  "kind": "Tep74",
  "master": "EQAIZUJZxUgjovq8C6P5tRGwSsydiCtKiwRnycPnN1k4WpFo",
  "to": "EQBfYLuQwjbBd-LAZ6eNC26XmVVxEl86MQPKG981hdTSicL_",
  "amount": "1000000"
}

200 response example

{
  "id": "xfr-4qc73-2kr4s-xxxxxxxxxxxxxxxx",
  "walletId": "wa-3i0nv-fa4e7-xxxxxxxxxxxxxxxx",
  "network": "Solana",
  "requester": {
    "userId": "us-3v1ag-v6b36-xxxxxxxxxxxxxxxx",
    "tokenId": "to-7mkkj-c831n-xxxxxxxxxxxxxxxx",
    "appId": "ap-24vva-92s32-xxxxxxxxxxxxxxxx"
  },
  "requestBody": {
    "kind": "Tep74",
    "master": "EQAIZUJZxUgjovq8C6P5tRGwSsydiCtKiwRnycPnN1k4WpFo",
    "to": "EQBfYLuQwjbBd-LAZ6eNC26XmVVxEl86MQPKG981hdTSicL_",
    "amount": "1000000"
  }
  "metadata": {
    "asset": {
      "symbol": "jUSDC",
      "decimals": 6,
      "verified": true
    }
  },
  "dateRequested": "2024-06-11T13:46:55.175Z",
  "status": "Pending"
}

TRON

TRC-10

Transfer TRON's TRC-10 fungible tokens

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Trc10

String

tokenId

Required

The token ID

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

Sample request body

{
  "kind": "Trc10",
  "tokenId": "1005273",
  "to": "TADDx31pdCFfp3XrYxp6fQGbRxriYFLTrx",
  "amount": "10000"
}

TRC-20

Transfer fungible tokens that implement the TRC-20 smart contract specification.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Trc20

String

contract

Required

The smart contract address

String

to

Required

The destination address

String

amount

Required

The amount of tokens to transfer in minimum denomination

String

Sample request body

{
  "kind": "Trc20",
  "contract": "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj",
  "to": "TQJNezrbfJ3akrGgR7eM2fWyFpsKeM8wzN",
  "amount": "1000000"
}

TRC-721

Transfer non-fungible tokens that implement the TRC-721 smart contract specification.

Request body

Request body fieldsRequired/OptionalDescriptionType

kind

Required

Trc721

String

contract

Required

The smart contract address

String

to

Required

The destination address

String

tokenId

Required

The token to transfer

String

Sample request body

{
  "kind": "Trc721",
  "contract": "TKgnDMWHYmwH24REe9XnrnwcNCvtb53n8Q",
  "to": "TQJNezrbfJ3akrGgR7eM2fWyFpsKeM8wzN",
  "tokenId": "1"
}

Response Statuses

StatusDefinition

Pending

The request is pending approval due to a policy applied to the wallet

Executing

The request is approved and is in the process of being executed (note this status is only set for a short time between pending and broadcasted)

Broadcasted

The transaction has been successfully written to the mempool

Confirmed

The transaction has been confirmed on-chain by our indexing pipeline

Failed

Indicates a system failure to complete the request

Rejected

The request has been rejected by a policy approval action

Last updated