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_channelintegerTendermint IBC transfers only. The source channel for the IBC transaction.
broadcastboolOptional, defaults to false. When false, signed transaction hex must be broadcast manually with send_raw_transaction. Must be set to true for Metamask managed transactions.
expiration_secondsintegerOptional. Transaction expiration window in seconds. Currently only used by TRON (default 60s). Sets how long the signed transaction remains valid for broadcast.
fee_methodstringTRON only. Optional. Selects the fee rail: native (default — pay the TRX bandwidth/energy fee) or gasless (route a TRC20 transfer through GasFree, paying the fee in the token). Requires a tron_gasless_provider configured at activation.
gaslessobjectTRON only. Optional. A standard GaslessWithdrawOptions object constraining the gasless transfer (max fee, deadline, native fallback). Only valid together with fee_method: "gasless".

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, ETH/ERC20, and TRON/TRC20 coins. See WithdrawFee for details
tx_hashstringthe hash of the generated transaction
tx_hexstringtransaction bytes in hexadecimal format; use this value as input for send_raw_transaction
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
}

{
    "mmrpc": "2.0",
    "result": {
        "tx_hex": "0400008085202f890152db2e550ca2d69eed487c95b6089b0f12e7a8937a89b8754c38a8c361560fca000000006a47304402200220239769f48c8bc96fbbcb66bcc0483f6234cb48ab823e13f0b791cdd501b902204f8b2dd875609e35f1677e39e403a18e9d2d98cd9916f51a62ac1edfc350cd47012102b3c168ed4acd96594288cee3114c77de51b6afe1ab6a866887a13a96ee80f33cffffffff0290a00b00000000001976a9145d904d4531f4c74f760a14ef057c866a06705dda88ac37040700000000001976a9145d904d4531f4c74f760a14ef057c866a06705dda88ac0609ed67000000000000000000000000000000",
        "tx_hash": "aa456a6288292c4980637083871a6a4a1fb0a2242f6a30ae974069311691f37c",
        "from": [
            "RHound8PpyhVLfi56dC7MK3ZvvkAmB3bvQ"
        ],
        "to": [
            "RJTYiYeJ8eVvJ53n2YbrVmxWNNMVZjDGLh"
        ],
        "total_amount": "10",
        "spent_by_me": "10",
        "received_by_me": "0",
        "my_balance_change": "-10",
        "block_height": 0,
        "timestamp": 1743589636,
        "fee_details": {
            "type": "Utxo",
            "coin": "KMD",
            "amount": "0.00001"
        },
        "coin": "KMD",
        "internal_id": "",
        "kmd_rewards": {
            "amount": "0",
            "claimed_by_me": true
        },
        "transaction_type": "StandardTransfer",
        "memo": null
    },
    "id": null
}

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
}

# TODO: Add response

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
}

# TODO: Add response

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
}

{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "0400008085202f8901ef25b1b7417fe7693097918ff90e90bba1351fff1f3a24cb51a9b45c5636e57e010000006b483045022100b05c870fcd149513d07b156e150a22e3e47fab4bb4776b5c2c1b9fc034a80b8f022038b1bf5b6dad923e4fb1c96e2c7345765ff09984de12bbb40b999b88b628c0f9012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff0200e1f505000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ac8cbaae5f010000001976a91405aab5342166f8594baf17a7d9bef5d56744332788ace87a5e5d000000000000000000000000000000",
    "tx_hash": "1ab3bc9308695960bc728fa427ac00d1812c4ae89aaa714c7618cb96d111be58",
    "from": ["R9o9xTocqr6CeEDGDH6mEYpwLoMz6jNjMW"],
    "to": ["R9o9xTocqr6CeEDGDH6mEYpwLoMz6jNjMW"],
    "total_amount": "60.10253836",
    "spent_by_me": "60.10253836",
    "received_by_me": "60.00253836",
    "my_balance_change": "-0.1",
    "block_height": 0,
    "timestamp": 1566472936,
    "fee_details": {
      "type": "Utxo",
      "coin": "DOC",
      "amount": "0.1"
    },
    "coin": "DOC",
    "internal_id": ""
  },
  "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
}

