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.
| Structure | Type | Description | 
|---|---|---|
| coin | string | The name of the coin the user desires to withdraw. | 
| to | string | Coins are withdrawn to this address. | 
| amount | string (numeric) | The amount the user desires to withdraw, ignored when max=true. | 
| memo | string | Optional. Adds a transaction memo for compatible coins (e.g. Tendermint ecosystem). | 
| max | bool | Optional. Withdraw the maximum available amount. | 
| fee | object | Optional. A standard FeeInfo object. | 
| from | object | HD wallets only. A standard WithdrawFromInfo object. | 
| ibc_source_channel | string | Tendermint IBC transfers only. The source channel for the IBC transaction. | 
| Structure | Type | Description | 
|---|---|---|
| from | array of strings | coins are withdrawn from this address; the array contains a single element, but transactions may be sent from several addresses (UTXO coins) | 
| to | array of strings | coins are withdrawn to this address; this may contain the my_address address, where change from UTXO coins is sent | 
| my_balance_change | string (numeric) | the expected balance of change in my_address after the transaction broadcasts | 
| received_by_me | string (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_me | string (numeric) | the amount of coins spent by my_address; this value differ from the request amount, as the transaction fee is added here | 
| total_amount | string (numeric) | the total amount of coins transferred | 
| fee_details | object | the fee details of the generated transaction; this value differs for utxo and ETH/ERC20 coins, check the examples for more details | 
| tx_hash | string | the hash of the generated transaction | 
| tx_hex | string | transaction bytes in hexadecimal format; use this value as input for the send_raw_transaction method | 
| coin | string | the name of the coin the user wants to withdraw | 
| kmd_rewards | object (optional) | an object containing information about accrued rewards; always exists if the coin is KMD | 
| kmd_rewards.amount | string (numeric, optional) | the amount of accrued rewards | 
| kmd_rewards.claimed_by_me | bool (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
}