# Checking a timestamp's status

Status Changes

Because of the timestamping interval and blockchain network times, we cannot exactly predict when a timestamp is going to be tamper-proof. Instead of polling the API for seed or timestamp status updates, you should rather subscribe to status change notifications when submitting the timestamp.

# Check the seed status

For querying the status of hashes for a certain blockchain it is best to use the provided seed_id field that is part of the submission response. This approach is recommended when polling for a status change and should be preferred to an individual query for a hash status. Even more so when multiple hashes were transmitted in a certain time frame since these are assigned to the same seed depending on the timing.

Saving load using Seed Polling

Querying a timestamp's status based on its seed_id instead of its hash reduces the HTTP connection overhead and allows you to query the status of multiple hashes at once.

This is especially handy when you perform a high volume of timestamp submissions.

# Request

GET /v4/timestamp/status/seed/{seed_id}

curl -X GET "http://api.originstamp.com/v4/timestamp/status/seed/f98a61e8-22bd-4ea5-ab9e-02723ff78c40"\
     -H "Authorization: YOUR_API_KEY"

# Response

The default timestamp object is returned that contains all necessary timestamp information.

{
  "data": {
    {
      "seed_id": "string",
      "currency_id": 0,
      "private_key": "string",
      "submit_status": 0,
      "timestamp": 0,
      "transaction": "string"
    }
  },
  "error_code": 0,
  "error_message": "string"
}

# seed_id

The seed ID you queried. Redudant with the {seed_id} route parameter.

# currency_id

  • 0: Bitcoin
  • 1: Ethereum
  • 100: Südkurier

# private_key

The private key represents the top hash in the Merkle Tree. Synonyms: root hash, private key, top hash, seed hash.

# submit_status

  • 0: Hashes contained in this seed were only submitted to OriginStamp and added to the timestamping queue. They will be timestamped with the next timestamp submission.
  • 1: Hashes contained in this seed were submitted to the blockchain network, but are not yet included.
  • 2: Hashes contained in this seed are included in the latest block.
  • 3: Hashes contained in this seed have a tamper-proof timestamp.

# timestamp

The tamper-proof timestamp of all hashes contained in this seed. It is formatted as follows:

[ms] since 1.1.1970 (unix epoch), timezone: UTC

# transaction

The transaction ID of the timestamp, e.g., a transaction hash in Bitcoin. Only available if seed has a submit_status >= 2.

# Check the hash status

This interface returns status information of a certain hash.

WARNING

If the status of several hashes is to be checked, it is preferable to use the before mentioned seed status interface as it reduces the required requests for multiple hashes and can be tailored to a selected blockchain.

# Request

GET /v4/timestamp/{hash_string}

curl -X GET "http://api.originstamp.com/v4/timestamp/2c5d36be542f8f0e7345d77753a5d7ea61a443ba6a9a86bb060332ad56dba38e"\
     -H "Authorization: YOUR_API_KEY"

# Response

The default timestamp object is returned that contains all necessary timestamp information. OriginStamp submits the hash to more than one blockchain, which is the reason why there is a timestamp data array for each active currency.

{
  "data": {
    "comment": "string",
    "created": false,
    "date_created": 0,
    "hash_string": "string",
    "timestamps": [
      {
        "seed_id": "string",
        "currency_id": 0,
        "private_key": "string",
        "submit_status": 0,
        "timestamp": 0,
        "transaction": "string"
      }
    ]
  },
  "error_code": 0,
  "error_message": "string"
}
# comment

The timestamp's comment, if any.

# created

Field is true if it is a novel hash. If the flag is false, the hash was already submitted before.

# date_created

The time when your hash was submitted to OriginStamp. The date is returned in milliseconds since 1.1.1970 (unix epoch), timezone: UTC. This is not considered as a tamper-proof timestamp.

# hash_string

The hash string that you check for. Redundant with the {hash_string} route parameter.

# timestamps

Timestamps that exist for this hash, no matter whether they are tamper-proof yet. Can contain zero (no timestamp yet) to an arbitrary number of items.

# seed_id

ID of associated seed which can be used to request separate seed information and check the verification status of the hash.

# currency_id
  • 0: Bitcoin
  • 1: Ethereum
  • 100: Südkurier
# private_key

The private key represents the top hash in the Merkle Tree. Synonyms: root hash, private key, top hash, seed hash.

# submit_status
  • 0: Hash is only submitted to OriginStamp and added to the timestamping queue. It will be timestamped with the next timestamp submission.
  • 1: Hash is submitted to the blockchain network, but not included.
  • 2: Hash is included into the latest block.
  • 3: Hash has a tamper-proof timestamp.
# timestamp

The tamper-proof timestamp. It is formatted as follows:

[ms] since 1.1.1970 (unix epoch), timezone: UTC
# transaction

The transaction ID of the timestamp, e.g., a transaction hash in Bitcoin. Only available if hash has a submit_status >= 2.