{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "0400008085202f890258be11d196cb18764c71aa9ae84a2c81d100ac27a48f72bc6059690893bcb31a000000006b483045022100ef11280e981be280ca5d24c947842ca6a8689d992b73e3a7eb9ff21070b0442b02203e458a2bbb1f2bf8448fc47c51485015904a5271bb17e14be5afa6625d67b1e8012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff58be11d196cb18764c71aa9ae84a2c81d100ac27a48f72bc6059690893bcb31a010000006b483045022100daaa10b09e7abf9d4f596fc5ac1f2542b8ecfab9bb9f2b02201644944ddc0280022067aa1b91ec821aa48f1d06d34cd26fb69a9f27d59d5eecdd451006940d9e83db012102031d4256c4bc9f99ac88bf3dba21773132281f65f9bf23a59928bce08961e2f3ffffffff0200e1f505000000001976a91405aab5342166f8594baf17a7d9bef5d56744332788acf31c655d010000001976a91405aab5342166f8594baf17a7d9bef5d56744332788accd7c5e5d000000000000000000000000000000",
    "tx_hash": "fd115190feec8c0c14df2696969295c59c674886344e5072d64000379101b78c",
    "from": ["R9o9xTocqr6CeEDGDH6mEYpwLoMz6jNjMW"],
    "to": ["R9o9xTocqr6CeEDGDH6mEYpwLoMz6jNjMW"],
    "total_amount": "60.00253836",
    "spent_by_me": "60.00253836",
    "received_by_me": "59.61874931",
    "my_balance_change": "-0.38378905",
    "block_height": 0,
    "timestamp": 1566473421,
    "fee_details": {
      "type": "Utxo",
      "coin": "DOC",
      "amount": "0.38378905"
    },
    "coin": "DOC",
    "internal_id": ""
  },
  "id": 0
}

Withdraw

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

{
  "mmrpc": "2.0",
  "result": {
    "block_height": 0,
    "coin": "ETH",
    "fee_details": {
      "type": "Eth",
      "coin": "ETH",
      "gas": 21000,
      "gas_price": "0.000000001",
      "total_fee": "0.000021"
    },
    "from": ["0xbab36286672fbdc7b250804bf6d14be0df69fa29"],
    "my_balance_change": "-10.000021",
    "received_by_me": "0",
    "spent_by_me": "10.000021",
    "to": ["0xbab36286672fbdc7b250804bf6d14be0df69fa28"],
    "total_amount": "10.000021",
    "tx_hash": "8fbc5538679e4c4b78f8b9db0faf9bf78d02410006e8823faadba8e8ae721d60",
    "tx_hex": "f86d820a59843b9aca0082520894bab36286672fbdc7b250804bf6d14be0df69fa28888ac7230489e80000801ba0fee87414a3b40d58043a1ae143f7a75d7f47a24e872b638281c448891fd69452a05b0efcaed9dee1b6d182e3215d91af317d53a627404b0efc5102cfe714c93a28"
  },
  "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
}

