# Becoming a Subscriber

Subscribers on Stork are the consumers of Stork aggregated data.

### Who Can Become a Subscriber?

Anyone who has a need for high-frequency, high-accuracy, low-latency data can become a Subscriber. Storks data feeds are measurably faster, more efficient and more stable than contemporary oracles.

### Using Data Off-Chain

Using data off-chain is as simple as listening to the [Aggregator](https://docs.stork.network/introduction/how-it-works#aggregators) [websocket](https://docs.stork.network/api-reference/websocket-api) or hitting its [REST API](https://docs.stork.network/api-reference/rest-api), and then using the update data in your application. Both APIs respond with JSON messages that have a top level field called `data` with the following structure:

<pre class="language-json"><code class="lang-json"><strong>{
</strong><strong>    "data": [
</strong>        "&#x3C;plain-text asset id>": {
            "timestamp": &#x3C;unix timestamp>,
            "asset_id": "&#x3C;plain-text asset id>,
            "signature_type": "&#x3C;signature type - evm | stark>",
            "trigger": "&#x3C;trigger>",
            "price": "&#x3C;price multiplied by 10^18>",
            "stork_signed_price": {
                "public_key": "&#x3C;stork aggregator public key>",
                "encoded_asset_id": "&#x3C;keccak256 encoded asset id>",
                "price": "&#x3C;price multiplied by 10^18>",
                "timestamped_signature": {
                    "signature": {
                        "r": "&#x3C;r component of ECDSA secp256k1 signature>",
                        "s": "&#x3C;r component of ECDSA secp256k1 signature>",
                        "v": "&#x3C;s component of ECDSA secp256k1 signature"
                    },
                    "timestamp": &#x3C;unix timestamp>,
                    "msg_hash": "keccak256 message hash"
                },
                "publisher_merkle_root": "&#x3C;publisher merkle root",
                "calculation_alg": {
                    "type": "&#x3C;aggregation function name>",
                    "version": "&#x3C;aggregation function version",
                    "checksum": "&#x3C;checksum for aggregation function>"
                }
            },
            "signed_prices": [
                {
                    "publisher_key": "&#x3C;publishers public key>",
                    "external_asset_id": "&#x3C;plain-text asset id",
                    "signature_type": "&#x3C;signature type - evm | stark>",
                    "price": "price multiplied by 10^18",
                    "timestamped_signature": {
                        "signature": {
                            "r": "&#x3C;r component of ECDSA secp256k1 signature>",
                            "s": "&#x3C;r component of ECDSA secp256k1 signature>",
                            "v": "&#x3C;s component of ECDSA secp256k1 signature"
                        },
                        "timestamp": &#x3C;unix timestamp>,
                        "msg_hash": "&#x3C;keccak256 message hash>"
                    }
                },
                ...
            ]
        }
    }
}
</code></pre>

## Using Data On-Chain

For information on putting data on-chain and accessing it from your smart-contract, see the following sections:

{% content-ref url="putting-data-on-chain" %}
[putting-data-on-chain](https://docs.stork.network/getting-started/putting-data-on-chain)
{% endcontent-ref %}

{% content-ref url="accessing-data-on-chain" %}
[accessing-data-on-chain](https://docs.stork.network/getting-started/accessing-data-on-chain)
{% endcontent-ref %}

{% hint style="info" %}
Interested in becoming a Subscriber? Contact Stork Labs! Email: <sales@stork.network> Twitter: [@StorkOracle](https://x.com/StorkOracle)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stork.network/getting-started/becoming-a-subscriber.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
