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 | Optional, IBC coins only. The source channel for the IBC transaction. This is only required if the ['chain_registry_namevalue](https://github.com/KomodoPlatform/coins/blob/14bfd0ab59118ea1048eaaffba14f3270b2ab17b/coins#L14654) is not present in your coins` file. |
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
}
Though the ibc_source_channel
is optional, the default may not always be functional. It is recommended to provide the source channel where possible.
For more information, 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
}