{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "f86d820b2884d09dc30082d6d894bab36286672fbdc7b250804bf6d14be0df69fa29888ac7230489e80000801ca0ef0167b0e53ed50d87b6fd630925f2bce6ee72e9b5fdb51c6499a7caaecaed96a062e5cb954e503ff83f2d6ce082649fdcdf8a77c8d37c7d26d46d3f736b228d10",
    "tx_hash": "a26c4dcacf63c04e385dd973ca7e7ca1465a3b904a0893bcadb7e37681d38c95",
    "from": ["0xbAB36286672fbdc7B250804bf6D14Be0dF69fa29"],
    "to": ["0xbAB36286672fbdc7B250804bf6D14Be0dF69fa29"],
    "total_amount": "10",
    "spent_by_me": "10.0001925",
    "received_by_me": "10",
    "my_balance_change": "-0.0001925",
    "block_height": 0,
    "timestamp": 1566474670,
    "fee_details": {
      "type": "Eth",
      "coin": "ETH",
      "gas": 55000,
      "gas_price": "0.0000000035",
      "total_fee": "0.0001925"
    },
    "coin": "ETH",
    "internal_id": ""
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "ETH",
    "to": "0xbab36286672fbdc7b250804bf6d14be0df69fa28",
    "max": true
  },
  "id": 0
}
{
  "mmrpc": "2.0",
  "result": {
    "block_height": 0,
    "coin": "ETH",
    "fee_details": {
      "type": "Eth",
      "coin": "ETH",
      "gas": 21000,
      "gas_price": "0.000000001",
      "total_fee": "0.000021"
    },
    "from": ["0xbab36286672fbdc7b250804bf6d14be0df69fa29"],
    "my_balance_change": "-10.000021",
    "received_by_me": "0",
    "spent_by_me": "10.000021",
    "to": ["0xbab36286672fbdc7b250804bf6d14be0df69fa28"],
    "total_amount": "10.000021",
    "tx_hash": "8fbc5538679e4c4b78f8b9db0faf9bf78d02410006e8823faadba8e8ae721d60",
    "tx_hex": "f86d820a59843b9aca0082520894bab36286672fbdc7b250804bf6d14be0df69fa28888ac7230489e80000801ba0fee87414a3b40d58043a1ae143f7a75d7f47a24e872b638281c448891fd69452a05b0efcaed9dee1b6d182e3215d91af317d53a627404b0efc5102cfe714c93a28"
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "QRC20",
    "to": "qHmJ3KA6ZAjR9wGjpFASn4gtUSeFAqdZgs",
    "amount": 10
  },
  "id": 0
}
{
  "mmrpc": "2.0",
  "result": {
    "block_height": 0,
    "coin": "QRC20",
    "timestamp": 1608725061,
    "fee_details": {
      "type": "Qrc20",
      "coin": "tQTUM",
      "miner_fee": "0.00000447",
      "gas_limit": 100000,
      "gas_price": 40,
      "total_gas_fee": "0.04"
    },
    "from": ["qXxsj5RtciAby9T7m98AgAATL4zTi4UwDG"],
    "my_balance_change": "-10",
    "received_by_me": "0",
    "spent_by_me": "10",
    "to": ["qHmJ3KA6ZAjR9wGjpFASn4gtUSeFAqdZgs"],
    "total_amount": "10",
    "tx_hash": "8fbc5538679e4c4b78f8b9db0faf9bf78d02410006e8823faadba8e8ae721d60",
    "tx_hex": "f86d820a59843b9aca0082520894bab36286672fbdc7b250804bf6d14be0df69fa28888ac7230489e80000801ba0fee87414a3b40d58043a1ae143f7a75d7f47a24e872b638281c448891fd69452a05b0efcaed9dee1b6d182e3215d91af317d53a627404b0efc5102cfe714c93a28"
  },
  "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
}
{
  "mmrpc": "2.0",
  "result": {
    "block_height": 0,
    "coin": "QRC20",
    "timestamp": 1608725061,
    "fee_details": {
      "type": "Qrc20",
      "coin": "tQTUM",
      "miner_fee": "0.00000447",
      "gas_limit": 250000,
      "gas_price": 40,
      "total_gas_fee": "0.1"
    },
    "from": ["qXxsj5RtciAby9T7m98AgAATL4zTi4UwDG"],
    "my_balance_change": "-10",
    "received_by_me": "0",
    "spent_by_me": "10",
    "to": ["qHmJ3KA6ZAjR9wGjpFASn4gtUSeFAqdZgs"],
    "total_amount": "10",
    "tx_hash": "8fbc5538679e4c4b78f8b9db0faf9bf78d02410006e8823faadba8e8ae721d60",
    "tx_hex": "f86d820a59843b9aca0082520894bab36286672fbdc7b250804bf6d14be0df69fa28888ac7230489e80000801ba0fee87414a3b40d58043a1ae143f7a75d7f47a24e872b638281c448891fd69452a05b0efcaed9dee1b6d182e3215d91af317d53a627404b0efc5102cfe714c93a28"
  },
  "id": 0
}

