{
  "openrpc": "1.0.0-rc1",
  "info": {
    "title": "Monero OpenRPC Specification",
    "version": "0.4.0",
    "description": "Machine-readable JSON-RPC interface description for the Monero daemon and wallet RPC, produced for the bounties.monero.social 'Monero OpenRPC Specification' bounty (#104). Covers the most-used methods with parameter/result schemas and examples. Amounts are atomic units (piconero); 1 XMR = 10^12 piconero. Mainnet by default. v0.4 adds 22 more daemon/wallet methods (see CHANGELOG).",
    "license": {
      "name": "MIT"
    },
    "contact": {
      "name": "Clara Oswald (XMR Income Engine)",
      "url": "https://x0.at/6XWB.html"
    }
  },
  "servers": [
    {
      "name": "monero-daemon-mainnet",
      "url": "http://localhost:18081/json_rpc",
      "description": "monerod JSON-RPC"
    },
    {
      "name": "monero-wallet-mainnet",
      "url": "http://localhost:28083/json_rpc",
      "description": "monero-wallet-rpc JSON-RPC"
    }
  ],
  "methods": [
    {
      "name": "get_height",
      "summary": "Returns the current blockchain height (daemon).",
      "params": [],
      "result": {
        "name": "height",
        "schema": {
          "type": "integer",
          "minimum": 0
        }
      },
      "examples": [
        {
          "name": "get_height",
          "params": [],
          "result": {
            "height": 3750116
          }
        }
      ]
    },
    {
      "name": "get_info",
      "summary": "Network and daemon sync state.",
      "params": [],
      "result": {
        "name": "info",
        "schema": {
          "type": "object",
          "properties": {
            "height": {
              "type": "integer"
            },
            "target_height": {
              "type": "integer"
            },
            "difficulty": {
              "type": "integer"
            },
            "tx_count": {
              "type": "integer"
            },
            "tx_pool_size": {
              "type": "integer"
            },
            "incoming_connections_count": {
              "type": "integer"
            },
            "outgoing_connections_count": {
              "type": "integer"
            },
            "top_block_hash": {
              "type": "string"
            },
            "nettype": {
              "type": "string",
              "enum": [
                "mainnet",
                "testnet",
                "stagenet"
              ]
            },
            "timestamp_utc": {
              "type": "integer"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_info",
          "params": [],
          "result": {
            "height": 3750116,
            "nettype": "mainnet"
          }
        }
      ]
    },
    {
      "name": "get_block",
      "summary": "Fetch a block by height or hash.",
      "params": [
        {
          "name": "height",
          "description": "Block height.",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "hash",
          "description": "Block hash.",
          "required": false,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "block",
        "schema": {
          "type": "object",
          "properties": {
            "blob": {
              "type": "string"
            },
            "miner_tx_hash": {
              "type": "string"
            },
            "block_header": {
              "type": "object"
            },
            "json": {
              "type": "object"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_block_by_height",
          "params": [
            {
              "height": 1
            }
          ],
          "result": {
            "blob": "0102...",
            "block_header": {
              "height": 1
            }
          }
        }
      ]
    },
    {
      "name": "get_transactions",
      "summary": "Fetch one or more transactions by hash.",
      "params": [
        {
          "name": "txs_hashes",
          "description": "List of transaction hashes.",
          "required": true,
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        {
          "name": "decode_as_json",
          "description": "Return decoded JSON in addition to hex.",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        }
      ],
      "result": {
        "name": "txs",
        "schema": {
          "type": "object",
          "properties": {
            "txs_as_hex": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "txs_as_json": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "missed_tx": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_tx",
          "params": [
            {
              "txs_hashes": [
                "d6e9..."
              ],
              "decode_as_json": true
            }
          ],
          "result": {
            "txs_as_hex": [
              "0200..."
            ]
          }
        }
      ]
    },
    {
      "name": "send_raw_transaction",
      "summary": "Submit a raw, already-signed transaction hex to the network.",
      "params": [
        {
          "name": "tx_as_hex",
          "description": "Hex-encoded signed transaction.",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "status",
        "schema": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            },
            "double_spend": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "fee_too_low": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "not_relayed": {
              "type": [
                "boolean",
                "null"
              ]
            },
            "reason": {
              "type": [
                "string",
                "null"
              ]
            },
            "credits": {
              "type": [
                "integer",
                "null"
              ]
            }
          }
        }
      },
      "examples": [
        {
          "name": "send_raw",
          "params": [
            {
              "tx_as_hex": "0200..."
            }
          ],
          "result": {
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_balance",
      "summary": "Wallet: total spendable + unspent balance for an account.",
      "params": [
        {
          "name": "account_index",
          "description": "Account index (default 0).",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "address_indices",
          "description": "Subaddress indices to break down.",
          "required": false,
          "schema": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      ],
      "result": {
        "name": "balance",
        "schema": {
          "type": "object",
          "properties": {
            "balance": {
              "type": "integer",
              "description": "Atomic units (piconero). 1 XMR = 1e12."
            },
            "unlocked_balance": {
              "type": "integer"
            },
            "multisig_import_needed": {
              "type": "boolean"
            },
            "per_subaddress": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_balance",
          "params": [
            {
              "account_index": 0
            }
          ],
          "result": {
            "balance": 1000000000000,
            "unlocked_balance": 1000000000000
          }
        }
      ]
    },
    {
      "name": "get_address",
      "summary": "Wallet: primary address (or list of subaddresses) for an account.",
      "params": [
        {
          "name": "account_index",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "address_index",
          "description": "Subaddress indices to return.",
          "required": false,
          "schema": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      ],
      "result": {
        "name": "address",
        "schema": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            },
            "addresses": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "index": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_address",
          "params": [
            {
              "account_index": 0
            }
          ],
          "result": {
            "address": "45bov..."
          }
        }
      ]
    },
    {
      "name": "create_address",
      "summary": "Wallet: generate a new subaddress in an account.",
      "params": [
        {
          "name": "account_index",
          "required": true,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "label",
          "required": false,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "address",
        "schema": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            },
            "address_index": {
              "type": "integer"
            }
          }
        }
      },
      "examples": [
        {
          "name": "create_address",
          "params": [
            {
              "account_index": 0,
              "label": "customer-7"
            }
          ],
          "result": {
            "address": "8A...",
            "address_index": 7
          }
        }
      ]
    },
    {
      "name": "make_integrated_address",
      "summary": "Wallet: build an integrated address from a payment ID + optional standard address.",
      "params": [
        {
          "name": "payment_id",
          "description": "16-char (64 hex) or 8-char short payment id.",
          "required": false,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "standard_address",
          "description": "Base address; defaults to the wallet's primary.",
          "required": false,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "integrated",
        "schema": {
          "type": "object",
          "properties": {
            "integrated_address": {
              "type": "string"
            },
            "payment_id": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "make_integrated",
          "params": [
            {
              "payment_id": "0123456789abcdef"
            }
          ],
          "result": {
            "integrated_address": "4B...",
            "payment_id": "0123456789abcdef"
          }
        }
      ]
    },
    {
      "name": "transfer",
      "summary": "Wallet: send XMR to one or more destinations (default ring size applied).",
      "params": [
        {
          "name": "destinations",
          "required": true,
          "schema": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "integer",
                  "description": "Atomic units (piconero)."
                },
                "address": {
                  "type": "string"
                }
              },
              "required": [
                "amount",
                "address"
              ]
            }
          }
        },
        {
          "name": "account_index",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "subaddr_indices",
          "required": false,
          "schema": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        },
        {
          "name": "priority",
          "required": false,
          "schema": {
            "type": "string",
            "enum": [
              "default",
              "unimportant",
              "normal",
              "elevated",
              "priority"
            ]
          }
        },
        {
          "name": "unlock_time",
          "required": false,
          "schema": {
            "type": "integer"
          }
        },
        {
          "name": "payment_id",
          "required": false,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "tx_hash": {
              "type": "string"
            },
            "tx_key": {
              "type": "string"
            },
            "amount": {
              "type": "integer"
            },
            "fee": {
              "type": "integer"
            },
            "tx_blob": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "transfer",
          "params": [
            {
              "destinations": [
                {
                  "amount": 1000000000000,
                  "address": "45bov..."
                }
              ]
            }
          ],
          "result": {
            "tx_hash": "d6e9...",
            "fee": 0
          }
        }
      ]
    },
    {
      "name": "transfer_split",
      "summary": "Wallet: same as transfer but returns a list (one tx per destination when needed).",
      "params": [
        {
          "name": "destinations",
          "required": true,
          "schema": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "integer"
                },
                "address": {
                  "type": "string"
                }
              },
              "required": [
                "amount",
                "address"
              ]
            }
          }
        },
        {
          "name": "account_index",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "priority",
          "required": false,
          "schema": {
            "type": "string",
            "enum": [
              "default",
              "unimportant",
              "normal",
              "elevated",
              "priority"
            ]
          }
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "tx_hash_list": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "amount_list": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            },
            "fee_list": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          }
        }
      },
      "examples": [
        {
          "name": "transfer_split",
          "params": [
            {
              "destinations": [
                {
                  "amount": 1000000,
                  "address": "45bov..."
                }
              ]
            }
          ],
          "result": {
            "tx_hash_list": [
              "d6e9..."
            ]
          }
        }
      ]
    },
    {
      "name": "get_transfers",
      "summary": "Wallet: list incoming/outgoing/pending transfers, optionally filtered.",
      "params": [
        {
          "name": "in",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "out",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "pending",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "failed",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "account_index",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "subaddr_indices",
          "required": false,
          "schema": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      ],
      "result": {
        "name": "transfers",
        "schema": {
          "type": "object",
          "properties": {
            "in": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "out": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "pending": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_transfers",
          "params": [
            {
              "in": true,
              "out": true
            }
          ],
          "result": {
            "in": [
              {
                "amount": 1000000000000,
                "height": 3750116
              }
            ]
          }
        }
      ]
    },
    {
      "name": "get_payments",
      "summary": "Wallet: list incoming payments matching a payment ID (for integrated-address reconciliation).",
      "params": [
        {
          "name": "payment_id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "payments",
        "schema": {
          "type": "object",
          "properties": {
            "payments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "integer"
                  },
                  "block_height": {
                    "type": "integer"
                  },
                  "tx_hash": {
                    "type": "string"
                  },
                  "unlock_time": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_payments",
          "params": [
            {
              "payment_id": "0123456789abcdef"
            }
          ],
          "result": {
            "payments": [
              {
                "amount": 1000000000000,
                "tx_hash": "d6e9..."
              }
            ]
          }
        }
      ]
    },
    {
      "name": "open_wallet",
      "summary": "Wallet RPC: open a wallet file by name + password.",
      "params": [
        {
          "name": "filename",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "password",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object"
        }
      },
      "examples": [
        {
          "name": "open_wallet",
          "params": [
            {
              "filename": "primary",
              "password": "********"
            }
          ],
          "result": {}
        }
      ]
    },
    {
      "name": "get_block_header_by_height",
      "summary": "Daemon: block header for a given height (without the full block body).",
      "params": [
        {
          "name": "height",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": true,
          "description": "Block height."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "block_header": {
              "type": "object"
            },
            "status": {
              "type": "string"
            },
            "untrusted": {
              "type": "boolean"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_block_header_by_height",
          "params": [
            {
              "height": 1
            }
          ],
          "result": {
            "block_header": {
              "height": 1
            },
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_block_header_by_hash",
      "summary": "Daemon: block header for a given block hash.",
      "params": [
        {
          "name": "hash",
          "schema": {
            "type": "string"
          },
          "required": true,
          "description": "Block hash (hex)."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "block_header": {
              "type": "object"
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_block_header_by_hash",
          "params": [
            {
              "hash": "0000000000000000000000000000000000000000000000000000000000000000"
            }
          ],
          "result": {
            "block_header": {
              "height": 0
            },
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_block_headers_range",
      "summary": "Daemon: headers for a height range (lightweight overview).",
      "params": [
        {
          "name": "start_height",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": true
        },
        {
          "name": "end_height",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": true
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "headers": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "count": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_block_headers_range",
          "params": [
            {
              "start_height": 1,
              "end_height": 2
            }
          ],
          "result": {
            "headers": [],
            "count": 0
          }
        }
      ]
    },
    {
      "name": "get_connections",
      "summary": "Daemon: list of currently open P2P peer connections.",
      "params": [
        {
          "name": "get_peer_ip",
          "schema": {
            "type": "boolean"
          },
          "required": false,
          "description": "Include peer IPs (may be restricted)."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "connections": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "count": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_connections",
          "params": [
            {}
          ],
          "result": {
            "connections": [],
            "count": 0
          }
        }
      ]
    },
    {
      "name": "get_peer_list",
      "summary": "Daemon: known white/gray peer lists.",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "white": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "gray": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_peer_list",
          "params": [],
          "result": {
            "white": [],
            "gray": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_transaction_pool",
      "summary": "Daemon: transactions currently in the mempool.",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "transactions": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_transaction_pool",
          "params": [],
          "result": {
            "transactions": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_transaction_pool_hashes",
      "summary": "Daemon: just the mempool transaction hashes (cheap).",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "tx_hashes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_transaction_pool_hashes",
          "params": [],
          "result": {
            "tx_hashes": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_net_stats",
      "summary": "Daemon: network traffic statistics since daemon start.",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "start_time": {
              "type": "integer",
              "minimum": 0
            },
            "total_packets_in": {
              "type": "integer",
              "minimum": 0
            },
            "total_bytes_in": {
              "type": "integer",
              "minimum": 0
            },
            "total_packets_out": {
              "type": "integer",
              "minimum": 0
            },
            "total_bytes_out": {
              "type": "integer",
              "minimum": 0
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_net_stats",
          "params": [],
          "result": {
            "start_time": 0,
            "total_packets_in": 0,
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_limit",
      "summary": "Daemon: current upload/download bandwidth limits.",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "limit_up": {
              "type": "integer",
              "minimum": 0
            },
            "limit_down": {
              "type": "integer",
              "minimum": 0
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_limit",
          "params": [],
          "result": {
            "limit_up": 0,
            "limit_down": 0,
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "sync_info",
      "summary": "Daemon: sync progress vs the network.",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "height": {
              "type": "integer",
              "minimum": 0
            },
            "target_height": {
              "type": "integer",
              "minimum": 0
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "sync_info",
          "params": [],
          "result": {
            "height": 0,
            "target_height": 0,
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_block_count",
      "summary": "Daemon: top block height (deprecated alias of get_height).",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "count": {
              "type": "integer",
              "minimum": 0
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_block_count",
          "params": [],
          "result": {
            "count": 0,
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_alternate_chains",
      "summary": "Daemon: known alternate (orphan/fork) chains.",
      "params": [],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "chains": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_alternate_chains",
          "params": [],
          "result": {
            "chains": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "close_wallet",
      "summary": "Wallet: close the currently open wallet.",
      "params": [
        {
          "name": "skip_save",
          "schema": {
            "type": "boolean"
          },
          "required": false,
          "description": "Skip writing the wallet to disk."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "close_wallet",
          "params": [
            {}
          ],
          "result": {
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_accounts",
      "summary": "Wallet: list subaddress accounts with balances.",
      "params": [
        {
          "name": "tag",
          "schema": {
            "type": "string"
          },
          "required": false,
          "description": "Filter by account tag."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "subaddress_accounts": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "total_balance": {
              "type": "integer",
              "minimum": 0
            },
            "total_unlocked_balance": {
              "type": "integer",
              "minimum": 0
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_accounts",
          "params": [],
          "result": {
            "subaddress_accounts": [],
            "total_balance": 0,
            "total_unlocked_balance": 0
          }
        }
      ]
    },
    {
      "name": "sweep_all",
      "summary": "Wallet: sweep the entire balance of an account to one address.",
      "params": [
        {
          "name": "address",
          "schema": {
            "type": "string"
          },
          "required": true,
          "description": "Destination Monero address."
        },
        {
          "name": "account_index",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": false
        },
        {
          "name": "priority",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": false,
          "description": "Fee priority 0-4."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "tx_hash_list": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "tx_key_list": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "sweep_all",
          "params": [
            {
              "address": "44xExample..."
            }
          ],
          "result": {
            "tx_hash_list": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "validate_address",
      "summary": "Wallet: validate a Monero address and report its type.",
      "params": [
        {
          "name": "address",
          "schema": {
            "type": "string"
          },
          "required": true
        },
        {
          "name": "any",
          "schema": {
            "type": "boolean"
          },
          "required": false,
          "description": "Also accept integrated/subaddress."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "valid": {
              "type": "boolean"
            },
            "integrated": {
              "type": "boolean"
            },
            "subaddress": {
              "type": "boolean"
            },
            "nettype": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "openalias_address": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "validate_address",
          "params": [
            {
              "address": "45bov..."
            }
          ],
          "result": {
            "valid": true,
            "integrated": false,
            "subaddress": false,
            "nettype": "mainnet",
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "incoming_transfers",
      "summary": "Wallet: list incoming transfers (available/pending/etc).",
      "params": [
        {
          "name": "transfer_type",
          "schema": {
            "type": "string"
          },
          "required": false,
          "description": "all|available|pending|unavailable"
        },
        {
          "name": "account_index",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": false
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "transfers": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "incoming_transfers",
          "params": [
            {}
          ],
          "result": {
            "transfers": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "relay_tx",
      "summary": "Wallet: relay a previously created (but unsent) tx hex to the network.",
      "params": [
        {
          "name": "hex",
          "schema": {
            "type": "string"
          },
          "required": true,
          "description": "Raw transaction hex."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "tx_hash": {
              "type": "string"
            },
            "tx_key": {
              "type": "string"
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "relay_tx",
          "params": [
            {
              "hex": "deadbeef..."
            }
          ],
          "result": {
            "tx_hash": "",
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "get_bulk_payments",
      "summary": "Wallet: look up payments by payment ID(s) since a block height.",
      "params": [
        {
          "name": "payment_ids",
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "required": true
        },
        {
          "name": "min_block_height",
          "schema": {
            "type": "integer",
            "minimum": 0
          },
          "required": false
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "payments": {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "get_bulk_payments",
          "params": [
            {
              "payment_ids": []
            }
          ],
          "result": {
            "payments": [],
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "sign",
      "summary": "Wallet: produce a signature over arbitrary data with the wallet's view key.",
      "params": [
        {
          "name": "data",
          "schema": {
            "type": "string"
          },
          "required": true,
          "description": "Hex or UTF-8 data to sign."
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "signature": {
              "type": "string"
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "sign",
          "params": [
            {
              "data": "hello"
            }
          ],
          "result": {
            "signature": "",
            "status": "OK"
          }
        }
      ]
    },
    {
      "name": "verify",
      "summary": "Wallet: verify a signature produced by sign() against an address.",
      "params": [
        {
          "name": "data",
          "schema": {
            "type": "string"
          },
          "required": true
        },
        {
          "name": "address",
          "schema": {
            "type": "string"
          },
          "required": true
        },
        {
          "name": "signature",
          "schema": {
            "type": "string"
          },
          "required": true
        }
      ],
      "result": {
        "name": "result",
        "schema": {
          "type": "object",
          "properties": {
            "good": {
              "type": "boolean"
            },
            "status": {
              "type": "string"
            }
          }
        }
      },
      "examples": [
        {
          "name": "verify",
          "params": [
            {
              "data": "hello",
              "address": "45bov...",
              "signature": "sig"
            }
          ],
          "result": {
            "good": false,
            "status": "OK"
          }
        }
      ]
    }
  ],
  "components": {
    "schemas": {
      "MoneroAddress": {
        "type": "string",
        "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95,106}$",
        "description": "Standard (95c), subaddress (95c), or integrated (106c) Monero address."
      },
      "AtomicAmount": {
        "type": "integer",
        "minimum": 0,
        "description": "piconero (1e-12 XMR)"
      },
      "PaymentId": {
        "type": "string",
        "description": "8 or 16 hex chars (short or full payment id)."
      }
    },
    "errors": [
      {
        "code": -32601,
        "message": "Method not found"
      },
      {
        "code": -32602,
        "message": "Invalid params"
      },
      {
        "code": -32603,
        "message": "Internal error"
      },
      {
        "code": -32000,
        "message": "Monero RPC error (e.g. not enough money, wrong password, node not synced) \u2014 see 'error' field in response"
      }
    ]
  }
}