Network endpoints are used when first connecting to a Rosetta endpoint to determine which network and sub-networks are supported, the current status (the most recent processed block) of the network, and any other useful metadata the server wants to provide (ex: version).

/network/list

Get List of Available Networks

This endpoint returns a list of NetworkIdentifiers that the Rosetta server supports.

Request

Schema

{
    "metadata": {}
}

Response

200 - OK

Schema

{
    "network_identifiers": [
        {
            "blockchain": "bitcoin",
            "network": "mainnet",
            "sub_network_identifier": {
                "network": "shard 1",
                "metadata": {
                    "producer": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5"
                }
            }
        }
    ]
}

500 - Error

Schema

{
    "code": 12,
    "message": "Invalid account format",
    "description": "This error is returned when the requested AccountIdentifier is improperly formatted.",
    "retriable": true,
    "details": {
        "address": "0x1dcc4de8dec75d7aab85b567b6",
        "error": "not base64"
    }
}

/network/options

Get 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

Schema

{
    "network_identifier": {
        "blockchain": "bitcoin",
        "network": "mainnet",
        "sub_network_identifier": {
            "network": "shard 1",
            "metadata": {
                "producer": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5"
            }
        }
    },
    "metadata": {}
}

Response

200 - OK

Schema

{
    "version": {
        "rosetta_version": "1.2.5",
        "node_version": "1.0.2",
        "middleware_version": "0.2.7",
        "metadata": {}
    },
    "allow": {
        "operation_statuses": [
            {
                "status": "SUCCESS",
                "successful": true
            }
        ],
        "operation_types": [
            "TRANSFER"
        ],
        "errors": [
            {
                "code": 12,
                "message": "Invalid account format",
                "description": "This error is returned when the requested AccountIdentifier is improperly formatted.",
                "retriable": true,
                "details": {
                    "address": "0x1dcc4de8dec75d7aab85b567b6",
                    "error": "not base64"
                }
            }
        ],
        "historical_balance_lookup": true,
        "timestamp_start_index": 0,
        "call_methods": [
            "eth_call"
        ],
        "balance_exemptions": [
            {
                "sub_account_address": "staking",
                "currency": {
                    "symbol": "BTC",
                    "decimals": 8,
                    "metadata": {
                        "Issuer": "Satoshi"
                    }
                },
                "exemption_type": "greater_or_equal"
            }
        ],
        "mempool_coins": true
    }
}

500 - Error

Schema

{
    "code": 12,
    "message": "Invalid account format",
    "description": "This error is returned when the requested AccountIdentifier is improperly formatted.",
    "retriable": true,
    "details": {
        "address": "0x1dcc4de8dec75d7aab85b567b6",
        "error": "not base64"
    }
}

/network/status

Get Network Status

This endpoint returns the current status of the network requested. Any NetworkIdentifier returned by /network/list should be accessible here.

Request

Schema

{
    "network_identifier": {
        "blockchain": "bitcoin",
        "network": "mainnet",
        "sub_network_identifier": {
            "network": "shard 1",
            "metadata": {
                "producer": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5"
            }
        }
    },
    "metadata": {}
}

Response

200 - OK

Schema

{
    "current_block_identifier": {
        "index": 1123941,
        "hash": "0x1f2cc6c5027d2f201a5453ad1119574d2aed23a392654742ac3c78783c071f85"
    },
    "current_block_timestamp": 1582833600000,
    "genesis_block_identifier": {
        "index": 1123941,
        "hash": "0x1f2cc6c5027d2f201a5453ad1119574d2aed23a392654742ac3c78783c071f85"
    },
    "oldest_block_identifier": {
        "index": 1123941,
        "hash": "0x1f2cc6c5027d2f201a5453ad1119574d2aed23a392654742ac3c78783c071f85"
    },
    "sync_status": {
        "current_index": 100,
        "target_index": 150,
        "stage": "header sync",
        "synced": true
    },
    "peers": [
        {
            "peer_id": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5",
            "metadata": {}
        }
    ]
}

500 - Error

Schema

{
    "code": 12,
    "message": "Invalid account format",
    "description": "This error is returned when the requested AccountIdentifier is improperly formatted.",
    "retriable": true,
    "details": {
        "address": "0x1dcc4de8dec75d7aab85b567b6",
        "error": "not base64"
    }
}