Metamask doesn't allow eth_signTransaction for security reasons, so we can only use eth_sendTransaction for processing withdrawals. As a result, when submitting a withdrawal via metamask it will be rejected unless "broadcast": true.

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "MATIC",
    "to": "0xbAB36286672fbdc7B250804bf6D14Be0dF69fa29",
    "amount": 0.1,
    "broadcast": true
  },
  "id": 0
}
{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "0ade010a8b010a1c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e64126b0a2a6961613136647271766c33753873756b667375346c6d3371736b32386a72336661686a6139767376366b122a6961613136647271766c33753873756b667375346c6d3371736b32386a72336661686a6139767376366b1a110a05756972697312083133303030303030124949742077617320612062726967687420636f6c642064617920696e20417072696c2c20616e642074686520636c6f636b73207765726520737472696b696e6720746869727465656e2e188f85b50812680a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a2103d8064eece4fa5c0f8dc0267f68cee9bdd527f9e88f3594a323428718c391ecc212040a020801181d12140a0e0a0575697269731205333835353310a08d061a40a9ac8c4112d7d7252062e289d222a438258a7c49c6657fdcbf831d62fc5eb2d05af46d6b86881335b3bc7ca98b2bfc3ef02ec5adf6768de9a778b282f9cc868e",
    "tx_hash": "E00982A2A8442D7140916A34E29E287A0B1CBB4B38940372D1966BA7ACDE5BD6",
    "from": ["iaa16drqvl3u8sukfsu4lm3qsk28jr3fahja9vsv6k"],
    "to": ["iaa16drqvl3u8sukfsu4lm3qsk28jr3fahja9vsv6k"],
    "total_amount": "13.038553",
    "spent_by_me": "13.038553",
    "received_by_me": "13",
    "my_balance_change": "-0.038553",
    "block_height": 0,
    "timestamp": 0,
    "fee_details": {
      "type": "Tendermint",
      "coin": "IRIS",
      "amount": "0.038553",
      "gas_limit": 100000
    },
    "coin": "IRIS",
    "internal_id": "e00982a2a8442d7140916a34e29e287a0b1cbb4b38940372d1966ba7acde5bd6",
    "transaction_type": "StandardTransfer",
    "memo": "It was a bright cold day in April, and the clocks were striking thirteen."
  },
  "id": 0
}

You can see the memo is included on the block explorer

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
}
{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "0ade010a8b010a1c2f636f736d6f732e62616e6b2e763162657461312e4d736753656e64126b0a2a6961613136647271766c33753873756b667375346c6d3371736b32386a72336661686a6139767376366b122a6961613136647271766c33753873756b667375346c6d3371736b32386a72336661686a6139767376366b1a110a05756972697312083133303030303030124949742077617320612062726967687420636f6c642064617920696e20417072696c2c20616e642074686520636c6f636b73207765726520737472696b696e6720746869727465656e2e188f85b50812680a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a2103d8064eece4fa5c0f8dc0267f68cee9bdd527f9e88f3594a323428718c391ecc212040a020801181d12140a0e0a0575697269731205333835353310a08d061a40a9ac8c4112d7d7252062e289d222a438258a7c49c6657fdcbf831d62fc5eb2d05af46d6b86881335b3bc7ca98b2bfc3ef02ec5adf6768de9a778b282f9cc868e",
    "tx_hash": "E00982A2A8442D7140916A34E29E287A0B1CBB4B38940372D1966BA7ACDE5BD6",
    "from": ["iaa16drqvl3u8sukfsu4lm3qsk28jr3fahja9vsv6k"],
    "to": ["iaa16drqvl3u8sukfsu4lm3qsk28jr3fahja9vsv6k"],
    "total_amount": "13.038553",
    "spent_by_me": "13.038553",
    "received_by_me": "13",
    "my_balance_change": "-0.038553",
    "block_height": 0,
    "timestamp": 0,
    "fee_details": {
      "type": "Tendermint",
      "coin": "IRIS",
      "amount": "0.038553",
      "gas_limit": 100000
    },
    "coin": "IRIS",
    "internal_id": "e00982a2a8442d7140916a34e29e287a0b1cbb4b38940372d1966ba7acde5bd6",
    "transaction_type": "StandardTransfer",
    "memo": "It was a bright cold day in April, and the clocks were striking thirteen."
  },
  "id": 0
}

