On this page

latest contributor to this doc

Last Edit:

@smk762

withdraw

The withdraw method generates, signs, and returns a transaction that transfers the amount of coin to the address indicated in the to argument.

This method generates a raw transaction which should then be broadcast using send_raw_transaction.

StructureTypeDescription
coinstringThe name of the coin the user desires to withdraw.
tostringCoins are withdrawn to this address.
amountstring (numeric)The amount the user desires to withdraw, ignored when max=true.
memostringOptional. Adds a transaction memo for compatible coins (e.g. Tendermint ecosystem).
maxboolOptional. Withdraw the maximum available amount.
feeobjectOptional. A standard FeeInfo object.
fromobjectHD wallets only. A standard WithdrawFromInfo object.
ibc_source_channelstringTendermint IBC transfers only. The source channel for the IBC transaction.

StructureTypeDescription
fromarray of stringscoins are withdrawn from this address; the array contains a single element, but transactions may be sent from several addresses (UTXO coins)
toarray of stringscoins are withdrawn to this address; this may contain the my_address address, where change from UTXO coins is sent
my_balance_changestring (numeric)the expected balance of change in my_address after the transaction broadcasts
received_by_mestring (numeric)the amount of coins received by my_address after the transaction broadcasts; the value may be above zero when the transaction requires that the Komodo DeFi Framework API send change to my_address
spent_by_mestring (numeric)the amount of coins spent by my_address; this value differ from the request amount, as the transaction fee is added here
total_amountstring (numeric)the total amount of coins transferred
fee_detailsobjectthe fee details of the generated transaction; this value differs for utxo and ETH/ERC20 coins, check the examples for more details
tx_hashstringthe hash of the generated transaction
tx_hexstringtransaction bytes in hexadecimal format; use this value as input for the send_raw_transaction method
coinstringthe name of the coin the user wants to withdraw
kmd_rewardsobject (optional)an object containing information about accrued rewards; always exists if the coin is KMD
kmd_rewards.amountstring (numeric, optional)the amount of accrued rewards
kmd_rewards.claimed_by_mebool (optional)whether the rewards been claimed by me

Withdraw

POST
withdraw
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "withdraw",
  "params": {
    "coin": "KMD",
    "to": "RJTYiYeJ8eVvJ53n2YbrVmxWNNMVZjDGLh",
    "amount": "10"
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "withdraw",
  "params": {
    "coin": "MCL",
    "to": "RNBA756iaFCx2Uhya3pvCufbeyovAaknJL",
    "amount": 1.025,
    "from": {
      "derivation_path": "m/44'/141'/0'/0/0"
    }
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "userpass": "RPC_UserP@SSW0RD",
  "mmrpc": "2.0",
  "method": "withdraw",
  "params": {
    "coin": "VRSC",
    "to": "RNBA756iaFCx2Uhya3pvCufbeyovAaknJL",
    "amount": 1.025,
    "from": {
      "account_id": 0,
      "chain": "External",
      "address_id": 2
    }
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "DOC",
    "to": "R9o9xTocqr6CeEDGDH6mEYpwLoMz6jNjMW",
    "amount": "1.0",
    "fee": {
      "type": "UtxoFixed",
      "amount": "0.1"
    }
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "DOC",
    "to": "R9o9xTocqr6CeEDGDH6mEYpwLoMz6jNjMW",
    "amount": "1.0",
    "fee": {
      "type": "UtxoPerKbyte",
      "amount": "1"
    }
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "ETH",
    "to": "0xbab36286672fbdc7b250804bf6d14be0df69fa28",
    "amount": 10
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "COIN_NAME",
    "to": "RECIPIENT_ADDRESS",
    "amount": "AMOUNT",
    "fee": {
      "type": "EthGas",
      "gas_price": "3.5",
      "gas": 55000
    }
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "ETH",
    "to": "0xbab36286672fbdc7b250804bf6d14be0df69fa28",
    "max": true
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "QRC20",
    "to": "qHmJ3KA6ZAjR9wGjpFASn4gtUSeFAqdZgs",
    "amount": 10
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "QRC20",
    "to": "qHmJ3KA6ZAjR9wGjpFASn4gtUSeFAqdZgs",
    "amount": 10,
    "fee": {
      "type": "Qrc20Gas",
      "gas_limit": 250000,
      "gas_price": 40
    }
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "IRIS",
    "to": "iaa16drqvl3u8sukfsu4lm3qsk28jr3fahja9vsv6k",
    "amount": 13,
    "memo": "It was a bright cold day in April, and the clocks were striking thirteen.",
    "fee": {
      "type": "CosmosGas",
      "gas_price": 0.05,
      "gas_limit": 150000
    }
  },
  "id": 0
}

Using the Cosmos Ecosystem IBC protocol, you can withdraw coins from one chain to another. This example shows a withdrawal from Cosmos to Osmosis.

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "ATOM",
    "to": "osmo16drqvl3u8sukfsu4lm3qsk28jr3fahjac4rdw4",
    "amount": 0.1,
    "memo": "In the blackest of your moments, wait with no fear.",
    "ibc_source_channel": "channel-141",
    "fee": {
      "type": "CosmosGas",
      "gas_price": 0.05,
      "gas_limit": 150000
    }
  },
  "id": 0
}

The ibc_source_channel value above is for demonstration only. For more information regarding how to set a valid value, see our guide to finding the right IBC channel.

{
    "mmrpc": "2.0",
    "error": "Error parsing request: unknown variant `Tendermint`, expected one of `UtxoFixed`, `UtxoPerKbyte`, `EthGas`, `Qrc20Gas`, `CosmosGas`",
    "error_path": "dispatcher",
    "error_trace": "dispatcher:109]",
    "error_type": "InvalidRequest",
    "error_data": "unknown variant `Tendermint`, expected one of `UtxoFixed`, `UtxoPerKbyte`, `EthGas`, `Qrc20Gas`, `CosmosGas`",
    "id": 0
}

{
    "mmrpc": "2.0",
    "error": "Error parsing request: invalid type: string \"0.1\", expected f64",
    "error_path": "dispatcher",
    "error_trace": "dispatcher:109]",
    "error_type": "InvalidRequest",
    "error_data": "invalid type: string \"0.1\", expected f64",
    "id": 0
}

{
  "mmrpc": "2.0",
  "error": "Invalid fee policy: Expected 'UtxoFixed' or 'UtxoPerKbyte' fee types, found EthGas",
  "error_path": "utxo_common",
  "error_trace": "utxo_common:1371]",
  "error_type": "InvalidFeePolicy",
  "error_data": "Expected 'UtxoFixed' or 'UtxoPerKbyte' fee types, found EthGas",
  "id": 0
}