On this page

latest contributor to this doc

Last Edit:

@gcharang

Komodo DeFi Framework API RPC Protocol v2.0 (Dev)

Starting with version beta-2.1.3434, the Komodo DeFi Framework API supports the standardized protocol format called mmrpc 2.0.

It includes a uniform request, successful and error response formats. At the moment, only a few RPC methods support the mmrpc 2.0 protocol.

StructureTypeDescription
mmrpcstringthe string specifying the version of the Komodo DeFi Framework API RPC protocol. Must be exactly "2.0"
userpassstring (optional)your password for protected RPC methods. Skip this field if the specified method is public
methodstringthe name of the method to be invoked
paramsobject (optional)a structured value that holds the parameter values to be used during the invocation of the method. This field may be omitted if the method doesn't take arguments
idnumber (optional)the identifier is established by the client. Komodo DeFi Framework API will reply with the same value in the Response object if the id field is included and not NULL

StructureTypeDescription
mmrpcstringthe string specifying the version of the Komodo DeFi Framework API RPC protocol
resultobjectthe value of this field is determined by the method invoked on Komodo DeFi Framework API
idnumber (optional)the identifier established by the client. The same value as in the Request if it was passed

StructureTypeDescription
mmrpcstringthe string specifying the version of the Komodo DeFi Framework API RPC protocol
errorstringthe common error description
error_pathstringthe error path consisting of file names separated by a dot similar to JSON path notation
error_tracestringthe error path consisting of file and line number pairs separated by ']'
error_typestringthe string error identifier used to determine the cause of the error
error_dataobjectan object containing the error data of the corresponding error_type
idnumber (optional)the identifier established by the client. The same value as in the Request if it was passed

POST
{
  "mmrpc": "2.0",
  "userpass": "RPC_UserP@SSW0RD",
  "method": "withdraw",
  "params": {
    "coin": "KMD",
    "to": "RJTYiYeJ8eVvJ53n2YbrVmxWNNMVZjDGLh",
    "amount": "10"
  },
  "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",
      "amount": "0.1"
    },
    "coin": "DOC",
    "internal_id": ""
  },
  "id": 0
}

{
  "mmrpc": "2.0",
  "error": "The amount 0.000005 is too small",
  "error_path": "utxo_common",
  "error_trace": "utxo_common:1379] utxo_common:301]",
  "error_type": "AmountIsTooSmall",
  "error_data": {
    "amount": "0.000005"
  },
  "id": 0
}