You can see the memo is included on the block explorer

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": 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",
  "result": {
      "tx_hex": "0af9010abc010a292f6962632e6170706c69636174696f6e732e7472616e736665722e76312e4d73675472616e73666572128e010a087472616e73666572120b6368616e6e656c2d3134311a0f0a057561746f6d1206313030303030222d636f736d6f733136647271766c33753873756b667375346c6d3371736b32386a72336661686a617377736163382a2b6f736d6f3136647271766c33753873756b667375346c6d3371736b32386a72336661686a6163347264773438a6c5b9a089f29efa171233496e2074686520626c61636b657374206f6620796f7572206d6f6d656e74732c20776169742077697468206e6f20666561722e188df8c70a12680a500a460a1f2f636f736d6f732e63727970746f2e736563703235366b312e5075624b657912230a2103d8064eece4fa5c0f8dc0267f68cee9bdd527f9e88f3594a323428718c391ecc212040a020801180b12140a0e0a057561746f6d1205313733353910e0c65b1a40042c4fa45d77405ee94e737a000b146f5019137d5a2d3275849c9ad66dd8ef1d0f087fb584f34b1ebcf7989e41bc0675e96c83f0eec4ffe355e078b6615d7a72",
      "tx_hash": "06174E488B7BBC35180E841F2D170327BB7DE0A291CA69050D81F82A7CF103CB",
      "from": [
          "cosmos16drqvl3u8sukfsu4lm3qsk28jr3fahjaswsac8"
      ],
      "to": [
          "osmo16drqvl3u8sukfsu4lm3qsk28jr3fahjac4rdw4"
      ],
      "total_amount": "0.1173590000000000",
      "spent_by_me": "0.1173590000000000",
      "received_by_me": "0",
      "my_balance_change": "-0.1173590000000000",
      "block_height": 0,
      "timestamp": 0,
      "fee_details": {
          "type": "Tendermint",
          "coin": "ATOM",
          "amount": "0.017359",
          "gas_limit": 1500000
      },
      "coin": "ATOM",
      "internal_id": "06174e488b7bbc35180e841f2d170327bb7de0a291ca69050d81f82a7cf103cb",
      "transaction_type": "TendermintIBCTransfer",
      "memo": "In the blackest of your moments, wait with no fear."
  },
  "id": null
}

You can see the memo is included on the block explorer

TRON fees are auto-estimated. Do not pass a fee object — EVM gas options are not supported for TRON withdrawals.

Withdraw

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

{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "0a02a4e22208b9de53a1fe5e892240...",
    "tx_hash": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
    "from": ["TDcxD6E5wTzvqCJd4RfkGfw9NkCBdvYcV9"],
    "to": ["TW9RqU6bTJnM4quyRbvTwm3xfSHgk718qU"],
    "total_amount": "10",
    "spent_by_me": "10.267",
    "received_by_me": "0",
    "my_balance_change": "-10.267",
    "block_height": 0,
    "timestamp": 1738799040,
    "fee_details": {
      "type": "Tron",
      "coin": "TRX",
      "bandwidth_used": 267,
      "energy_used": 0,
      "bandwidth_fee": "0.267000",
      "energy_fee": "0.000000",
      "total_fee": "0.267000"
    },
    "coin": "TRX",
    "internal_id": "",
    "transaction_type": "StandardTransfer",
    "memo": null
  },
  "id": 0
}

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "USDT-TRC20",
    "to": "TW9RqU6bTJnM4quyRbvTwm3xfSHgk718qU",
    "amount": "5"
  },
  "id": 0
}

{
  "mmrpc": "2.0",
  "result": {
    "tx_hex": "0a02b3f12208c4de89a2bf7e312240...",
    "tx_hash": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3",
    "from": ["TDcxD6E5wTzvqCJd4RfkGfw9NkCBdvYcV9"],
    "to": ["TW9RqU6bTJnM4quyRbvTwm3xfSHgk718qU"],
    "total_amount": "5",
    "spent_by_me": "5",
    "received_by_me": "0",
    "my_balance_change": "-5",
    "block_height": 0,
    "timestamp": 1738799040,
    "fee_details": {
      "type": "Tron",
      "coin": "TRX",
      "bandwidth_used": 345,
      "energy_used": 29650,
      "bandwidth_fee": "0.345000",
      "energy_fee": "12.453000",
      "total_fee": "12.798000"
    },
    "coin": "USDT-TRC20",
    "internal_id": "",
    "transaction_type": "StandardTransfer",
    "memo": null
  },
  "id": 0
}

For TRC20 token withdrawals, the fee_details.coin is always TRX because fees are paid in the platform coin. The spent_by_me and my_balance_change reflect the token amount only — the TRX fee is deducted from the TRX balance separately.

When fee_method is gasless, the TRC20 token is transferred through a GasFree provider and the fee is paid in the token itself — no TRX is required. The platform coin must have been activated with a tron_gasless_provider.

