# FAQ

| Canister ID                 |         |
| --------------------------- | ------- |
| wth3l-tiaaa-aaaap-aa5uq-cai | prod 1  |
| xywyw-qiaaa-aaaad-aaema-cai | prod 2  |
| tysiw-qaaaa-aaaak-qcikq-cai | staging |

<details>

<summary>How I can top up balance? </summary>

* Go to <https://app.orally.network/sybil>
* Choose your canister
* Select allowed token in "Top Up" modal
* Make deposit

On the same page you can your current balance on current canister: ![](/files/mDu0GWJ371qANZkzlh6W)

</details>

<details>

<summary>How I can generate API key? </summary>

* Go to <https://app.orally.network/sybil>
* Press the button "Generate API key"
* Copy & Use it OR construct your request in example module

</details>

<details>

<summary>How to get TWAP price from DEX pool?</summary>

To request data, use method **get\_dxr\_data\_batch.**&#x20;

To request data with proof, use method  **get\_dxr\_data\_batch\_with\_proof.**

Query Fields:&#x20;

* chain\_id - on which chain your DEX pool is located
* pool\_addresses\[] - array of targeted pool addresses
* dex\_type - the type of DEX (e.g. `UniswapV2`)
* bytes (boolean) - to receive bytes response for easy to pass and use on-chain
* api\_key - your API key
* cache\_ttl - cache time interval in seconds (responsible for universal cache, if you want to optimize time and cost between different user or services)

Example:&#x20;

```javascript
const SYBIL_CANISTER = 'wth3l-tiaaa-aaaap-aa5uq-cai';
// or xywyw-qiaaa-aaaad-aaema-cai
// or tysiw-qaaaa-aaaak-qcikq-cai (staging)

const parameters = {
  chain_id: 1,
  pool_addresses: ['0x811cfb75567a252bea23474e2ccd1286927bfe0a'],
  dex_type: 'UniswapV2',
  bytes: true,
  cache_ttl: 30,
  api_key: '11e7b24ec171a41d73309f8c0c665667',
}

const query = queryString.stringify(parameters, {arrayFormat: 'bracket'});

const fetchBatchData = () => {
    fetch(`https://${SYBIL_CANISTER}.raw.icp0.io/get_dxr_data_batch?${query}`)
      .then(response => response.json())
      .then(data => console.log(data));
};

const fetchDataWithProof = () => {
    fetch(`https://${SYBIL_CANISTER}.raw.icp0.io/get_dxr_data_batch_with_proof?${query}`)
      .then(response => response.json())
      .then(data => console.log(data));
};
```

</details>

<details>

<summary>How much it costs?</summary>

For requesting dex data with proof (if 1 ICP = 8T cycles && 1 ICP = $12):&#x20;

* Price = ±27B cycles = ±0,003375 ICP = ±$0,04
* Time = 6 sec (fetching data) + 5 sec (generating proof) = 11 sec

For requesting data without proof (if 1 ICP = 8T cycles && 1 ICP = $12):

* Price = ±687M cycles = ±0,000085875 ICP = ±$0,001
* Time = 6 sec

</details>


---

# 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.orally.network/faq.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.
