---
title: "getNetworkOptions"
method: POST
path: "/network/options"
tags: ["Cardano - Rosetta"]
---

# getNetworkOptions

`POST /network/options`

This endpoint returns the version information and allowed
network-specific types for a NetworkIdentifier. Any
NetworkIdentifier returned by /network/list should be accessible here.

Because options are retrievable in the context of a NetworkIdentifier,
it is possible to define unique options for each network.

## Request body

- NetworkRequest — A NetworkRequest is utilized to retrieve some data specific exclusively to a NetworkIdentifier.
  - `network_identifier` NetworkIdentifier, required — The network_identifier specifies which network a particular object is associated with.
    - `blockchain` string, required
    - `network` string, required — If a blockchain has a specific chain-id or network identifier, it should go in this field. It is up to the client to determine which network-specific identifier is mainnet or testnet.
    - `sub_network_identifier` SubNetworkIdentifier — In blockchains with sharded state, the SubNetworkIdentifier is required to query some object on a specific shard. This identifier is optional for all non-sharded blockchains.
      - `network` string, required
      - `metadata` object
  - `metadata` object

## Response `200`

Expected response to a valid request

- NetworkOptionsResponse — NetworkOptionsResponse contains information about the versioning of the node and the allowed operation statuses, operation types, and errors.
  - `version` Version, required — The Version object is utilized to inform the client of the versions of different components of the Rosetta implementation.
    - `rosetta_version` string, required — The rosetta_version is the version of the Rosetta interface the implementation adheres to. This can be useful for clients looking to reliably parse responses.
    - `node_version` string, required — The node_version is the canonical version of the node runtime. This can help clients manage deployments.
    - `middleware_version` string — When a middleware server is used to adhere to the Rosetta interface, it should return its version here. This can help clients manage deployments.
    - `metadata` object — Any other information that may be useful about versioning of dependent services should be returned here.
  - `allow` Allow, required — Allow specifies supported Operation status, Operation types, and all possible error statuses. This Allow object is used by clients to validate the correctness of a Rosetta Server implementation. It is expected that these clients will error if they receive some response that contains any of the above information that is not specified here.
    - `operation_statuses` OperationStatus[], required — All Operation.Status this implementation supports. Any status that is returned during parsing that is not listed here will cause client validation to error.
      - `status` string, required — The status is the network-specific status of the operation.
      - `successful` boolean, required — An Operation is considered successful if the Operation.Amount should affect the Operation.Account. Some blockchains (like Bitcoin) only include successful operations in blocks but other blockchains (like Ethereum) include unsuccessful operations that incur a fee. To reconcile the computed balance from the stream of Operations, it is critical to understand which Operation.Status indicate an Operation is successful and should affect an Account.
    - `operation_types` string[], required — All Operation.Type this implementation supports. Any type that is returned during parsing that is not listed here will cause client validation to error.
    - `errors` Error[], required — All Errors that this implementation could return. Any error that is returned during parsing that is not listed here will cause client validation to error.
      - `errorCode` string, required — payment.amount.notNull
      - `message` string, required — Payment amount must be greater than 0.
      - `statusCode` number — 403
    - `historical_balance_lookup` boolean, required — Any Rosetta implementation that supports querying the balance of an account at any height in the past should set this to true.
    - `timestamp_start_index` integer — If populated, `timestamp_start_index` indicates the first block index where block timestamps are considered valid (i.e. all blocks less than `timestamp_start_index` could have invalid timestamps). This is useful when the genesis block (or blocks) of a network have timestamp 0. If not populated, block timestamps are assumed to be valid for all available blocks.
    - `call_methods` string[], required — All methods that are supported by the /call endpoint. Communicating which parameters should be provided to /call is the responsibility of the implementer (this is en lieu of defining an entire type system and requiring the implementer to define that in Allow).
    - `balance_exemptions` BalanceExemption[], required — BalanceExemptions is an array of BalanceExemption indicating which account balances could change without a corresponding Operation. BalanceExemptions should be used sparingly as they may introduce significant complexity for integrators that attempt to reconcile all account balance changes. If your implementation relies on any BalanceExemptions, you MUST implement historical balance lookup (the ability to query an account balance at any BlockIdentifier).
      - `sub_account_address` string — SubAccountAddress is the SubAccountIdentifier.Address that the BalanceExemption applies to (regardless of the value of SubAccountIdentifier.Metadata).
      - `currency` RpcCurrency — Currency is composed of a canonical Symbol and Decimals. This Decimals value is used to convert an Amount.Value from atomic units (Satoshis) to standard units (Bitcoins).
        - `symbol` string, required — Canonical symbol associated with a currency.
        - `decimals` integer, required — Number of decimal places in the standard unit representation of the amount. For example, BTC has 8 decimals. Note that it is not possible to represent the value of some currency in atomic units that is not base 10.
        - `metadata` object — Any additional information related to the currency itself. For example, it would be useful to populate this object with the contract address of an ERC-20 token.
      - `exemption_type` 'greater_or_equal' | 'less_or_equal' | 'dynamic' — ExemptionType is used to indicate if the live balance for an account subject to a BalanceExemption could increase above, decrease below, or equal the computed balance. * greater_or_equal: The live balance may increase above or equal the computed balance. This typically occurs with staking rewards that accrue on each block. * less_or_equal: The live balance may decrease below or equal the computed balance. This typically occurs as balance moves from locked to spendable on a vesting account. * dynamic: The live balance may increase above, decrease below, or equal the computed balance. This typically occurs with tokens that have a dynamic supply.
    - `mempool_coins` boolean, required — Any Rosetta implementation that can update an AccountIdentifier's unspent coins based on the contents of the mempool should populate this field as true. If false, requests to `/account/coins` that set `include_mempool` as true will be automatically rejected.
    - `block_hash_case` 'upper_case' | 'lower_case' | 'case_sensitive' | 'null', nullable — Case specifies the expected case for strings and hashes.
    - `transaction_hash_case` 'upper_case' | 'lower_case' | 'case_sensitive' | 'null', nullable — Case specifies the expected case for strings and hashes.

## Other responses

- `500` — unexpected error

---

[API](https://skmtc.net/tatum/apis/blockchain-data.md) · [All operations](https://skmtc.net/tatum/apis/blockchain-data/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tatum/blockchain-data/versions/8622ee4b8fae/schema)
