# Generated by Scrape::ApiDefinitionsJob: 2019-10-08 17:22:36 UTC
# See: https://git.io/vx5CY
---
- name: Database API
  description: |
    Used to query information about accounts, transactions, and blockchain data.



    To enable this API for `hived`, the following is required in `config.ini`
    by specifying:

    ```ini
    plugin = database_api
    ```

    **These AppBase API methods are still under development and subject to
    change.**
  methods:
  - api_method: database_api.find_account_recovery_requests
    since: HF11
    purpose: |
      Returns a list of account recovery requests.  Parameters: `account:string`

      | `account` (string) | |
      |--------------------|-|
      | `"hiveio"` | Queries the recovery requests for account named "hiveio". |
    parameter_json: '{"accounts":[]}'
    expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_account_recovery_requests", "params": {"accounts":["hiveio"]}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recovery-request)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_accounts
    purpose: |
      Returns accounts, queried by name.  Parameters: `account:string array`

      | `account` (string array) | |
      |-------------------|-|
      | `["hiveio"]` | Queries for account named "hiveio". |
      | `["hiveio", "alice"]` | Queries for accounts named "hiveio" and "alice". |
    parameter_json: '{"accounts":[]}'
    expected_response_json: |
      {
        "accounts": [
          {
            "id": 28,
            "name": "hiveio",
            "owner": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM6Ezkzey8FWoEnnHHP4rxbrysJqoMmzwR2EdoD5p7FDsF64qxbQ",
                  1
                ],
                [
                  "STM7TCZKisQnvR69CK9BaL6W4SJn2cXYwkfWYRicoVGGzhtFswxMH",
                  1
                ]
              ]
            },
            "active": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM5VkLha96X5EQu3HSkJdD8SEuwazWtZrzLjUT6Sc5sopgghBYrz",
                  1
                ],
                [
                  "STM7u1BsoqLaoCu9XHi1wjWctLWSFCuvyagFjYMfga4QNWEjP7d3U",
                  1
                ]
              ]
            },
            "posting": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM6kXdRbWgoH9E4hvtTZeaiSbY8FmGXQavfJZ2jzkKjT5cWYgMBS",
                  1
                ],
                [
                  "STM6tDMSSKa8Bd9ss7EjqhXPEHTWissGXJJosAU94LLpC5tsCdo61",
                  1
                ]
              ]
            },
            "memo_key": "STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH",
            "json_metadata": "",
            "posting_json_metadata": "",
            "proxy": "",
            "last_owner_update": "2018-05-31T23:32:06",
            "last_account_update": "2018-05-31T23:32:06",
            "created": "2016-03-24T17:00:21",
            "mined": true,
            "recovery_account": "steem",
            "last_account_recovery": "1970-01-01T00:00:00",
            "reset_account": "null",
            "comment_count": 0,
            "lifetime_vote_count": 0,
            "post_count": 1,
            "can_vote": true,
            "voting_manabar": {
              "current_mana": "69835912701503862",
              "last_update_time": 1538171805
            },
            "downvote_manabar": {
              "current_mana": "14309515566616031",
              "last_update_time": 1573774416
            },
            "balance": {
              "amount": "2806644634",
              "precision": 3,
              "nai": "@@000000021"
            },
            "savings_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "hbd_balance": {
              "amount": "8716535",
              "precision": 3,
              "nai": "@@000000013"
            },
            "hbd_seconds": "0",
            "hbd_seconds_last_update": "2018-11-12T02:39:39",
            "hbd_last_interest_payment": "2018-11-12T02:39:39",
            "savings_hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "savings_hbd_seconds": "0",
            "savings_hbd_seconds_last_update": "1970-01-01T00:00:00",
            "savings_hbd_last_interest_payment": "1970-01-01T00:00:00",
            "savings_withdraw_requests": 0,
            "reward_hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "reward_hive_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "reward_vesting_balance": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "reward_vesting_hive": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "vesting_shares": {
              "amount": "90039851836689703",
              "precision": 6,
              "nai": "@@000000037"
            },
            "delegated_vesting_shares": {
              "amount": "20203939135185841",
              "precision": 6,
              "nai": "@@000000037"
            },
            "received_vesting_shares": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "vesting_withdraw_rate": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "next_vesting_withdrawal": "1969-12-31T23:59:59",
            "withdrawn": 0,
            "to_withdraw": 0,
            "withdraw_routes": 0,
            "curation_rewards": 0,
            "posting_rewards": 3548,
            "proxied_vsf_votes": [
              "14953279511",
              0,
              0,
              0
            ],
            "witnesses_voted_for": 0,
            "last_post": "2016-03-30T18:30:18",
            "last_root_post": "2016-03-30T18:30:18",
            "last_post_edit": "2016-03-30T18:30:18",
            "last_vote_time": "2016-12-04T23:10:57",
            "post_bandwidth": 0,
            "pending_claimed_accounts": 0,
            "is_smt": false
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_accounts", "params": {"accounts":["hiveio"]}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_accounts", "params": {"accounts":["hiveio", "alice"]}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-accounts)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.get_all_accounts)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_change_recovery_account_requests
    since: HF11
    purpose: |
      Returns a list of requests to change the recovery account.  Parameters: `account:array`

      | `account` (array) | |
      |--------------------|-|
      | `["hiveio"]` | Queries the recovery requests for account named "hiveio". |
    parameter_json: '{"accounts":[]}'
    expected_response_json: |
      {
        "requests": [
          {
            "id": 0,
            "account_to_recover": "",
            "recovery_account": "",
            "effective_on": "2020-01-08T00:45:18"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_change_recovery_account_requests", "params": {"accounts":["hiveio"]}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.find_change_recovery_account_requests)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_comments
    purpose: Search for comments by author/permlink.
    parameter_json: '{"comments":[["author", "permlink"]]}'
    expected_response_json: '{"comments":[]}'
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_comments", "params": {"comments":[["hiveio", "around-the-hive-reflections"]]}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_comments", "params": {"comments":[["alice", "a-post-by-alice"]]}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-content)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-content)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_decline_voting_rights_requests
    since: HF14
    purpose: Returns a list of requests to decline voting rights.
    parameter_json: '{"accounts":[]}'
    expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_decline_voting_rights_requests", "params": {"accounts":["temp","null"]}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_escrows
    since: HF14
    purpose: Returns a list of escrows.
    parameter_json: '{"from":""}'
    expected_response_json: |
      {
        "escrows": [
          {
            "id": 143,
            "escrow_id": 12345,
            "from": "temp",
            "to": "guest123",
            "agent": "smitop",
            "ratification_deadline": "2038-01-19T03:14:06",
            "escrow_expiration": "2038-01-19T03:14:07",
            "hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "hive_balance": {
              "amount": "1",
              "precision": 3,
              "nai": "@@000000021"
            },
            "pending_fee": {
              "amount": "1",
              "precision": 3,
              "nai": "@@000000021"
            },
            "to_approved": false,
            "agent_approved": false,
            "disputed": false
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_escrows", "params": {"from": "temp"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-escrow)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-escrow)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_limit_orders
    purpose: Returns a list of limit orders.
    parameter_json: '{"account":""}'
    expected_response_json: |
      {
        "orders": [
          {
            "id": 0,
            "created": "2019-12-14T04:05:39",
            "expiration": "2019-12-15T05:05:21",
            "seller": "",
            "orderid": 0,
            "for_sale": 0,
            "sell_price": {
              "base": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000013"
              },
              "quote": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000021"
              }
            }
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_limit_orders", "params": {"account":"temp"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_owner_histories
    purpose: |
      Returns owner authority history.  Parameters: `owner:string`

      | `owner` (string) | |
      |--------------------|-|
      | `"hiveio"` | Queries the owner history for account named "hiveio". |
      | `"alice"` | Queries the owner history for account named "alice". |
    parameter_json: '{"owner":""}'
    expected_response_json: '{"owner_auths":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_owner_histories", "params": {"owner":"hiveio"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_owner_histories", "params": {"owner":"alice"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-owner-history)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-owner-history)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_savings_withdrawals
    since: HF14
    purpose: |
      Returns the list of savings withdrawls for an account.  Parameters: `account:string`

      | `account` (string) | |
      |--------------------|-|
      | `"hiveio"` | Queries the savings withdraw for account named "hiveio". |
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    parameter_json: '{"account":""}'
    expected_response_json: '{"withdrawals":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_savings_withdrawals", "params": {"start":"temp"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-savings-withdraw-from)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-savings-withdraw-from)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_hbd_conversion_requests
    purpose: |
      Returns the list of HBD conversion requests for an account.  Parameters: `account:string`

      | `account` (string) | |
      |-------------------|-|
      | `"hiveio"` | Queries a conversion request for hiveio. |
      | `"alice"` | Queries a conversion request for alice. |
    parameter_json: '{"account":""}'
    expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_hbd_conversion_requests", "params": {"account":"hiveio"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_hbd_conversion_requests", "params": {"account":"alice"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_vesting_delegation_expirations
    since: HF17
    purpose: |
      Returns the expiring vesting delegations for an account.  Parameters: `account:string`

      | `account` (string) | | |
      |----------------------------|---------------|-|
      | `"hiveio"` | | Queries for expiring vesting for `hiveio`. |
      | `"alice"` | | Queries for expiring vesting for `alice`. |
    parameter_json: '{"account":""}'
    expected_response_json: |
      {
        "delegations": [
          {
            "id": 3077902,
            "delegator": "steem",
            "vesting_shares": {
              "amount": "201417615",
              "precision": 6,
              "nai": "@@000000037"
            },
            "expiration": "2018-12-05T21:46:48"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegation_expirations", "params": {"account":"hiveio"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegation_expirations", "params": {"account":"alice"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_expiring_vesting_delegations)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_vesting_delegations
    since: HF17
    purpose: |
      Returns the list of vesting delegations for an account.  Parameters: `account:string`

      | `account` (string) | | |
      |----------------------------|---------------|-|
      | `"hiveio"` | | Queries for vesting for `hiveio`. |
      | `"alice"` | | Queries for vesting for `alice`. |
    parameter_json: '{"account":""}'
    expected_response_json: |
      {
        "delegations": [
          {
            "id": 0,
            "delegator": "",
            "delegatee": "",
            "vesting_shares": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "min_delegation_time": "2018-02-28T15:36:51"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegations", "params": {"account":"hiveio"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_vesting_delegations", "params": {"account":"alice"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_vesting_delegations)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_votes
    purpose: |
      Returns all votes for the given post.  Parameters: `author:string`; `permlink:string`

      | `author` (string) | `permlink` (string) | |
      |----------------------------|---------------|-|
      | `"hiveio"` | `"firstpost"` | Queries votes for content with a slug `@hiveio/firstpost` |
      | `"alice"` | `"a-post-by-alice"` | Queries votes for content with a slug `@alice/a-post-by-alice` |
    parameter_json: '{"author":"","permlink":""}'
    expected_response_json: |
      {
        "votes": [
          {
            "id": 0,
            "voter": "",
            "author": "",
            "permlink": "",
            "weight": "0",
            "rshares": 0,
            "vote_percent": 0,
            "last_update": "2016-04-07T19:15:36",
            "num_changes": -1
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_votes", "params": {"author":"hiveio", "permlink":"firstpost"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.find_votes", "params": {"author":"alice", "permlink":"a-post-by-alice"}, "id":1}'
    expected_curl_responses:
    - 
    - Could not find comment alice/a-post-by-alice
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-votes)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_account_votes)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_withdraw_vesting_routes
    purpose: Returns the list of vesting withdraw routes for an account.
    parameter_json: '{"account":"","order":"by_name"}'
    expected_response_json: |
      {
        "routes": [
          {
            "id": 0,
            "from_account": "",
            "to_account": "",
            "percent": 0,
            "auto_vest": true
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_withdraw_vesting_routes", "params": {"account":"temp", "order":"by_destination"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-withdraw-routes)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_withdraw_routes)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_witnesses
    purpose: Search for witnesses.
    parameter_json: '{"owners":[]}'
    expected_response_json: |
      {
        "witnesses": [
          {
            "id": 0,
            "owner": "initminer",
            "created": "1970-01-01T00:00:00",
            "url": "",
            "votes": 0,
            "virtual_last_update": "225400650183277777230188182",
            "virtual_position": "28933178228158941342755574680549120",
            "virtual_scheduled_time": "340253433742935705172215129634317850517",
            "total_missed": 88,
            "last_aslot": 1202,
            "last_confirmed_block_num": 1092,
            "pow_worker": 0,
            "signing_key": "STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX",
            "props": {
              "account_creation_fee": {
                "amount": "1",
                "precision": 3,
                "nai": "@@000000021"
              },
              "maximum_block_size": 131072,
              "hbd_interest_rate": 1000,
              "account_subsidy_budget": 797,
              "account_subsidy_decay": 347321
            },
            "hbd_exchange_rate": {
              "base": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000021"
              },
              "quote": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000021"
              }
            },
            "last_hbd_exchange_update": "1970-01-01T00:00:00",
            "last_work": "0000000000000000000000000000000000000000000000000000000000000000",
            "running_version": "0.23.0",
            "hardfork_version_vote": "0.23.0",
            "hardfork_time_vote": "2019-10-14T15:00:00",
            "available_witness_account_subsidies": 9379874
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_witnesses", "params": {"owners":["initminer"]}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-witnesses)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_active_witnesses
    purpose: Returns the list of active witnesses.
    parameter_json: "{}"
    expected_response_json: |
      {
        "witnesses": [
          "lukestokes.mhth",
          "gtg",
          "ausbitbank",
          "clayop",
          "yabapmatt",
          "curie",
          "thecryptodrive",
          "roelandp",
          "followbtcnews",
          "timcliff",
          "smooth.witness",
          "bhuz",
          "aggroed",
          "blocktrades",
          "cervantes",
          "utopian-io",
          "anyx",
          "jesta",
          "drakos",
          "someguy123",
          "good-karma"
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_active_witnesses", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-active-witnesses)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-active-witnesses)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_config
    purpose: |
      Returns information about compile-time constants. Some properties may
      not be present.  See: [Understanding Configuration Values]({{ '/tutorials-recipes/understanding-configuration-values.html' | relative_url}})
    parameter_json: "{}"
    expected_response_json: |
      {
        "IS_TEST_NET": true,
        "TESTNET_BLOCK_LIMIT": 3000000,
        "SMT_MAX_VOTABLE_ASSETS": 2,
        "SMT_VESTING_WITHDRAW_INTERVAL_SECONDS": 604800,
        "SMT_UPVOTE_LOCKOUT": 43200,
        "SMT_EMISSION_MIN_INTERVAL_SECONDS": 21600,
        "SMT_EMIT_INDEFINITELY": 4294967295,
        "SMT_MAX_NOMINAL_VOTES_PER_DAY": 1000,
        "SMT_MAX_VOTES_PER_REGENERATION": 7000,
        "SMT_DEFAULT_VOTES_PER_REGEN_PERIOD": 50,
        "SMT_DEFAULT_PERCENT_CURATION_REWARDS": 2500,
        "SMT_INITIAL_VESTING_PER_UNIT": 1000000,
        "SMT_BALLAST_SUPPLY_PERCENT": 10,
        "SMT_MAX_ICO_TIERS": 10,
        "HBD_SYMBOL": {
          "nai": "@@000000013",
          "precision": 3
        },
        "HIVE_INITIAL_VOTE_POWER_RATE": 40,
        "HIVE_REDUCED_VOTE_POWER_RATE": 10,
        "HIVE_100_PERCENT": 10000,
        "HIVE_1_PERCENT": 100,
        "HIVE_ACCOUNT_RECOVERY_REQUEST_EXPIRATION_PERIOD": 12000000,
        "HIVE_ACTIVE_CHALLENGE_COOLDOWN": "86400000000",
        "HIVE_ACTIVE_CHALLENGE_FEE": {
          "amount": "2000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_ADDRESS_PREFIX": "TST",
        "HIVE_APR_PERCENT_MULTIPLY_PER_BLOCK": "102035135585887",
        "HIVE_APR_PERCENT_MULTIPLY_PER_HOUR": "119577151364285",
        "HIVE_APR_PERCENT_MULTIPLY_PER_ROUND": "133921203762304",
        "HIVE_APR_PERCENT_SHIFT_PER_BLOCK": 87,
        "HIVE_APR_PERCENT_SHIFT_PER_HOUR": 77,
        "HIVE_APR_PERCENT_SHIFT_PER_ROUND": 83,
        "HIVE_BANDWIDTH_AVERAGE_WINDOW_SECONDS": 604800,
        "HIVE_BANDWIDTH_PRECISION": 1000000,
        "HIVE_BENEFICIARY_LIMIT": 128,
        "HIVE_BLOCKCHAIN_PRECISION": 1000,
        "HIVE_BLOCKCHAIN_PRECISION_DIGITS": 3,
        "HIVE_BLOCKCHAIN_HARDFORK_VERSION": "0.23.0",
        "HIVE_BLOCKCHAIN_VERSION": "0.23.0",
        "HIVE_BLOCK_INTERVAL": 3,
        "HIVE_BLOCKS_PER_DAY": 28800,
        "HIVE_BLOCKS_PER_HOUR": 1200,
        "HIVE_BLOCKS_PER_YEAR": 10512000,
        "HIVE_CASHOUT_WINDOW_SECONDS": 3600,
        "HIVE_CASHOUT_WINDOW_SECONDS_PRE_HF12": 3600,
        "HIVE_CASHOUT_WINDOW_SECONDS_PRE_HF17": 3600,
        "HIVE_CHAIN_ID": "18dcf0a285365fc58b71f18b3d3fec954aa0c141c44e4e5cb4cf777b9eab274e",
        "HIVE_COMMENT_REWARD_FUND_NAME": "comment",
        "HIVE_COMMENT_TITLE_LIMIT": 256,
        "HIVE_CONTENT_APR_PERCENT": 3875,
        "HIVE_CONTENT_CONSTANT_HF0": "2000000000000",
        "HIVE_CONTENT_CONSTANT_HF21": "2000000000000",
        "HIVE_CONTENT_REWARD_PERCENT_HF16": 7500,
        "HIVE_CONTENT_REWARD_PERCENT_HF21": 6500,
        "HIVE_CONVERSION_DELAY": "302400000000",
        "HIVE_CONVERSION_DELAY_PRE_HF_16": "604800000000",
        "HIVE_CREATE_ACCOUNT_DELEGATION_RATIO": 5,
        "HIVE_CREATE_ACCOUNT_DELEGATION_TIME": "2592000000000",
        "HIVE_CREATE_ACCOUNT_WITH_HIVE_MODIFIER": 30,
        "HIVE_CURATE_APR_PERCENT": 3875,
        "HIVE_CUSTOM_OP_DATA_MAX_LENGTH": 8192,
        "HIVE_CUSTOM_OP_ID_MAX_LENGTH": 32,
        "HIVE_DEFAULT_HBD_INTEREST_RATE": 1000,
        "HIVE_DOWNVOTE_POOL_PERCENT_HF21": 2500,
        "HIVE_EQUIHASH_K": 6,
        "HIVE_EQUIHASH_N": 140,
        "HIVE_FEED_HISTORY_WINDOW": 84,
        "HIVE_FEED_HISTORY_WINDOW_PRE_HF_16": 168,
        "HIVE_FEED_INTERVAL_BLOCKS": 1200,
        "HIVE_GENESIS_TIME": "2016-01-01T00:00:00",
        "HIVE_HARDFORK_REQUIRED_WITNESSES": 17,
        "HIVE_HF21_CONVERGENT_LINEAR_RECENT_CLAIMS": "503600561838938636",
        "HIVE_INFLATION_NARROWING_PERIOD": 250000,
        "HIVE_INFLATION_RATE_START_PERCENT": 978,
        "HIVE_INFLATION_RATE_STOP_PERCENT": 95,
        "HIVE_INIT_MINER_NAME": "initminer",
        "HIVE_INIT_PUBLIC_KEY_STR": "TST6LLegbAgLAy28EHrffBVuANFWcFgmqRMW13wBmTExqFE9SCkg4",
        "HIVE_INIT_SUPPLY": "250000000000",
        "HIVE_HBD_INIT_SUPPLY": "7000000000",
        "HIVE_INIT_TIME": "1970-01-01T00:00:00",
        "HIVE_IRREVERSIBLE_THRESHOLD": 7500,
        "HIVE_LIQUIDITY_APR_PERCENT": 750,
        "HIVE_LIQUIDITY_REWARD_BLOCKS": 1200,
        "HIVE_LIQUIDITY_REWARD_PERIOD_SEC": 3600,
        "HIVE_LIQUIDITY_TIMEOUT_SEC": "604800000000",
        "HIVE_MAX_ACCOUNT_CREATION_FEE": 1000000000,
        "HIVE_MAX_ACCOUNT_NAME_LENGTH": 16,
        "HIVE_MAX_ACCOUNT_WITNESS_VOTES": 30,
        "HIVE_MAX_ASSET_WHITELIST_AUTHORITIES": 10,
        "HIVE_MAX_AUTHORITY_MEMBERSHIP": 40,
        "HIVE_MAX_BLOCK_SIZE": 393216000,
        "HIVE_SOFT_MAX_BLOCK_SIZE": 2097152,
        "HIVE_MAX_CASHOUT_WINDOW_SECONDS": 86400,
        "HIVE_MAX_COMMENT_DEPTH": 65535,
        "HIVE_MAX_COMMENT_DEPTH_PRE_HF17": 6,
        "HIVE_MAX_FEED_AGE_SECONDS": 604800,
        "HIVE_MAX_INSTANCE_ID": "281474976710655",
        "HIVE_MAX_MEMO_SIZE": 2048,
        "HIVE_MAX_WITNESSES": 21,
        "HIVE_MAX_MINER_WITNESSES_HF0": 1,
        "HIVE_MAX_MINER_WITNESSES_HF17": 0,
        "HIVE_MAX_PERMLINK_LENGTH": 256,
        "HIVE_MAX_PROXY_RECURSION_DEPTH": 4,
        "HIVE_MAX_RATION_DECAY_RATE": 1000000,
        "HIVE_MAX_RESERVE_RATIO": 20000,
        "HIVE_MAX_RUNNER_WITNESSES_HF0": 1,
        "HIVE_MAX_RUNNER_WITNESSES_HF17": 1,
        "HIVE_MAX_SATOSHIS": "4611686018427387903",
        "HIVE_MAX_SHARE_SUPPLY": "1000000000000000",
        "HIVE_MAX_SIG_CHECK_DEPTH": 2,
        "HIVE_MAX_SIG_CHECK_ACCOUNTS": 125,
        "HIVE_MAX_TIME_UNTIL_EXPIRATION": 3600,
        "HIVE_MAX_TRANSACTION_SIZE": 65536,
        "HIVE_MAX_UNDO_HISTORY": 10000,
        "HIVE_MAX_URL_LENGTH": 127,
        "HIVE_MAX_VOTE_CHANGES": 5,
        "HIVE_MAX_VOTED_WITNESSES_HF0": 19,
        "HIVE_MAX_VOTED_WITNESSES_HF17": 20,
        "HIVE_MAX_WITHDRAW_ROUTES": 10,
        "HIVE_MAX_WITNESS_URL_LENGTH": 2048,
        "HIVE_MIN_ACCOUNT_CREATION_FEE": 0,
        "HIVE_MIN_ACCOUNT_NAME_LENGTH": 3,
        "HIVE_MIN_BLOCK_SIZE_LIMIT": 65536,
        "HIVE_MIN_BLOCK_SIZE": 115,
        "HIVE_MIN_CONTENT_REWARD": {
          "amount": "1000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_MIN_CURATE_REWARD": {
          "amount": "1000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_MIN_PERMLINK_LENGTH": 0,
        "HIVE_MIN_REPLY_INTERVAL": 20000000,
        "HIVE_MIN_REPLY_INTERVAL_HF20": 3000000,
        "HIVE_MIN_ROOT_COMMENT_INTERVAL": 300000000,
        "HIVE_MIN_COMMENT_EDIT_INTERVAL": 3000000,
        "HIVE_MIN_VOTE_INTERVAL_SEC": 3,
        "HIVE_MINER_ACCOUNT": "miners",
        "HIVE_MINER_PAY_PERCENT": 100,
        "HIVE_MIN_FEEDS": 7,
        "HIVE_MINING_REWARD": {
          "amount": "1000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_MINING_TIME": "2016-01-01T00:00:00",
        "HIVE_MIN_LIQUIDITY_REWARD": {
          "amount": "1200000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_MIN_LIQUIDITY_REWARD_PERIOD_SEC": 60000000,
        "HIVE_MIN_PAYOUT_HBD": {
          "amount": "20",
          "precision": 3,
          "nai": "@@000000013"
        },
        "HIVE_MIN_POW_REWARD": {
          "amount": "1000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_MIN_PRODUCER_REWARD": {
          "amount": "1000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_MIN_TRANSACTION_EXPIRATION_LIMIT": 15,
        "HIVE_MIN_TRANSACTION_SIZE_LIMIT": 1024,
        "HIVE_MIN_UNDO_HISTORY": 10,
        "HIVE_NULL_ACCOUNT": "null",
        "HIVE_NUM_INIT_MINERS": 1,
        "HIVE_OWNER_AUTH_HISTORY_TRACKING_START_BLOCK_NUM": 1,
        "HIVE_OWNER_AUTH_RECOVERY_PERIOD": 60000000,
        "HIVE_OWNER_CHALLENGE_COOLDOWN": "86400000000",
        "HIVE_OWNER_CHALLENGE_FEE": {
          "amount": "30000",
          "precision": 3,
          "nai": "@@000000021"
        },
        "HIVE_OWNER_UPDATE_LIMIT": 0,
        "HIVE_POST_AVERAGE_WINDOW": 86400,
        "HIVE_POST_REWARD_FUND_NAME": "post",
        "HIVE_POST_WEIGHT_CONSTANT": 1600000000,
        "HIVE_POW_APR_PERCENT": 750,
        "HIVE_PRODUCER_APR_PERCENT": 750,
        "HIVE_PROXY_TO_SELF_ACCOUNT": "",
        "HIVE_HBD_INTEREST_COMPOUND_INTERVAL_SEC": 2592000,
        "HIVE_SECONDS_PER_YEAR": 31536000,
        "HIVE_PROPOSAL_FUND_PERCENT_HF0": 0,
        "HIVE_PROPOSAL_FUND_PERCENT_HF21": 1000,
        "HIVE_RECENT_RSHARES_DECAY_TIME_HF19": "1296000000000",
        "HIVE_RECENT_RSHARES_DECAY_TIME_HF17": "2592000000000",
        "HIVE_REVERSE_AUCTION_WINDOW_SECONDS_HF6": 1800,
        "HIVE_REVERSE_AUCTION_WINDOW_SECONDS_HF20": 900,
        "HIVE_REVERSE_AUCTION_WINDOW_SECONDS_HF21": 300,
        "HIVE_ROOT_POST_PARENT": "",
        "HIVE_SAVINGS_WITHDRAW_REQUEST_LIMIT": 100,
        "HIVE_SAVINGS_WITHDRAW_TIME": "259200000000",
        "HIVE_HBD_START_PERCENT_HF14": 200,
        "HIVE_HBD_START_PERCENT_HF20": 900,
        "HIVE_HBD_STOP_PERCENT_HF14": 500,
        "HIVE_HBD_STOP_PERCENT_HF20": 1000,
        "HIVE_SECOND_CASHOUT_WINDOW": 259200,
        "HIVE_SOFT_MAX_COMMENT_DEPTH": 255,
        "HIVE_START_MINER_VOTING_BLOCK": 864000,
        "HIVE_START_VESTING_BLOCK": 201600,
        "HIVE_TEMP_ACCOUNT": "temp",
        "HIVE_UPVOTE_LOCKOUT_HF7": 60000000,
        "HIVE_UPVOTE_LOCKOUT_HF17": 300000000,
        "HIVE_UPVOTE_LOCKOUT_SECONDS": 300,
        "HIVE_VESTING_FUND_PERCENT_HF16": 1500,
        "HIVE_VESTING_WITHDRAW_INTERVALS": 13,
        "HIVE_VESTING_WITHDRAW_INTERVALS_PRE_HF_16": 104,
        "HIVE_VESTING_WITHDRAW_INTERVAL_SECONDS": 604800,
        "HIVE_VOTE_DUST_THRESHOLD": 50000000,
        "HIVE_VOTING_MANA_REGENERATION_SECONDS": 432000,
        "HIVE_SYMBOL": {
          "nai": "@@000000021",
          "precision": 3
        },
        "VESTS_SYMBOL": {
          "nai": "@@000000037",
          "precision": 6
        },
        "HIVE_VIRTUAL_SCHEDULE_LAP_LENGTH": "18446744073709551615",
        "HIVE_VIRTUAL_SCHEDULE_LAP_LENGTH2": "340282366920938463463374607431768211455",
        "HIVE_VOTES_PER_PERIOD_SMT_HF": 50,
        "HIVE_MAX_LIMIT_ORDER_EXPIRATION": 2419200,
        "HIVE_DELEGATION_RETURN_PERIOD_HF0": 3600,
        "HIVE_DELEGATION_RETURN_PERIOD_HF20": 432000,
        "HIVE_RD_MIN_DECAY_BITS": 6,
        "HIVE_RD_MAX_DECAY_BITS": 32,
        "HIVE_RD_DECAY_DENOM_SHIFT": 36,
        "HIVE_RD_MAX_POOL_BITS": 64,
        "HIVE_RD_MAX_BUDGET_1": "17179869183",
        "HIVE_RD_MAX_BUDGET_2": 268435455,
        "HIVE_RD_MAX_BUDGET_3": 2147483647,
        "HIVE_RD_MAX_BUDGET": 268435455,
        "HIVE_RD_MIN_DECAY": 64,
        "HIVE_RD_MIN_BUDGET": 1,
        "HIVE_RD_MAX_DECAY": 4294967295,
        "HIVE_ACCOUNT_SUBSIDY_PRECISION": 10000,
        "HIVE_WITNESS_SUBSIDY_BUDGET_PERCENT": 12500,
        "HIVE_WITNESS_SUBSIDY_DECAY_PERCENT": 210000,
        "HIVE_DEFAULT_ACCOUNT_SUBSIDY_DECAY": 347321,
        "HIVE_DEFAULT_ACCOUNT_SUBSIDY_BUDGET": 797,
        "HIVE_DECAY_BACKSTOP_PERCENT": 9000,
        "HIVE_BLOCK_GENERATION_POSTPONED_TX_LIMIT": 5,
        "HIVE_PENDING_TRANSACTION_EXECUTION_LIMIT": 200000,
        "HIVE_TREASURY_ACCOUNT": "hive.fund",
        "HIVE_TREASURY_FEE": 10000,
        "HIVE_PROPOSAL_MAINTENANCE_PERIOD": 3600,
        "HIVE_PROPOSAL_MAINTENANCE_CLEANUP": 86400,
        "HIVE_PROPOSAL_SUBJECT_MAX_LENGTH": 80,
        "HIVE_PROPOSAL_MAX_IDS_NUMBER": 5,
        "HIVE_NETWORK_TYPE": "testnet",
        "HIVE_DB_FORMAT_VERSION": "1"
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_config", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-config)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-config)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_current_price_feed
    purpose: Returns the current price feed.
    parameter_json: "{}"
    expected_response_json: |
      {
        "base": {
          "amount": "1",
          "precision": 3,
          "nai": "@@000000013"
        },
        "quote": {
          "amount": "1",
          "precision": 3,
          "nai": "@@000000021"
        }
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_current_price_feed", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-current-median-history-price)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_median_price)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_dynamic_global_properties
    purpose: |
      Returns the current dynamic global properties.  See: [Understanding
      Dynamic Global Properties]({{ '/tutorials-recipes/understanding-dynamic-global-properties.html' | relative_url }})
    parameter_json: "{}"
    expected_response_json: |
      {
        "id": 0,
        "head_block_number": 293261,
        "head_block_id": "0004798df7357f23b9e6d4b6739e4ca9eac2f403",
        "time": "2019-12-14T22:58:51",
        "current_witness": "init-0",
        "total_pow": "18446744073709551615",
        "num_pow_witnesses": 0,
        "virtual_supply": {
          "amount": "286041551516",
          "precision": 3,
          "nai": "@@000000021"
        },
        "current_supply": {
          "amount": "250990841260",
          "precision": 3,
          "nai": "@@000000021"
        },
        "confidential_supply": {
          "amount": "0",
          "precision": 3,
          "nai": "@@000000021"
        },
        "init_hbd_supply": {
          "amount": "7000000000",
          "precision": 3,
          "nai": "@@000000013"
        },
        "current_hbd_supply": {
          "amount": "35050710256",
          "precision": 3,
          "nai": "@@000000013"
        },
        "confidential_hbd_supply": {
          "amount": "0",
          "precision": 3,
          "nai": "@@000000013"
        },
        "total_vesting_fund_hive": {
          "amount": "146016220388",
          "precision": 3,
          "nai": "@@000000021"
        },
        "total_vesting_shares": {
          "amount": "52556676118700",
          "precision": 6,
          "nai": "@@000000037"
        },
        "total_reward_fund_hive": {
          "amount": "0",
          "precision": 3,
          "nai": "@@000000021"
        },
        "total_reward_shares2": "0",
        "pending_rewarded_vesting_shares": {
          "amount": "55809356614",
          "precision": 6,
          "nai": "@@000000037"
        },
        "pending_rewarded_vesting_hive": {
          "amount": "154999023",
          "precision": 3,
          "nai": "@@000000021"
        },
        "hbd_interest_rate": 1000,
        "hbd_print_rate": 0,
        "maximum_block_size": 131072,
        "required_actions_partition_percent": 2500,
        "current_aslot": 41585977,
        "recent_slots_filled": "340282366920938463463374607431768211455",
        "participation_count": 128,
        "last_irreversible_block_num": 293240,
        "target_votes_per_period": 50,
        "delegation_return_period": 432000,
        "reverse_auction_seconds": 300,
        "available_account_subsidies": 120334411,
        "hbd_stop_percent": 1000,
        "hbd_start_percent": 900,
        "next_maintenance_time": "2019-12-14T23:18:24",
        "last_budget_time": "2019-12-14T22:18:24",
        "content_reward_percent": 6500,
        "vesting_reward_percent": 1500,
        "sps_fund_percent": 1000,
        "sps_interval_ledger": {
          "amount": "213590",
          "precision": 3,
          "nai": "@@000000013"
        },
        "downvote_pool_percent": 2500,
        "smt_creation_fee": {
          "amount": "1000",
          "precision": 3,
          "nai": "@@000000013"
        }
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_dynamic_global_properties", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-dynamic-global-properties)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_dynamic_global_properties)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_feed_history
    purpose: Returns the history of price feed values.
    parameter_json: "{}"
    expected_response_json: |
      {
        "id": 0,
        "current_median_history": {
          "base": {
            "amount": "1",
            "precision": 3,
            "nai": "@@000000013"
          },
          "quote": {
            "amount": "1",
            "precision": 3,
            "nai": "@@000000021"
          }
        },
        "price_history": []
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_feed_history", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-current-median-history-price)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_median_price)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_hardfork_properties
    purpose: Returns the current properties about the blockchain's hardforks.
    parameter_json: "{}"
    expected_response_json: |
      {
        "id": 0,
        "processed_hardforks": [
          "2016-01-01T00:00:00",
          "2016-01-01T00:00:00",
          "2016-01-01T00:00:00",
          "2016-01-01T00:00:00",
          "2016-01-01T00:00:00",
          "2016-01-01T00:00:00",
          "2016-06-30T14:00:00",
          "2016-07-04T00:00:00",
          "2016-07-04T01:00:00",
          "2016-07-14T00:00:00",
          "2016-07-15T12:00:00",
          "2016-07-17T15:00:00",
          "2016-07-26T15:00:00",
          "2016-08-15T14:00:00",
          "2016-09-20T15:00:00",
          "2016-11-08T16:00:00",
          "2016-12-06T16:00:00",
          "2017-03-30T15:00:00",
          "2017-03-30T15:00:00",
          "2017-06-20T15:00:00",
          "2018-09-25T15:00:00",
          "2019-08-27T15:00:00",
          "2019-08-29T15:00:00",
          "2019-10-14T15:00:00"
        ],
        "last_hardfork": 23,
        "current_hardfork_version": "0.23.0",
        "next_hardfork": "0.23.0",
        "next_hardfork_time": "2019-10-14T15:00:00"
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_hardfork_properties", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-hardfork-version)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchaininstance.html#beem.blockchaininstance.BlockChainInstance.get_hardfork_properties)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_order_book
    purpose: Returns the order book.
    parameter_json: '{"limit":0,"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}}'
    expected_response_json: '{"asks":[],"bids":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_order_book", "params":{"limit":10,"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}},
      "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.get_order_book", "params":{"limit":50,"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}},
      "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-order-book)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_potential_signatures
    purpose: |
      This method will return the set of all public keys that could possibly
      sign for a given transaction.  This call can be used by wallets to filter
      their set of public keys to just the relevant subset prior to calling
      `get_required_signatures` to get the minimum subset.
    parameter_json: '{"trx":{"ref_block_num":0,"ref_block_prefix":0,"expiration":"1970-01-01T00:00:00","operations":[],"extensions":[],"signatures":[]}}'
    expected_response_json: '{"keys":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_potential_signatures", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]}},
      "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-potential-signatures)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-potential-signatures)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_required_signatures
    purpose: This API will take a partially signed transaction and a set of public
      keys that the owner has the ability to sign for and return the minimal subset
      of public keys that should add signatures to the transaction.
    parameter_json: '{"trx":{"ref_block_num":0,"ref_block_prefix":0,"expiration":"1970-01-01T00:00:00","operations":[],"extensions":[],"signatures":[]},"available_keys":[]}'
    expected_response_json: '{"keys":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_required_signatures", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]},"available_keys":[]},
      "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-required-signatures)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-required-signatures)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_reward_funds
    since: HF17
    purpose: Returns information about the current reward funds.
    parameter_json: "{}"
    expected_response_json: |
      {
        "funds": [
          {
            "id": 0,
            "name": "post",
            "reward_balance": {
              "amount": "189101553",
              "precision": 3,
              "nai": "@@000000021"
            },
            "recent_claims": "2723043883497",
            "last_update": "2019-12-14T23:10:42",
            "content_constant": "2000000000000",
            "percent_curation_rewards": 5000,
            "percent_content_rewards": 10000,
            "author_reward_curve": "convergent_linear",
            "curation_reward_curve": "convergent_square_root"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_reward_funds", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-reward-fund)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-reward-fund)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_transaction_hex
    purpose: Returns a hexdump of the serialized binary form of a transaction.
    parameter_json: '{"trx":{"ref_block_num":0,"ref_block_prefix":0,"expiration":"1970-01-01T00:00:00","operations":[],"extensions":[],"signatures":[]}}'
    expected_response_json: '{"hex":"00000000000000000000000000"}'
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_transaction_hex", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]}},
      "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-transaction-hex)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-transaction-hex)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_version
    since: HF20
    purpose: Returns the compile time versions of blockchain, steem, FC. Also returns
      the boot time version of the chain id (*may* be different from compile time
      value only when looking at a testnet)
    parameter_json: "{}"
    expected_response_json: |
      {
        "blockchain_version": "0.23.0",
        "hive_revision": "5cda10a488cf77f68549ec6d3a6be9af2ea9351b",
        "fc_revision": "5cda10a488cf77f68549ec6d3a6be9af2ea9351b",
        "chain_id": "beeab0de00000000000000000000000000000000000000000000000000000000"
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_version", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-version)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-version)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_witness_schedule
    purpose: Returns the current witness schedule.
    parameter_json: "{}"
    expected_response_json: |
      {
        "id": 0,
        "current_virtual_time": "55892543567970911424442556665819",
        "next_shuffle_block_num": 293580,
        "current_shuffled_witnesses": [
          "init-2",
          "init-11",
          "init-18",
          "init-16",
          "init-1",
          "init-10",
          "init-0",
          "init-14",
          "init-13",
          "gandalf",
          "init-3",
          "init-12",
          "init-5",
          "init-17",
          "initminer",
          "init-19",
          "init-4",
          "init-15",
          "drakos",
          "gtg",
          "init-7"
        ],
        "num_scheduled_witnesses": 21,
        "elected_weight": 1,
        "timeshare_weight": 5,
        "miner_weight": 1,
        "witness_pay_normalization_factor": 25,
        "median_props": {
          "account_creation_fee": {
            "amount": "0",
            "precision": 3,
            "nai": "@@000000021"
          },
          "maximum_block_size": 131072,
          "hbd_interest_rate": 1000,
          "account_subsidy_budget": 797,
          "account_subsidy_decay": 347321
        },
        "majority_version": "0.23.0",
        "max_voted_witnesses": 20,
        "max_miner_witnesses": 0,
        "max_runner_witnesses": 1,
        "hardfork_required_witnesses": 17,
        "account_subsidy_rd": {
          "resource_unit": 10000,
          "budget_per_time_unit": 797,
          "pool_eq": 157691079,
          "max_pool_size": 157691079,
          "decay_params": {
            "decay_per_time_unit": 347321,
            "decay_per_time_unit_denom_shift": 36
          },
          "min_decay": 0
        },
        "account_subsidy_witness_rd": {
          "resource_unit": 10000,
          "budget_per_time_unit": 996,
          "pool_eq": 9384019,
          "max_pool_size": 9384019,
          "decay_params": {
            "decay_per_time_unit": 7293741,
            "decay_per_time_unit_denom_shift": 36
          },
          "min_decay": 612
        },
        "min_witness_account_subsidy_decay": 0
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_witness_schedule", "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witness-schedule)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-witness-schedule)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_account_recovery_requests
    since: HF11
    purpose: |
      Returns a list of account recovery requests.  Parameters: `start:string`, `limit:int`, `order:string`

      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_account` - order by accont name
        * `by_expiration` - order by expiration

      | `account` (string) | `limit` (int) | `order` (string) | |
      |--------------------|-|
      | `"hiveio"` | 10 | `"by_account"` | Queries the recovery requests for account named "hiveio", ordered by account name. |
      | `["1960-01-01T00:00:00"]` | 10 | `"by_expiration"`| Queries the recovery requests for date, ordered by expiration. |
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_account_recovery_requests", "params": {"start":"", "limit":10, "order":"by_account"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_account_recovery_requests", "params": {"start":["1960-01-01T00:00:00"], "limit":10, "order":"by_expiration"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
      - '[beem](https://beem.readthedocs.io/en/latest/apidefinitions.html#get-recovery-request)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_accounts
    purpose: |
      List accounts ordered by specified key.  Parameters: `start:object`, `limit:int`, `order:string`

      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_name` - order by accont name
        * `by_proxy` - order by proxy
        * `by_next_vesting_withdrawal` - order by next next vesting withdrawal

      | `start` (object) | `limit` (int) | `order` (string) |
      |-------------------|-|
      | `""` | `10` | `"by_name"` Queries for up to 10 accounts starting at the beginning, sorted by name. |
      | `["", ""]` | `10` | `"by_proxy"` Queries for up to 10 accounts starting at the beginning, sorted by proxy. |
      | `["1960-01-01T00:00:00", ""]` | `10` | `"by_next_vesting_withdrawal"` Queries for up to 10 accounts starting at the beginning, sorted by next vesting withdrawl. |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_accounts' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "accounts": [
          {
            "id": 7184,
            "name": "a-0",
            "owner": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM5RrTRNDhhrMaA24SzSeE5AvmUcutb1q1VZp1imnT8p871s3UjN",
                  1
                ]
              ]
            },
            "active": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM5RrTRNDhhrMaA24SzSeE5AvmUcutb1q1VZp1imnT8p871s3UjN",
                  1
                ]
              ]
            },
            "posting": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM5RrTRNDhhrMaA24SzSeE5AvmUcutb1q1VZp1imnT8p871s3UjN",
                  1
                ]
              ]
            },
            "memo_key": "STM5RrTRNDhhrMaA24SzSeE5AvmUcutb1q1VZp1imnT8p871s3UjN",
            "json_metadata": "",
            "posting_json_metadata": "",
            "proxy": "",
            "last_owner_update": "1970-01-01T00:00:00",
            "last_account_update": "1970-01-01T00:00:00",
            "created": "2016-04-30T12:27:12",
            "mined": true,
            "recovery_account": "steem",
            "last_account_recovery": "1970-01-01T00:00:00",
            "reset_account": "null",
            "comment_count": 0,
            "lifetime_vote_count": 0,
            "post_count": 0,
            "can_vote": true,
            "voting_manabar": {
              "current_mana": 10000,
              "last_update_time": 1462019232
            },
            "downvote_manabar": {
              "current_mana": 389748,
              "last_update_time": 1570346718
            },
            "balance": {
              "amount": "1",
              "precision": 3,
              "nai": "@@000000021"
            },
            "savings_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "hbd_seconds": "0",
            "hbd_seconds_last_update": "1970-01-01T00:00:00",
            "hbd_last_interest_payment": "1970-01-01T00:00:00",
            "savings_hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "savings_hbd_seconds": "0",
            "savings_hbd_seconds_last_update": "1970-01-01T00:00:00",
            "savings_hbd_last_interest_payment": "1970-01-01T00:00:00",
            "savings_withdraw_requests": 0,
            "reward_hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "reward_hive_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "reward_vesting_balance": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "reward_vesting_hive": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "vesting_shares": {
              "amount": "13873020360",
              "precision": 6,
              "nai": "@@000000037"
            },
            "delegated_vesting_shares": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "received_vesting_shares": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "vesting_withdraw_rate": {
              "amount": "0",
              "precision": 6,
              "nai": "@@000000037"
            },
            "next_vesting_withdrawal": "1969-12-31T23:59:59",
            "withdrawn": 0,
            "to_withdraw": 0,
            "withdraw_routes": 0,
            "curation_rewards": 0,
            "posting_rewards": 0,
            "proxied_vsf_votes": [
              0,
              0,
              0,
              0
            ],
            "witnesses_voted_for": 0,
            "last_post": "1970-01-01T00:00:00",
            "last_root_post": "1970-01-01T00:00:00",
            "last_post_edit": "1970-01-01T00:00:00",
            "last_vote_time": "1970-01-01T00:00:00",
            "post_bandwidth": 0,
            "pending_claimed_accounts": 0,
            "is_smt": false
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_accounts", "params": {"start":"", "limit":10, "order":"by_name"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_accounts", "params": {"start":["", ""], "limit":10, "order":"by_proxy"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_accounts", "params": {"start":["1960-01-01T00:00:00", ""], "limit":10, "order":"by_next_vesting_withdrawal"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-accounts)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.get_all_accounts)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_change_recovery_account_requests
    since: HF11
    purpose: |
      Returns a list of recovery account change requests.  Parameters: `start:object`, `limit:int`, `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_account` - order by account
          * `start` is string of: `account`
        * `by_effective_date` - order by effective date
          * `start` is an array of two values: `timestamp`, `account`

      | `start` (object) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `""` | 10 | `"by_account"` | Queries first 10 requests, sort by account |
      | `["1960-01-01T00:00:00", ""]` | 10 | `"by_effective_date"` | Queries first 10 requests, sort by effective date |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_change_recovery_account_requests' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: | # TODO - recheck in HF23
      {
        "requests": [
          {
            "id": 99,
            "account_to_recover": "alice",
            "recovery_account": "bob",
            "effective_on": "1960-01-01T00:00:00"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_change_recovery_account_requests", "params": {"start":"alice", "limit":10, "order":"by_account"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_change_recovery_account_requests", "params": {"start":["1960-01-01T00:00:00",""], "limit":10, "order":"by_effective_date"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-recovery-request)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.blockchain.html#beem.blockchain.Blockchain.list_change_recovery_account_requests)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_comments
    purpose: |
      Returns all comments, starting with the specified options.  Parameters: `start:array`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_cashout_time` - order by cashout time
          * `start` is an array of one required value and two optional: `timestamp`, `author`, `permlink`
        * `by_permlink` - order by permlink
          * `start` is an array of two optional values: `author`, `permlink`
        * `by_root` - order by root
          * `start` is an array of two required values and two optional: `root_author`, `root_permlink`, `child_author`, `child_permlink`
        * `by_parent` - order by parent
          * `start` is an array of two required values and two optional: `parent_author`, `parent_permlink`, `child_author`, `child_permlink`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `["1970-01-01T00:00:00", "", ""]` | 10 | `"by_cashout_time"` | Queries first 10 comments, sort by cashout time |
      | `["", ""]` | 10 | `"by_permlink"` | Queries first 10 comments, sort by permlink |
      | `["hiveio","firstpost", "", ""]` | 10 | `"by_root"` | Queries next 10 comments starting at @hiveio/firstpost, sort by root |
      | `["hiveio","firstpost", "", ""]` | 10 | `"by_parent"` | Queries next 10 comments starting at @hiveio/firstpost, sort by parent |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_comments' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "comments": [
          {
            "id": 66710716,
            "author": "libert",
            "permlink": "libert-re-runicar-re-libert-libert-re-runicar-re-libert-libert-re-runicar-ykwyxgj6-20181128t063355338z",
            "category": "steem",
            "parent_author": "runicar",
            "parent_permlink": "re-libert-libert-re-runicar-re-libert-libert-re-runicar-ykwyxgj6-20181128t063100538z",
            "title": "",
            "body": "13\n\nPosted using [Partiko Android](https://hive.blog/@partiko-android)",
            "json_metadata": "{\"app\":\"partiko\"}",
            "last_update": "2018-11-28T06:33:57",
            "created": "2018-11-28T06:33:57",
            "active": "2018-11-28T06:34:30",
            "last_payout": "1970-01-01T00:00:00",
            "depth": 5,
            "children": 1,
            "net_rshares": 0,
            "abs_rshares": 0,
            "vote_rshares": 0,
            "children_abs_rshares": 0,
            "cashout_time": "2018-12-05T06:33:57",
            "max_cashout_time": "1969-12-31T23:59:59",
            "total_vote_weight": 0,
            "reward_weight": 10000,
            "total_payout_value": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "curator_payout_value": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "author_rewards": 0,
            "net_votes": 0,
            "root_author": "runicar",
            "root_permlink": "ykwyxgj6",
            "max_accepted_payout": {
              "amount": "1000000000",
              "precision": 3,
              "nai": "@@000000013"
            },
            "percent_hbd": 10000,
            "allow_replies": true,
            "allow_votes": true,
            "allow_curation_rewards": true,
            "beneficiaries": []
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["1970-01-01T00:00:00","",""], "limit":10, "order":"by_cashout_time"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["",""], "limit":10, "order":"by_permlink"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","firstpost","",""], "limit":10, "order":"by_root"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_comments", "params": {"start":["hiveio","firstpost","",""], "limit":10, "order":"by_parent"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-discussions-by-created)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.comment.html#module-beem.comment)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_decline_voting_rights_requests
    since: HF14
    purpose: |
      Returns a list of decline voting rights requests.  Parameters: `start:object`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_account` - order by account
          * `start` is a string: `account`
        * `by_effective_date` - order by effective date
          * `start` is an array of two values: `timestamp`, `account`

      | `start` (object) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `""` | 10 | `"by_account"` | Queries first 10 requests, sort by account |
      | `["1960-01-01T00:00:00", ""]` | 10 | `"by_effective_date"` | Queries first 10 requests, sort by effective date |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_decline_voting_rights_requests' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: '{"requests":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_decline_voting_rights_requests", "params": {"start":"", "limit":10, "order":"by_account"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_decline_voting_rights_requests", "params": {"start":["1970-01-01T00:00:00","",""], "limit":10, "order":"by_effective_date"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_escrows
    since: HF14
    purpose: |
      Returns a list of escrows.  Parameters: `start:array`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_from_id` - order by id
          * `start` is an array of two values: `account`, `escrow_id`
        * `by_ratification_deadline` - order by ratification deadline
          * `start` is an array of three values: `is_approved`, `timestamp`, `escrow_id`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `["alice", 99]` | 10 | `"by_from_id"` | Queries first 10 requests, sort by id |
      | `[true, "1960-01-01T00:00:00", 99]` | 10 | `"by_ratification_deadline"` | Queries first 10 requests, sort by ratification deadline |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_escrows' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: | # TODO - recheck in HF23
      {
        "escrows": [
          {
            "id": 158,
            "escrow_id": 1,
            "from": "addicttolife",
            "to": "fundition.help",
            "agent": "ongame",
            "ratification_deadline": "2018-11-23T17:31:26",
            "escrow_expiration": "2018-11-24T17:31:26",
            "hbd_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000013"
            },
            "hive_balance": {
              "amount": "4832",
              "precision": 3,
              "nai": "@@000000021"
            },
            "pending_fee": {
              "amount": "0",
              "precision": 3,
              "nai": "@@000000021"
            },
            "to_approved": true,
            "agent_approved": true,
            "disputed": false
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_escrows", "params": {"start":["",0], "limit":10, "order":"by_from_id"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_escrows", "params": {"start":[true, "1970-01-01T00:00:00", 0], "limit":10, "order":"by_ratification_deadline"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-escrow)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_escrow)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_limit_orders
    purpose: |
      Returns a list of limit orders.  Parameters: `start:array`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_price` - order by price
          * `start` is an array of two values: `price`, `order_type`
        * `by_account` - order by account
          * `start` is an array of two values: `account`, `order_id`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `[{"base": {"amount": "85405", "precision": 3, "nai": "@@000000021"}, "quote": {"amount": "17192", "precision": 3, "nai": "@@000000013"}}, 0]` | 10 | `"by_price"` | Queries first 10 requests, sort by price |
      | `["alice", 0]` | 10 | `"by_effective_date"` | Queries first 10 requests, sort by account |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_limit_orders' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: | # TODO - recheck in HF23
      {
        "orders": [
          {
            "id": 3155591,
            "created": "2018-12-05T06:34:21",
            "expiration": "2018-12-15T06:34:20",
            "seller": "teamsmooth-mm",
            "orderid": 2000,
            "for_sale": 197714,
            "sell_price": {
              "base": {
                "amount": "198513",
                "precision": 3,
                "nai": "@@000000021"
              },
              "quote": {
                "amount": "80000",
                "precision": 3,
                "nai": "@@000000013"
              }
            }
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_limit_orders", "params": {"start":[{"base":{"amount":"1000","precision":3,"nai":"@@000000021"},"quote":{"amount":"1","precision":3,"nai":"@@000000013"}},0], "limit":10, "order":"by_price"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_limit_orders", "params": {"start":["alice",0], "limit":10, "order":"by_account"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_owner_histories
    purpose: |
      Returns a list of owner authority histories.  Parameters: `start:array`, `limit:int`

      | `start` (array) | `limit` (int) | |
      |--------------------|-|-|
      | `["hiveio", "1970-01-01T00:00:00"]` | 10 | Queries the owner history starting from account named "hiveio" on "1970-01-01T00:00:00", limit 10 results. |
      | `["alice", "1970-01-01T00:00:00"]` | 10 | Queries the owner history starting from account named "alice", limit 10 results. |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_owner_histories' | relative_url }})
    parameter_json: '{"start":null,"limit":0}'
    expected_response_json: | # TODO - recheck in HF23
      {
        "owner_auths": [
          {
            "id": 129742,
            "account": "a-m",
            "previous_owner_authority": {
              "weight_threshold": 1,
              "account_auths": [],
              "key_auths": [
                [
                  "STM7J6gXoztfTscNzmzL11DFtTPCFCTeZzsFtFxsQrQw91KnN1YxQ",
                  1
                ]
              ]
            },
            "last_valid_time": "2018-11-24T02:35:27"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_owner_histories", "params": {"start":["hiveio","1970-01-01T00:00:00"], "limit":10}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_owner_histories", "params": {"start":["alice","1970-01-01T00:00:00"], "limit":10}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-owner-history)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_owner_history)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_savings_withdrawals
    since: HF14
    purpose: |
      Returns a list of savings withdrawls.  Parameters: `start:object`, `limit:int`, `order:string`

      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_from_id` - order by id
          * `start` is an array of two values: `account`, `request_id`
        * `by_complete_from_id` - order by id (complete)
          * `start` is an array of three values: `timestamp`, `account`, `request_id`
        * `by_to_complete` - order by complete
          * `start` is an array of three values: `account`, `timestamp`, `order_id`

      | `start` (object) | `limit` (int) | `order` (string) | |
      |--------------------|-|-|-|
      | `[0]` | `10` | `"by_from_id"` | Queries the savings withdraw for id. |
      | `["2018-12-07T16:54:03", "hiveio", 0]` | `10` | `"by_complete_from_id"` | Queries the savings withdraw for id (completed). |
      | `["", "1970-01-01T00:00:00", 0]` | `10` | `"by_to_complete"` | Queries the savings withdraw completed. |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_savings_withdrawals' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "withdrawals": [
          {
            "id": 120083,
            "from": "adafnnys",
            "to": "adafnnys",
            "memo": "",
            "request_id": 1543942411,
            "amount": {
              "amount": "2413",
              "precision": 3,
              "nai": "@@000000013"
            },
            "complete": "2018-12-07T16:54:03"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_savings_withdrawals", "params": {"start":[0], "limit":10, "order":"by_from_id"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_savings_withdrawals", "params": {"start":["2018-12-07T16:54:03", "hiveio", 0], "limit":10, "order":"by_complete_from_id"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_savings_withdrawals", "params": {"start":["", "1970-01-01T00:00:00", 0], "limit":10, "order":"by_to_complete"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-savings-withdraw-from)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_savings_withdrawals)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_hbd_conversion_requests
    purpose: |
      Returns the list of HBD conversion requests for an account.  Parameters: `start:array`, `limit:int`, `order:string`

      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_account` - order by accont name
          * `start` is an array of two values: `account`, `request_id`
        * `by_conversion_date` - order by conversion date
          * `start` is an array of two values: `timestamp`, `request_id`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |-------------------|-|-|-|
      | `["hiveio", 0]` | 10 | `by_account` | Queries a conversion request for hiveio, limit to 10 results, order by account name. |
      | `["2018-12-07T16:54:03", 0]` | 10 | `by_conversion_date`| Queries a conversion request from this date, limit to 10 results, order by conversion date. |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_hbd_conversion_requests' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: | # TODO - recheck in HF23
      {
        "requests": [
          {
            "id": 75677,
            "owner": "adenijiadeshina",
            "requestid": 3,
            "amount": {
              "amount": "311",
              "precision": 3,
              "nai": "@@000000013"
            },
            "conversion_date": "2018-12-06T20:42:42"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_hbd_conversion_requests", "params": {"start":["hiveio", 0], "limit":10, "order":"by_account"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_hbd_conversion_requests", "params": {"start":["2018-12-07T16:54:03", 0], "limit":10, "order":"by_conversion_date"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-conversion-requests)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_conversion_requests)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_vesting_delegation_expirations
    since: HF17
    purpose: |
      Returns a list of vesting delegation expirations.  Parameters: `start:array`, `limit:int`, `order:string`

      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_expiration` - order by expiration
          * `start` is an array of two values: `timestamp`, `expiration_id`
        * `by_account_expiration` - order by account expiration
          * `start` is an array of two values: `account`, `timestamp`, `expiration_id`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |-------------------|-|-|-|
      | `["1970-01-01T00:00:00", 0]` | 10 | `by_expiration` | Queries delegations, limit to 10 results, order by expiration. |
      | `["alice", "1970-01-01T00:00:00", 0]` | 10 | `by_account_expiration`| Queries delegation from this date, limit to 10 results, order by account expiration. |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_vesting_delegation_expirations' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "delegations": [
          {
            "id": 3076685,
            "delegator": "anonsteem",
            "vesting_shares": {
              "amount": "6050629930",
              "precision": 6,
              "nai": "@@000000037"
            },
            "expiration": "2018-12-05T07:07:15"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_vesting_delegation_expirations", "params": {"start":["1970-01-01T00:00:00",0], "limit":10, "order":"by_expiration"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_vesting_delegation_expirations", "params": {"start":["alice", "1970-01-01T00:00:00",0], "limit":10, "order":"by_account_expiration"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_expiring_vesting_delegations)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_vesting_delegations
    since: HF17
    purpose: |
      Returns a list of vesting delegations.  Parameters: `start:array`, `limit:int`, `order:string`

      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_delegation` - order by delegations
          * `start` is an array of two values: `delegator`, `delegatee`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |-------------------|-|-|-|
      | `["", ""]` | 10 | `by_delegation` | Queries delegations, limit to 10 results, order by delegations. |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_vesting_delegations' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "delegations": [
          {
            "id": 554317,
            "delegator": "a-0-0-0",
            "delegatee": "a-0-0",
            "vesting_shares": {
              "amount": "6141067173",
              "precision": 6,
              "nai": "@@000000037"
            },
            "min_delegation_time": "2018-01-24T22:23:54"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_vesting_delegations", "params": {"start":["",""], "limit":10, "order":"by_delegation"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-vesting-delegations)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.get_expiring_vesting_delegations)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_votes
    purpose: |
      Returns all votes, starting with the specified voter and/or author and permlink.  Parameters: `start:array`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
        * `voter` is optional
        * `author` and `permlink` are optional, but if one is blank, they must both be blank
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_comment_voter` - order by comment voter
          * `start` is an array of three optional values: `author`, `permlink`, `voter`
        * `by_voter_comment` - order by voter comment
          * `start` is an array of three optional values: `voter`, `author`, `permlink`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `["", "", ""]` | 10 | `"by_comment_voter"` | Queries first 10 votes, sort by comment voter |
      | `["", "", ""]` | 10 | `"by_voter_comment"` | Queries first 10 votes, sort by voter comment |
      | `["xeroc", "vanteem-config", ""]` | 10 | `"by_comment_voter"` | Queries next 10 votes starting on the post `@xeroc/vanteem-config`, sort by comment voter |
      | `["alice", "xeroc", "vanteem-config"]` | 10 | `"by_voter_comment"` | Queries next 10 votes starting at alice on the post `@xeroc/vanteem-config`, sort by voter comment |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_votes' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_comment_voter"}'
    expected_response_json: |
      {
        "votes": [
          {
            "id": 9,
            "voter": "dantheman",
            "author": "hiveio",
            "permlink": "firstpost",
            "weight": "32866333630",
            "rshares": 375241,
            "vote_percent": 100,
            "last_update": "2016-04-07T19:15:36",
            "num_changes": -1
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["", "", ""], "limit":10, "order":"by_comment_voter"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["", "", ""], "limit":10, "order":"by_voter_comment"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["", "", "hiveio"], "limit":10, "order":"by_comment_voter"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_votes", "params": {"start":["alice", "xeroc", "vanteem-config"], "limit":10, "order":"by_voter_comment"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-account-votes)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.vote.html#beem.vote.AccountVotes)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_withdraw_vesting_routes
    purpose: |
      Returns a list of vesting withdraw routes.  Parameters: `start:array`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_withdraw_route` - order by withdraw route
          * `start` is an array of two values: `from_account`, `to_account`
        * `by_destination` - order by destination
          * `start` is an array of two values: `to_account`, `route_id`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `["temp", ""]` | 10 | `"by_withdraw_route"` | Queries first 10 routes, sort by withdraw route |
      | `["", 0]` | 10 | `"by_destination"` | Queries first 10 routes, sort by destination |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_withdraw_vesting_routes' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "routes": [
          {
            "id": 39503,
            "from_account": "temperature",
            "to_account": "luckdiver",
            "percent": 10000,
            "auto_vest": false
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_withdraw_vesting_routes", "params": {"start":["temp",""], "limit":10, "order":"by_withdraw_route"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_withdraw_vesting_routes", "params": {"start":["",0], "limit":10, "order":"by_destination"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-withdraw-routes)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.withdraw_vesting)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_witness_votes
    purpose: |
      Returns a list of witness votes.  Parameters: `start:array`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_account_witness` - order by account witness
          * `start` is an array of two values: `account`, `witness`
        * `by_witness_account` - order by witness account
          * `start` is an array of two values: `witness`, `account`

      | `start` (array) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `["", ""]` | 10 | `"by_withdraw_route"` | Queries first 10 votes, sort by account witness |
      | `["", ""]` | 10 | `"by_destination"` | Queries first 10 votes, sort by witness account |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_witness_votes' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "votes": [
          {
            "id": 428961,
            "witness": "aggroed",
            "account": "a-0magic"
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_witness_votes", "params": {"start":["",""], "limit":10, "order":"by_account_witness"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_witness_votes", "params": {"start":["",""], "limit":10, "order":"by_witness_account"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses-by-vote)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.witness.html#beem.witness.WitnessesRankedByVote)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_witnesses
    purpose: |
      Returns the list of witnesses.  Parameters: `start:object`; `limit:int`; `order:string`

      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_name` - order by name
          * `start` is string value: `account`
        * `by_vote_name` - order by vote, name
          * `start` is an array of two values: `votes`, `account`
        * `by_schedule_time` - order by schedule time
          * `start` is an array of two values: `virtual_scheduled_time`, `account`

      | `start` (object) | `limit` (int) | `order` (string) | |
      |----------------------------|---------------|-|
      | `""` | 10 | `"by_name"` | Queries first 10 witnesses, sort by account name |
      | `[0, ""]` | 10 | `"by_vote_name"` | Queries first 10 witnesses, sort by votes |
      | `["473718186844702107410533306", "alice"]` | 10 | `"by_schedule_time"` | Queries first 10 witnesses, sort by schedule |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_witnesses' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name"}'
    expected_response_json: |
      {
        "witnesses": [
          {
            "id": 6950,
            "owner": "a-0",
            "created": "1970-01-01T00:00:00",
            "url": "",
            "votes": 0,
            "virtual_last_update": "0",
            "virtual_position": "0",
            "virtual_scheduled_time": "340282366920938463463374607431768211455",
            "total_missed": 0,
            "last_aslot": 1063323,
            "last_confirmed_block_num": 1040423,
            "pow_worker": 0,
            "signing_key": "STM5RrTRNDhhrMaA24SzSeE5AvmUcutb1q1VZp1imnT8p871s3UjN",
            "props": {
              "account_creation_fee": {
                "amount": "1",
                "precision": 3,
                "nai": "@@000000021"
              },
              "maximum_block_size": 131072,
              "hbd_interest_rate": 1000,
              "account_subsidy_budget": 797,
              "account_subsidy_decay": 347321
            },
            "hbd_exchange_rate": {
              "base": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000021"
              },
              "quote": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000021"
              }
            },
            "last_hbd_exchange_update": "1970-01-01T00:00:00",
            "last_work": "000000127cb0e335667f30100bc1a061175c2d789f808e0e9ac82ee70fa8e604",
            "running_version": "0.0.0",
            "hardfork_version_vote": "0.0.0",
            "hardfork_time_vote": "2016-03-24T16:00:00",
            "available_witness_account_subsidies": 0
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_witnesses", "params": {"start":"", "limit":10, "order":"by_name"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_witnesses", "params": {"start":[0,""], "limit":10, "order":"by_vote_name"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_witnesses", "params": {"start":["473718186844702107410533306","alice"], "limit":10, "order":"by_schedule_time"}, "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#get-witnesses-by-vote)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.witness.html#beem.witness.WitnessesRankedByVote)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.verify_account_authority
    disabled: true
    purpose: |
      **Not Implemented**
    parameter_json: '{"account":"","signers":[]}'
    expected_response_json: '{"valid":false}'
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.verify_account_authority", "params":{"account":"temp","signers":["STM8GC13uCZbP44HzMLV6zPZGwVQ8Nt4Kji8PapsPiNq1BK153XTX"]}, "id":1}'
    expected_curl_responses:
    - Missing Active Authority hiveio
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#verify-account-authority)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.account.html#beem.account.Account.verify_account_authority)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.verify_authority
    purpose: |
      Returns true if the transaction has all of the required signatures,
      otherwise throws an exception.
    parameter_json: '{"trx":{"ref_block_num":0,"ref_block_prefix":0,"expiration":"1970-01-01T00:00:00","operations":[],"extensions":[],"signatures":[]}}'
    expected_response_json: '{"valid":false}'
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.verify_authority", "params":{"trx":{"ref_block_num":1097,"ref_block_prefix":2181793527,"expiration":"2016-03-24T18:00:21","operations":[{"type":"pow_operation","value":{"worker_account":"cloop3","block_id":"00000449f7860b82b4fbe2f317c670e9f01d6d9a","nonce":3899,"work":{"worker":"STM7P5TDnA87Pj9T4mf6YHrhzjC1KbPZpNxLWCcVcHxNYXakpoT4F","input":"ae8e7c677119d22385f8c48026fee7aad7bba693bf788d7f27047f40b47738c0","signature":"1f38fe9a3f9989f84bd94aa5bbc88beaf09b67f825aa4450cf5105d111149ba6db560b582c7dbb026c7fc9c2eb5051815a72b17f6896ed59d3851d9a0f9883ca7a","work":"000e7b209d58f2e64b36e9bf12b999c6c7af168cc3fc41eb7f8a4bf796c174c3"},"props":{"account_creation_fee":{"amount":"100000","precision":3,"nai":"@@000000021"},"maximum_block_size":131072,"hbd_interest_rate":1000}}}],"extensions":[],"signatures":[]}},
      "id":1}'
    client_docs:
      - '[hive-js](https://gitlab.syncad.com/hive/hive-js/tree/master/doc#verify-authority)'
      - '[beem](https://beem.readthedocs.io/en/latest/beem.transactionbuilder.html#beem.transactionbuilder.TransactionBuilder.verify_authority)'
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.verify_signatures
    purpose: This is a general purpose API that checks signatures against accounts
      for an arbitrary sha256 hash using the existing authority structures.
    parameter_json: '{"hash":"0000000000000000000000000000000000000000000000000000000000000000","signatures":[],"required_owner":[],"required_active":[],"required_posting":[],"required_other":[]}'
    expected_response_json: '{"valid":false}'
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.verify_signatures", "params":{"hash": "0000000000000000000000000000000000000000000000000000000000000000", "signatures": [], "required_owner": [], "required_active": [], "required_posting": [], "required_other": []}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_proposals
    purpose: |
      Finds proposals by `proposal.id` (not `proposal.proposal_id`).
    parameter_json: '{"proposal_ids":[0]}'
    expected_response_json: |
      {"proposals":[{
        "id": 0,
        "proposal_id": "139925218365120",
        "creator": "alice",
        "receiver": "bob",
        "start_date": "2019-07-01T00:00:00",
        "end_date": "2019-08-01T23:59:59",
        "daily_pay": {
          "amount": "4800000",
          "precision": 3,
          "nai": "@@000000013"
        },
        "subject": "My Proposal",
        "permlink": "creator-proposal-permlink",
        "total_votes": "77351826710",
        "status": "active"
      }]}
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_proposals", "params":{"proposal_ids": [0]}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_proposal_votes
    purpose: |
      Returns all proposal votes, starting with the specified voter or `proposal.id`.  Parameters: `start:array`; `limit:int`; `order:string`; `order_direction:string`; `status:string`

      * `start` depends on `order` (see below)
        * `voter` - voter of the proposal  (account name string)
        * `proposal.id` - id the proposal (int)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_voter_proposal` - order by proposal voter
        * `by_proposal_voter` - order by `proposal.id`
      * `order_direction` can be one of:
        * `ascending`
        * `descending`
      * `status`
        * `all`
        * `inactive`
        * `active`
        * `expired`
        * `votable`

      | `start` (array) | `limit` (int) | `order` (string) | `order_direction` (string) | `status` (string) | |
      |-------------------|-|-|-|-|-|
      | `["alice"]` | 10 | `by_voter_proposal` | `ascending` | `active` | list 10 proposals with active status, ordered by voter, ascending |
      | `[10]` | 1000 | `by_proposal_voter` | `ascending` | `votable` | list 1000 votes on proposal 10, ordered by `proposal.id`, ascending |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_proposal_votes' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name","order_direction":"ascending","status":"all"}'
    expected_response_json: |
      {"proposal_votes":[{
        "id": 0,
        "voter": "charlie",
        "proposal": {
          "id": 0,
          "proposal_id": 0,
          "creator": "alice",
          "receiver": "bob",
          "start_date": "2019-07-01T00:00:00",
          "end_date": "2019-08-01T23:59:59",
          "daily_pay": {
            "amount": "4800000",
            "precision": 3,
            "nai": "@@000000013"
          },
          "subject": "My Proposal",
          "permlink": "creator-proposal-permlink",
          "total_votes": "77351826710",
          "status": "active"
        }
      }]}
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposal_votes", "params":{"start": [""], "limit": 10, "order": "by_voter_proposal", "order_direction": "ascending", "status": "active"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposal_votes", "params":{"start": [0], "limit": 10, "order": "by_proposal_voter", "order_direction": "ascending", "status": "active"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_proposals
    purpose: |
      Returns all proposals, starting with the specified creator or start date.  Parameters: `start:array`; `limit:int`; `order:string`; `order_direction:string`; `status:string`

      * `start` depends on `order` (see below)
        * `creator` - creator of the proposal  (account name string)
        * `start_date` - start date of the proposal (date string)
        * `end_date` - end date of the proposal (date string)
        * `total_votes` - total votes of the proposal (int)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_creator` - order by proposal creator
        * `by_start_date` - order by proposal start date
        * `by_end_date` - order by proposal end date
        * `by_total_votes` - order by proposal total votes
      * `order_direction` can be one of:
        * `ascending`
        * `descending`
      * `status`
        * `all`
        * `inactive`
        * `active`
        * `expired`
        * `votable`

      | `start` (array) | `limit` (int) | `order` (string) | `order_direction` (string) | `status` (string) | |
      |-------------------|-|-|-|-|-|
      | `[""]` | 10 | `by_creator` | `ascending` | `active` | list 10 proposals with active status, ordered by creator, ascending |
      | `["2019-08-07T16:54:03"]` | 1000 | `by_start_date` | `ascending` | `inactive` | list 1000 proposals with inactive status, ordered by start date, ascending, since 2019-08-07T16:54:03 |
      | `["a"]` | 1 | `by_creator` | `ascending` | `expired` | list 1 proposal with expired status, ordered by creator, ascending, by accounts starting with "a" |
      | `["alice"]` | 10 | `by_creator` | `ascending` | `all` | list 10 proposals with any status, ordered by creator, ascending, by alice |
      | `[""]` | 1000 | `by_creator` | `ascending` | `votable` | list 1000 votable proposals, ordered by creator, ascending |
      | `[10]` | 1000 | `by_total_votes` | `ascending` | `votable` | list 1000 votable proposals, ordered by creator, ascending, having at least 10 votes |

      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_proposals' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_name","order_direction":"ascending","status":"all"}'
    expected_response_json: |
      {"proposals":[
        {
          "id": 0,
          "proposal_id": "1103806595072",
          "creator": "alice",
          "receiver": "bob",
          "start_date": "2019-07-01T00:00:00",
          "end_date": "2019-08-01T23:59:59",
          "daily_pay": {
            "amount": "4800000",
            "precision": 3,
            "nai": "@@000000013"
          },
          "subject": "My Proposal",
          "permlink": "creator-proposal-permlink",
          "total_votes": "77351826710",
          "status": "active"
        }
      ]}
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": [""], "limit": 10, "order": "by_creator", "order_direction": "ascending", "status": "active"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": ["2019-08-07T16:54:03"], "limit": 1000, "order": "by_start_date", "order_direction": "ascending", "status": "inactive"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": ["a"], "limit": 1, "order": "by_creator", "order_direction": "ascending", "status": "expired"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": ["alice"], "limit": 10, "order": "by_creator", "order_direction": "ascending", "status": "all"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": [""], "limit": 1000, "order": "by_creator", "order_direction": "ascending", "status": "votable"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_proposals", "params":{"start": [10], "limit": 1000, "order": "by_total_votes", "order_direction": "ascending", "status": "votable"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_smt_contributions
    since: Mysterious Future
    purpose: |
      Find SMT contributions.  Contributions are needed to track individual contributions on an SMT during the ICO phase.
      
      See: [Token Units](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#token-units), [Vesting Contributions](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#vesting-contributions)
    parameter_json: '{"symbol_contributors":[]}'
    expected_response_json: | # TODO - recheck in HF23
      {"contributions": [
        {
          "id": 0,
          "symbol": {
            "nai": "@@422838704",
            "precision": 0
          },
          "contributor": "alice",
          "contribution_id": 0,
          "contribution": {
            "amount": "1000",
            "precision": 3,
            "nai": "@@000000021"
          }
        }
      ]}
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_smt_contributions", "params":{"symbol_contributors": []}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_smt_token_emissions
    since: Mysterious Future
    purpose: |
      Find SMT emissions.
      
      See: [Content Rewards](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#content-rewards), [Qualitative Discussion](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#qualitative-discussion)
    parameter_json: '{"asset_symbol":{"nai":"@@422838704","precision":0}}'
    expected_response_json: '{"token_emissions":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_smt_token_emissions", "params":{"asset_symbol":{"nai":"@@422838704","precision":0}}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.find_smt_tokens
    since: Mysterious Future
    purpose: |
      Find SMT.
      
      See: [Smart Media Tokens (SMTs)](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#smart-media-tokens-smts)
    parameter_json: '{"symbols":[],"ignore_precision":false}'
    expected_response_json: '{"tokens":[]}' # TODO - recheck in HF23
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.find_smt_tokens", "params":{"symbols":[],"ignore_precision":false}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.get_nai_pool
    since: Mysterious Future
    purpose: |
      Return an array of Numeric Asset Identifier (NAI) available to be used for new SMT to be created.
      
      See: [Numerical Asset Identifiers](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#numerical-asset-identifiers)
    parameter_json: "{}"
    expected_response_json: |
      {
        "nai_pool": [
          {
            "nai": "@@456173464",
            "precision": 0
          },
          {
            "nai": "@@483570188",
            "precision": 0
          },
          {
            "nai": "@@262899546",
            "precision": 0
          },
          {
            "nai": "@@651791780",
            "precision": 0
          },
          {
            "nai": "@@695960327",
            "precision": 0
          },
          {
            "nai": "@@337834146",
            "precision": 0
          },
          {
            "nai": "@@465565260",
            "precision": 0
          },
          {
            "nai": "@@528352042",
            "precision": 0
          },
          {
            "nai": "@@326426201",
            "precision": 0
          },
          {
            "nai": "@@960128623",
            "precision": 0
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.get_nai_pool", "params":{}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_smt_contributions
    since: Mysterious Future
    purpose: |
      List SMT contributions.  Contributions are needed to track individual contributions on an SMT during the ICO phase.  Parameters: `start:array`; `limit:int`; `order:string`
      
      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_symbol_id` - order by symbol
        * `by_symbol_contributor` - order by `symbol`, `contributor`, and `contribution_id`
      
      | `start` (array) | `limit` (int) | `order` (string) |
      |-------------------|-|-|-|-|-|
      | `[{"nai": "@@422838704", "precision": 0}, 0]` | 10 | `by_symbol_id` | list 10 contributions, ordered by symbol, id |
      | `[{"nai": "@@422838704", "precision": 0}, "alice", 0]` | 10 | `by_symbol_contributor` | list 10 contributions, ordered by symbol, contributor, id |
      
      See: [Token Units](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#token-units), [Vesting Contributions](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#vesting-contributions)
      
      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_smt_contributions' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_symbol_id"}'
    expected_response_json: | # TODO - recheck in HF23
      {"contributions": [
        {
          "id": 0,
          "symbol": {
            "nai": "@@422838704",
            "precision": 0
          },
          "contributor": "alice",
          "contribution_id": 0,
          "contribution": {
            "amount": "1000",
            "precision": 3,
            "nai": "@@000000021"
          }
        }
      ]}
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_smt_contributions", "params":{"start":[{"nai": "@@422838704", "precision": 0}, 0],"limit":10,"order":"by_symbol_id"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_smt_contributions", "params":{"start":[{"nai": "@@422838704", "precision": 0}, "alice", 0],"limit":10,"order":"by_symbol_contributor"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_smt_token_emissions
    since: Mysterious Future
    purpose: |
      List SMT emissions.  Parameters: `start:array`; `limit:int`; `order:string`
      
      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_symbol_time` - order by symbol and time
      
      | `start` (array) | `limit` (int) | `order` (string) |
      |-------------------|-|-|-|-|-|
      | `[{"nai": "@@422838704", "precision": 0}, "2019-08-07T16:54:03"]` | 10 | `by_symbol_time` | list 10 emissions, ordered by symbol, timestamp |
      
      See: [Content Rewards](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#content-rewards), [Qualitative Discussion](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#qualitative-discussion)
      
      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_smt_token_emissions' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_symbol_time"}'
    expected_response_json: |
      {
        "token_emissions": [
          {
            "id": 0,
            "symbol": {
              "nai": "@@918753685",
              "precision": 3
            },
            "schedule_time": "2019-12-12T01:00:00",
            "emissions_unit": {
              "token_unit": [
                [
                  "extratest4",
                  1
                ]
              ]
            },
            "interval_seconds": 21600,
            "interval_count": 1,
            "lep_time": "2019-12-12T01:01:00",
            "rep_time": "2019-12-12T01:02:00",
            "lep_abs_amount": 1000000,
            "rep_abs_amount": 1000000,
            "lep_rel_amount_numerator": 1,
            "rep_rel_amount_numerator": 1,
            "rel_amount_denom_bits": 1,
            "floor_emissions": false
          }
        ]
      }
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_smt_token_emissions", "params":{"start":[{"nai": "@@422838704", "precision": 0}, "2019-08-07T16:54:03"],"limit":10,"order":"by_symbol_time"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
  - api_method: database_api.list_smt_tokens
    since: Mysterious Future
    purpose: |
      List SMTs.  Parameters: `start:object`; `limit:int`; `order:string`
      
      * `start` depends on `order` (see below)
      * `limit` is up to 1000.
      * `order` can be one of:
        * `by_symbol` - order by symbol
        * `by_control_account` - order by control account
      
      | `start` (object) | `limit` (int) | `order` (string) |
      |-------------------|-|-|-|-|-|
      | `{"nai": "@@422838704", "precision": 0}` | 10 | `by_symbol` | list 10 tokens, ordered by symbol |
      | `""` | 10 | `by_control_account` | list 10 tokens, ordered by control account |
      | `["", {"nai": "@@422838704", "precision": 0}]` | 10 | `by_control_account` | list 10 tokens, ordered by control account, symbol |
      
      See: [Smart Media Tokens (SMTs)](https://github.com/steemit/smt-whitepaper/blob/master/smt-manual/manual.md#smart-media-tokens-smts)
      
      Also see: [Paginated API Methods]({{ '/tutorials-recipes/paginated-api-methods.html#database_apilist_smt_tokens' | relative_url }})
    parameter_json: '{"start":null,"limit":0,"order":"by_symbol"}'
    expected_response_json: |
      {"tokens": [
        {
          "token": {
            "id": 177,
            "liquid_symbol": {
              "nai": "@@423920664",
              "precision": 3
            },
            "control_account": "petanque",
            "phase": "setup",
            "current_supply": 0,
            "total_vesting_fund_smt": 0,
            "total_vesting_shares": 0,
            "total_vesting_fund_ballast": 0,
            "total_vesting_shares_ballast": 0,
            "pending_rewarded_vesting_shares": 0,
            "pending_rewarded_vesting_smt": 0,
            "reward_balance": {
              "amount": "0",
              "precision": 3,
              "nai": "@@423920664"
            },
            "recent_claims": "0",
            "last_reward_update": "1970-01-01T00:00:00",
            "last_virtual_emission_time": "1970-01-01T00:00:00",
            "allow_downvotes": true,
            "market_maker": {
              "hive_balance": {
                "amount": "0",
                "precision": 3,
                "nai": "@@000000021"
              },
              "token_balance": {
                "amount": "0",
                "precision": 3,
                "nai": "@@423920664"
              },
              "reserve_ratio": 0
            },
            "allow_voting": true,
            "cashout_window_seconds": 3600,
            "reverse_auction_window_seconds": 900,
            "vote_regeneration_period_seconds": 432000,
            "votes_per_regeneration_period": 50,
            "content_constant": "2000000000000",
            "percent_curation_rewards": 2500,
            "author_reward_curve": "linear",
            "curation_reward_curve": "square_root",
            "max_supply": 0
          }
        }
      ]}
    curl_examples:
    - '{"jsonrpc":"2.0", "method":"database_api.list_smt_tokens", "params":{"start":{"nai": "@@422838704", "precision": 0},"limit":10,"order":"by_symbol"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_smt_tokens", "params":{"start":"","limit":10,"order":"by_control_account"}, "id":1}'
    - '{"jsonrpc":"2.0", "method":"database_api.list_smt_tokens", "params":{"start":["", {"nai": "@@422838704", "precision": 0}],"limit":10,"order":"by_control_account"}, "id":1}'
    client_docs:
      - '[hive-ruby](https://www.rubydoc.info/gems/hive-ruby/Hive/Api)'
