# Hive Developer Portal

### Plugin & API List

Run a `steemd` node with your preferred APIs.

This is a list of the plugins, and their associated dependencies, required to enable specific apis.

When setting up the config file `steemd` will enable the `chain`, `p2p`, and `webserver` plugins regardless of other dependencies.

## API’s with their respective plugin dependencies

- `account_by_key_api`
- `account_history_api`
- `block_api`
- `condenser_api`
- `database_api`
- `debug_node_api`
- `follow_api`
- `market_history_api`
- `network_broadcast_api`
- `rc_api`
- `reputation_api`
- `rewards_api`
- `tags_api`
- `transaction_status_api`
- `witness_api`

### `account_by_key_api`

- Purpose: Used to lookup account information based on a public key.
- Requires: `account_by_key`
- Exposed Methods: `account_by_key_api.*`

Example in `chain.ini`:

    plugin = account_by_key
    plugin = account_by_key_api

### `account_history_api`

- Purpose: Used to lookup account history information.
- Requires: `account_history` or `account_history_rocksdb`
- Exposed Methods: `account_history_api.*`

Note, the `account_history_rocksdb` plugin does not provide support for `condenser_api.get_transaction`.

Example in `chain.ini`:

    plugin = account_history
    plugin = account_history_api

… or …

    plugin = account_history_rocksdb
    plugin = account_history_api

### `block_api`

- Purpose: Used to query values related to the block plugin.
- Requires: No additional
- Exposed Methods: `block_api.*`

Example in `chain.ini`:

    plugin = block_api

### `condenser_api`

- Purpose: Intended to help ease the transition to AppBase. It is recommended that apps transition away from this API.
- Requires: `database_api` (automatic)
- Optional:
  - `account_by_key`
  - `tags`
  - `follow` or `reputation` (e.g.: if fronting hivemind)
  - `market_history`
  - `account_history`
- Exposed Methods: `condenser_api.*`

Example in `chain.ini`:

    plugin = account_by_key tags follow market_history account_history
    plugin = condenser_api

…or …

    plugin = account_by_key tags reputation market_history account_history
    plugin = condenser_api

### `database_api`

- Purpose: Used to query information about accounts, transactions, and blockchain data.
- Requires: No additional
- Exposed Methods: `database_api.*`

Example in `chain.ini`:

    plugin = database_api

### `debug_node_api`

- Purpose: Allows all sorts of creative “what-if” experiments with the chain.
- Requires: `debug_node`
- Exposed Methods: `debug_node_api.*`

Example in `chain.ini`:

    plugin = debug_node
    plugin = debug_node_api

### `follow_api`

- Purpose: Used to lookup information related to reputation and account follow operations.
- Requires: `follow` (automatic)
- Exposed Methods: `follow_api.*`

Example in `chain.ini`:

    plugin = follow_api

### `market_history_api`

- Purpose: Used to lookup market history information. Can return the market and trade history of the internal STEEM:SBD market. The order book, recent trades and the market volume is made available through this plugin.
- Requires: `market_history` (automatic)
- Exposed Methods: `market_history_api.*`

Example in `chain.ini`:

    plugin = market_history_api

### `network_broadcast_api`

- Purpose: Used to broadcast transactions and blocks.
- Requires: `rc` (automatic)
- Exposed Methods: `network_broadcast_api.*`

Example in `chain.ini`:

    plugin = network_broadcast_api

### `rc_api`

- Purpose: Managing of resources - curation rewards, vesting shares, etc.
- Requires:
  - `rc` (automatic)
  - `database_api` (automatic)
- Exposed Methods: `rc_api.*`

Example in `chain.ini`:

    plugin = rc_api

### `reputation_api`

- Purpose: Manage account reputation (relevant to voting on content).
- Requires: `reputation` (automatic)
- Exposed Methods: `reputation_api.*`

Example in `chain.ini`:

    plugin = reputation_api

### `rewards_api`

- Purpose: Used to simulate curve payouts.
- Requires: No additional
- Exposed Methods: `rewards_api.*`

Note: The `rewards_api` plugin is for testing purposes only, do not run in production.

Example in `chain.ini`:

    plugin = rewards_api

### `tags_api`

- Purpose: Used to lookup information about tags, posts, and discussions as well as votes.
- Requires: `tags` (automatic)
- Exposed Methods: `tags_api.*`

Example in `chain.ini`:

    plugin = tags_api

### `transaction_status_api`

- Purpose: Evaluates a transaction status after calling `condenser_api.broadcast_transaction`.
- Requires:
  - `transaction_status` (automatic)
  - `database_api` (automatic)
- Exposed Methods: `transaction_status_api.*`

Example in `chain.ini`:

    plugin = transaction_status_api

### `witness_api` (deprecated)

- Purpose: The witness plugin contains all of the bandwidth logic (replaced by `rc`). Can access the available bandwidth of an account and current reserve ratio.
- Requires: `rc` (automatic)
- Exposed Methods: `witness_api.*`

Example in `chain.ini`:

    plugin = witness_api