A gasless withdrawal does not produce a broadcastable tx_hex. Instead it returns a signed GasFree authorization (the relay_type: "tron_gasfree" payload) together with a fee_details object of type TronGasless. The fee_details.trace_id is null at this stage — the transfer has not yet been submitted.

Withdraw

POST
withdraw
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "USDT-TRC20",
    "to": "TJM1BE5wq1VdHh3gwjUeyaVkvZp9DVYCfC",
    "amount": "5",
    "fee_method": "gasless",
    "gasless": {
      "max_fee": "5",
      "fallback_to_native": false
    }
  },
  "id": 0
}

{
  "mmrpc": "2.0",
  "result": {
    "relay_type": "tron_gasfree",
    "chain_id": "728126428",
    "coin": "USDT-TRC20",
    "from_address": "TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC",
    "gasfree_address": "TCtSt8fCkZcVdrGpaVHUr6P8EmdjysswMF",
    "verifying_contract": "THQGuFzL87ZqhxkgqYEryRAd7gqFqL5rdc",
    "signed_authorization": {
      "token": "TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf",
      "service_provider": "TKtWbdzEq5ss9vTS9kwRhBp5mXmBfBns3E",
      "user": "TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC",
      "receiver": "TJM1BE5wq1VdHh3gwjUeyaVkvZp9DVYCfC",
      "value": "5000000",
      "max_fee": "5000000",
      "deadline": "1742000000",
      "version": "1",
      "nonce": "9",
      "sig": "1c8f...e01b"
    },
    "created_at": "2026-04-23T20:47:34Z",
    "from": ["TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC"],
    "to": ["TJM1BE5wq1VdHh3gwjUeyaVkvZp9DVYCfC"],
    "total_amount": "5",
    "spent_by_me": "5",
    "received_by_me": "0",
    "my_balance_change": "-5",
    "block_height": 0,
    "timestamp": 0,
    "fee_details": {
      "type": "TronGasless",
      "coin": "USDT-TRC20",
      "fee_method": "gasless",
      "provider_name": "gasfree",
      "gasfree_address": "TCtSt8fCkZcVdrGpaVHUr6P8EmdjysswMF",
      "transfer_fee": "2.000000",
      "total_token_fee": "2.000000",
      "signed_max_fee": "5.000000",
      "trace_id": null
    },
    "internal_id": "",
    "transaction_type": "StandardTransfer",
    "memo": null
  },
  "id": 0
}

To execute the transfer, submit the signed authorization to the provider with send_raw_transaction, passing the payload as a tx_json object (note the relay_type: "tron_gasfree" field). The submit response returns the trace_id and initial state:

POST
send_raw_transaction
{
  "userpass": "RPC_UserP@SSW0RD",
  "method": "send_raw_transaction",
  "coin": "USDT-TRC20",
  "tx_json": {
    "relay_type": "tron_gasfree",
    "chain_id": "728126428",
    "coin": "USDT-TRC20",
    "from_address": "TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC",
    "gasfree_address": "TCtSt8fCkZcVdrGpaVHUr6P8EmdjysswMF",
    "verifying_contract": "THQGuFzL87ZqhxkgqYEryRAd7gqFqL5rdc",
    "signed_authorization": {
      "token": "TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf",
      "service_provider": "TKtWbdzEq5ss9vTS9kwRhBp5mXmBfBns3E",
      "user": "TMVQGm1qAQYVdetCeGRRkTWYYrLXuHK2HC",
      "receiver": "TJM1BE5wq1VdHh3gwjUeyaVkvZp9DVYCfC",
      "value": "5000000",
      "max_fee": "5000000",
      "deadline": "1742000000",
      "version": "1",
      "nonce": "9",
      "sig": "1c8f...e01b"
    },
    "created_at": "2026-04-23T20:47:34Z"
  }
}

{
  "relay_type": "tron_gasfree",
  "trace_id": "6c3ff67e-0bf4-4c09-91ca-0c7c254b01a0",
  "state": "WAITING"
}

The fee is paid in the token, so spent_by_me reflects only the transfer amount; the transfer_fee (plus activation_fee if the GasFree address must be activated on its first transfer) is deducted from the token balance by the provider. Track the submitted transfer with gasless::trace_status, or subscribe to live updates via stream::gasless_trace::enable, using the returned trace_id.

{
    "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
}