POST
/
block
Get a Block
curl --request POST \
  --url https://example.com/block \
  --header 'Content-Type: application/json' \
  --data '{
  "network_identifier": {
    "blockchain": "bitcoin",
    "network": "mainnet",
    "sub_network_identifier": {
      "network": "shard 1",
      "metadata": {
        "producer": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5"
      }
    }
  },
  "block_identifier": {
    "index": 1123941,
    "hash": "0x1f2cc6c5027d2f201a5453ad1119574d2aed23a392654742ac3c78783c071f85"
  }
}'
{
  "block": {
    "block_identifier": {
      "index": 1123941,
      "hash": "0x1f2cc6c5027d2f201a5453ad1119574d2aed23a392654742ac3c78783c071f85"
    },
    "parent_block_identifier": {
      "index": 1123941,
      "hash": "0x1f2cc6c5027d2f201a5453ad1119574d2aed23a392654742ac3c78783c071f85"
    },
    "timestamp": 1582833600000,
    "transactions": [
      {
        "transaction_identifier": {
          "hash": "0x2f23fd8cca835af21f3ac375bac601f97ead75f2e79143bdf71fe2c4be043e8f"
        },
        "operations": [
          {
            "operation_identifier": {
              "index": 5,
              "network_index": 0
            },
            "related_operations": [
              {
                "index": 1
              },
              {
                "index": 2
              }
            ],
            "type": "Transfer",
            "status": "Reverted",
            "account": {
              "address": "0x3a065000ab4183c6bf581dc1e55a605455fc6d61",
              "sub_account": {
                "address": "0x6b175474e89094c44da98b954eedeac495271d0f",
                "metadata": {}
              },
              "metadata": {}
            },
            "amount": {
              "value": "1238089899992",
              "currency": {
                "symbol": "BTC",
                "decimals": 8,
                "metadata": {
                  "Issuer": "Satoshi"
                }
              },
              "metadata": {}
            },
            "coin_change": {
              "coin_identifier": {
                "identifier": "0x2f23fd8cca835af21f3ac375bac601f97ead75f2e79143bdf71fe2c4be043e8f:1"
              },
              "coin_action": "coin_created"
            },
            "metadata": {
              "asm": "304502201fd8abb11443f8b1b9a04e0495e0543d05611473a790c8939f089d073f90509a022100f4677825136605d732e2126d09a2d38c20c75946cd9fc239c0497e84c634e3dd01 03301a8259a12e35694cc22ebc45fee635f4993064190f6ce96e7fb19a03bb6be2",
              "hex": "48304502201fd8abb11443f8b1b9a04e0495e0543d05611473a790c8939f089d073f90509a022100f4677825136605d732e2126d09a2d38c20c75946cd9fc239c0497e84c634e3dd012103301a8259a12e35694cc22ebc45fee635f4993064190f6ce96e7fb19a03bb6be2"
            }
          }
        ],
        "related_transactions": [
          {
            "network_identifier": {
              "blockchain": "bitcoin",
              "network": "mainnet",
              "sub_network_identifier": {
                "network": "shard 1",
                "metadata": {
                  "producer": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5"
                }
              }
            },
            "transaction_identifier": {
              "hash": "0x2f23fd8cca835af21f3ac375bac601f97ead75f2e79143bdf71fe2c4be043e8f"
            },
            "direction": "forward"
          }
        ],
        "metadata": {
          "size": 12378,
          "lockTime": 1582272577
        }
      }
    ],
    "metadata": {
      "transactions_root": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
      "difficulty": "123891724987128947"
    }
  },
  "other_transactions": [
    {
      "hash": "0x2f23fd8cca835af21f3ac375bac601f97ead75f2e79143bdf71fe2c4be043e8f"
    }
  ]
}

Body

application/json

A BlockRequest is utilized to make a block request on the /block endpoint.

network_identifier
object
required

The network_identifier specifies which network a particular object is associated with.

block_identifier
object
required

When fetching data by BlockIdentifier, it may be possible to only specify the index or hash. If neither property is specified, it is assumed that the client is making a request at the current block.

Response

Expected response to a valid request

A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions). As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indices can be skipped). If a query for one of these omitted indices is made, the response should not include a Block object. It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the PartialBlockIdentifier of a block after an omitted block should reference the last non-omitted block.

block
object

Blocks contain an array of Transactions that occurred at a particular BlockIdentifier. A hard requirement for blocks returned by Rosetta implementations is that they MUST be inalterable: once a client has requested and received a block identified by a specific BlockIdentifier, all future calls for that same BlockIdentifier must return the same block contents.

other_transactions
object[]

Some blockchains may require additional transactions to be fetched that weren't returned in the block response (ex: block only returns transaction hashes). For blockchains with a lot of transactions in each block, this can be very useful as consumers can concurrently fetch all transactions returned.