From a81588de89f000da1e22f1e9c62ed779353a824f Mon Sep 17 00:00:00 2001 From: kihahu Date: Mon, 7 Sep 2026 15:48:06 +0300 Subject: [PATCH 1/3] docs: document planned mainnet archive RPC endpoints DEVOP-776. Add the query-only archive hostname contract. DNS is not published yet; do not treat these URLs as live. --- pages/devs/consumers/rpc-data-access.mdx | 232 +++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 pages/devs/consumers/rpc-data-access.mdx diff --git a/pages/devs/consumers/rpc-data-access.mdx b/pages/devs/consumers/rpc-data-access.mdx new file mode 100644 index 0000000..2b0ecb3 --- /dev/null +++ b/pages/devs/consumers/rpc-data-access.mdx @@ -0,0 +1,232 @@ +import { Callout } from 'nextra/components' + +# Accessing Allora Data Through RPC + +In addition to the [Allora API](/devs/consumers/allora-api-endpoint), you can also access Allora network data directly through RPC (Remote Procedure Call) endpoints. This provides an alternative method for consuming outputs from the network, especially useful for applications that need to interact directly with the blockchain. + +## Prerequisites + +- [`allorad` CLI](/devs/get-started/cli) installed +- Access to an Allora RPC node + +For a complete list of available RPC endpoints and commands, see the [allorad reference section](/devs/reference/allorad). + +## RPC URL and Chain ID + +Each network uses a different RPC URL and Chain ID which are needed to specify which network to run commands on when using specific commands on allorad. + +### Testnet +- **RPC URLs**: + - `https://rpc.ankr.com/allora_testnet` + - `https://allora-rpc.testnet.allora.network/` +- **Chain ID**: `allora-testnet-1` + +### Mainnet archive (source contract; not live) + +Public archive hostnames are declared in Flux/OpenTofu. **DNS is not published** and live HTTP status codes are **TBD until rollout**. Do not expect these URLs to resolve or return 200 yet. + +HTTPS on **443** (do not use backend ports 26657 / 1317 / 9090). gRPC is TLS/SNI on 443. + +| Surface | URL | +|---------|-----| +| RPC | `https://rpc.archive.allora.network` | +| LCD / REST | `https://api.archive.allora.network` | +| gRPC | `grpc.archive.allora.network` | + +Full-history, **query-only**. Intended for historical lookups (`GET /block?height=…`, `GET /cosmos/tx/v1beta1/txs/`), not tip-of-chain tx broadcast. + +**Denied** (explicit deny or default-deny in `cosmoguard-archive-rules`): `/tx_search`, `/block_search`, `/broadcast_tx_*`, `/check_tx`, `/dial_*`, `/unsafe_*`, `/websocket`, `/subscribe`, JSON-RPC websocket (`webSocketEnabled: false`), LCD `POST` (broadcast/simulate) and bare `/txs`, gRPC write methods such as `BroadcastTx`. Observed deny status codes: **TBD until rollout**. + +**Rate limits** (per-IP, from `cosmoguard-archive-rules`; retry with backoff on limit): + +| Surface | Paths / methods | rate | burst | +|---------|-----------------|------|-------| +| RPC GET | `/`, `/status`, `/health`, `/abci_info` | 50/s | 100 | +| RPC GET | `/block`, `/block_results`, `/commit`, `/header` | 20/s | 40 | +| RPC GET | `/genesis`, `/genesis_chunked` | 5/s | 10 | +| RPC GET | `/tx`, `/block_by_hash`, `/header_by_hash` | 20/s | 40 | +| RPC GET | `/validators`, `/consensus_params` | 10/s | 20 | +| LCD GET | `/cosmos/tx/v1beta1/txs/**` and module query prefixes | 20/s | 40 | +| gRPC | allow-listed Query/Get* only | no rule-level rateLimit | — | + +Expected rate-limit response after rollout: cosmoguard JSON (not HTML); observed code **TBD** (contract intends 429). + +Planned examples (not executed this session): + +```bash +curl https://rpc.archive.allora.network/block?height=1 +curl https://api.archive.allora.network/cosmos/base/tendermint/v1beta1/blocks/1 +grpcurl grpc.archive.allora.network:443 cosmos.base.tendermint.v1beta1.Service/GetLatestBlock +``` + +## RPC Endpoints for Consumers + +The following RPC methods are particularly useful for consumers looking to access inference data from the Allora network: + +### Get Latest Available Network Inferences + +This is the primary method for consumers to retrieve the latest network inference for a specific topic. + +```bash +allorad q emissions latest-available-network-inferences [topic_id] --node +``` + +**Parameters:** +- `topic_id`: The identifier of the topic for which you want to retrieve the latest available network inference. +- `RPC_URL`: The URL of the RPC node you're connecting to. + +**Example:** +```bash +allorad q emissions latest-available-network-inferences 1 --node https://allora-rpc.testnet.allora.network/ +``` + +**Response:** +The response includes the network inference data, including the combined value, individual worker values, confidence intervals, and more. Here's a simplified example: + +```json +{ + "network_inferences": { + "topic_id": "1", + "combined_value": "2605.533879185080648394998043723508", + "inferer_values": [ + { + "worker": "allo102ksu3kx57w0mrhkg37kvymmk2lgxqcan6u7yn", + "value": "2611.01109296" + }, + { + "worker": "allo10q6hm2yae8slpvvgmxqrcasa30gu5qfysp4wkz", + "value": "2661.505295679922" + } + ], + "naive_value": "2605.533879185080648394998043723508" + }, + "confidence_interval_values": [ + "2492.1675618299669694181830608795809", + "2543.9249467952655499150756965734158", + "2611.033130351115229549044053766836", + "2662.29523395638446190095015123294396", + "2682.827040221238" + ] +} +``` + + +The `combined_value` field represents the optimized inference that takes both naive submissions and forecast data into account. This is typically the value you want to use for most consumer applications. + + +## Using RPC in Your Applications + +### JavaScript/TypeScript Example + +Here's an example of how to query the Allora network using RPC in a JavaScript/TypeScript application: + +```typescript +import axios from 'axios'; + +async function getLatestInference(topicId: number, rpcUrl: string) { + try { + const response = await axios.post(rpcUrl, { + jsonrpc: '2.0', + id: 1, + method: 'abci_query', + params: { + path: `/allora.emissions.v1.Query/GetLatestAvailableNetworkInferences`, + data: Buffer.from(JSON.stringify({ topic_id: topicId })).toString('hex'), + prove: false + } + }); + + // Parse the response + const result = response.data.result; + if (result.response.code !== 0) { + throw new Error(`Query failed with code ${result.response.code}`); + } + + // Decode the response value + const decodedValue = Buffer.from(result.response.value, 'base64').toString(); + const parsedValue = JSON.parse(decodedValue); + + return parsedValue; + } catch (error) { + console.error('Error querying Allora RPC:', error); + throw error; + } +} + +// Example usage +getLatestInference(1, 'https://allora-rpc.testnet.allora.network/') + .then(data => { + console.log('Latest inference:', data.network_inferences.combined_value); + console.log('Confidence intervals:', data.confidence_interval_values); + }) + .catch(error => { + console.error('Failed to get inference:', error); + }); +``` + +### Python Example + +Here's an example of how to query the Allora network using RPC in a Python application: + +```python +import requests +import json +import base64 + +def get_latest_inference(topic_id, rpc_url): + try: + payload = { + "jsonrpc": "2.0", + "id": 1, + "method": "abci_query", + "params": { + "path": "/allora.emissions.v1.Query/GetLatestAvailableNetworkInferences", + "data": bytes(json.dumps({"topic_id": topic_id}), 'utf-8').hex(), + "prove": False + } + } + + response = requests.post(rpc_url, json=payload) + response.raise_for_status() + + result = response.json()["result"] + if result["response"]["code"] != 0: + raise Exception(f"Query failed with code {result['response']['code']}") + + # Decode the response value + decoded_value = base64.b64decode(result["response"]["value"]).decode('utf-8') + parsed_value = json.loads(decoded_value) + + return parsed_value + except Exception as e: + print(f"Error querying Allora RPC: {e}") + raise + +# Example usage +try: + data = get_latest_inference(1, "https://allora-rpc.testnet.allora.network/") + print(f"Latest inference: {data['network_inferences']['combined_value']}") + print(f"Confidence intervals: {data['confidence_interval_values']}") +except Exception as e: + print(f"Failed to get inference: {e}") +``` + +## RPC vs API: When to Use Each + +### Use RPC When: + +- You need direct blockchain access without intermediaries +- You want to query historical data that might not be available through the API +- You're building applications that need to interact with multiple aspects of the Allora network +- You want to avoid potential rate limiting on the API + +### Use the API When: + +- You need a simpler interface with standardized authentication +- You want to avoid the complexity of RPC calls +- You're primarily interested in the latest inference data +- You need additional features provided by the API that aren't available through RPC + + +RPC nodes may have their own rate limiting or access restrictions. Make sure to implement proper error handling and retry logic in your applications. + From b45ed7bafeef8a284f0a0e8e4baac1f83ac93e46 Mon Sep 17 00:00:00 2001 From: kihahu Date: Tue, 8 Sep 2026 18:29:03 +0300 Subject: [PATCH 2/3] docs: publish the mainnet archive endpoints Adds archive_rpc, archive_lcd and archive_grpc to the mainnet entry of the networks manifest, with field notes, and surfaces them in the networks table. The presentation allow-list in NetworksTable and its asserted mirror in scripts/lib/docsPages.js both have to know about a key before it renders. Testnet deliberately gets no archive fields: it has no public archive endpoint yet, and when it lands its history will start at block 600001 rather than genesis. The networks reference page says so, so nobody reads "archive" as "full history" for both networks. Replaces the unreachable pages/devs/consumers/rpc-data-access.mdx with content on the live /consume/rpc-grpc page. That file had no frontmatter, so it failed the frontmatter check and broke the build, and next.config.js permanently redirects its route anyway, so it could never render. The redirect stays for old inbound links. The useful material carries over refreshed: the archive endpoint table, the query-only deny list, rate limits and the block-1 and tx-by-hash examples, minus the dead Ankr URL and the pre-v0.17.0 API shapes. --- components/NetworksTable.js | 3 + pages/consume/rpc-grpc.mdx | 47 ++++- pages/devs/consumers/rpc-data-access.mdx | 232 ----------------------- pages/reference/networks.mdx | 15 +- public/api/networks.json | 6 + public/llms-full.txt | 63 ++++++ public/raw/consume/rpc-grpc.md | 45 ++++- public/raw/reference/networks.md | 22 ++- scripts/lib/docsPages.js | 3 + 9 files changed, 200 insertions(+), 236 deletions(-) delete mode 100644 pages/devs/consumers/rpc-data-access.mdx diff --git a/components/NetworksTable.js b/components/NetworksTable.js index e43fc19..8a4e551 100644 --- a/components/NetworksTable.js +++ b/components/NetworksTable.js @@ -20,6 +20,9 @@ const FIELDS = [ { key: 'lcd', label: 'API (Cosmos LCD - REST)', code: true }, { key: 'explorer', label: 'Explorer', code: true }, { key: 'faucet', label: 'Faucet', code: true }, + { key: 'archive_rpc', label: 'Archive RPC (full history)', code: true }, + { key: 'archive_lcd', label: 'Archive API (Cosmos LCD - REST)', code: true }, + { key: 'archive_grpc', label: 'Archive gRPC', code: true }, ] const NETWORK_KEYS = Object.keys(manifest.networks) diff --git a/pages/consume/rpc-grpc.mdx b/pages/consume/rpc-grpc.mdx index 6e00884..2537c9f 100644 --- a/pages/consume/rpc-grpc.mdx +++ b/pages/consume/rpc-grpc.mdx @@ -2,7 +2,7 @@ title: Accessing Allora Data Through RPC description: In addition to the Allora API, you can also access Allora network data directly through RPC (Remote Procedure Call) endpoints. persona: App developer -verified_against: docs content as of 2026-07-16; examples live in snippets/ and are executed against the live testnet LCD (emissions/v10) by the nightly snippet run, last locally on 2026-08-02 +verified_against: docs content as of 2026-07-16; examples live in snippets/ and are executed against the live testnet LCD (emissions/v10) by the nightly snippet run, last locally on 2026-08-02; mainnet archive endpoints probed live on 2026-09-08 last_reviewed: 2026-08-19 --- @@ -31,6 +31,51 @@ Each network uses a different RPC URL and Chain ID which are needed to specify w See [Networks](/reference/networks) for the current endpoints of every network, including the versioned `emissions` namespace each one serves. +### Mainnet archive (full history) + +Mainnet also has a set of **archive** endpoints that serve the complete chain history from block 1, for integrators that need to look up an old block or transaction rather than follow the tip of the chain. The Chain ID is the same as the rest of mainnet: `allora-mainnet-1`. + +| Surface | URL | +|---------|-----| +| **RPC** (CometBFT) | | +| **LCD** (Cosmos SDK REST) | | +| **gRPC** | | + +All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. The hostnames `rpc.archive.mainnet.allora.network`, `api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` are aliases of the same three endpoints; either form works. + +These endpoints are **query-only**. Everything that writes to the chain, plus the indexer-backed search methods, is refused: + +- **RPC**: `broadcast_tx_*`, `check_tx`, `tx_search`, `block_search`, `dial_*`, `unsafe_*`, `/websocket` and `subscribe*` +- **LCD**: `POST`, which covers broadcast and simulate +- **gRPC**: write methods such as `BroadcastTx` + +To broadcast a transaction, or to search for one by event, use the regular mainnet endpoints in [Networks](/reference/networks) instead. + +**Examples.** Read the first block over RPC, and a transaction by hash over the LCD: + +```bash +curl 'https://rpc.archive.allora.network/block?height=1' +curl https://api.archive.allora.network/cosmos/tx/v1beta1/txs/ +``` + +The first request returns the genesis block of `allora-mainnet-1`, hash `3F3F8473FD7AE262A3D085D7F4D88F9F4295944A1432A9FFF88D9DAFC2E081C3` — a cheap way to confirm you are talking to a full archive rather than a pruned node, which answers `height 1 is not available` instead. + +Requests are rate limited per source IP; retry with backoff when you are limited: + +| Surface | Paths or methods | Rate | Burst | +|---------|------------------|------|-------| +| **RPC** | `/`, `/status`, `/health`, `/abci_info` | 50/s | 100 | +| **RPC** | `/block`, `/block_results`, `/commit`, `/header` | 20/s | 40 | +| **RPC** | `/tx`, `/block_by_hash`, `/header_by_hash` | 20/s | 40 | +| **RPC** | `/validators`, `/consensus_params` | 10/s | 20 | +| **RPC** | `/genesis`, `/genesis_chunked` | 5/s | 10 | +| **LCD** | `/cosmos/tx/v1beta1/txs/**` and the module query prefixes | 20/s | 40 | +| **gRPC** | allow-listed `Query`/`Get*` methods | no limit | — | + + +There is no public archive endpoint on testnet yet. When one lands, its history will begin at block 600,001 rather than at genesis, so it will not answer for earlier testnet blocks. + + ## RPC Endpoints for Consumers The following RPC methods are particularly useful for consumers looking to access inference data from the Allora network: diff --git a/pages/devs/consumers/rpc-data-access.mdx b/pages/devs/consumers/rpc-data-access.mdx deleted file mode 100644 index 2b0ecb3..0000000 --- a/pages/devs/consumers/rpc-data-access.mdx +++ /dev/null @@ -1,232 +0,0 @@ -import { Callout } from 'nextra/components' - -# Accessing Allora Data Through RPC - -In addition to the [Allora API](/devs/consumers/allora-api-endpoint), you can also access Allora network data directly through RPC (Remote Procedure Call) endpoints. This provides an alternative method for consuming outputs from the network, especially useful for applications that need to interact directly with the blockchain. - -## Prerequisites - -- [`allorad` CLI](/devs/get-started/cli) installed -- Access to an Allora RPC node - -For a complete list of available RPC endpoints and commands, see the [allorad reference section](/devs/reference/allorad). - -## RPC URL and Chain ID - -Each network uses a different RPC URL and Chain ID which are needed to specify which network to run commands on when using specific commands on allorad. - -### Testnet -- **RPC URLs**: - - `https://rpc.ankr.com/allora_testnet` - - `https://allora-rpc.testnet.allora.network/` -- **Chain ID**: `allora-testnet-1` - -### Mainnet archive (source contract; not live) - -Public archive hostnames are declared in Flux/OpenTofu. **DNS is not published** and live HTTP status codes are **TBD until rollout**. Do not expect these URLs to resolve or return 200 yet. - -HTTPS on **443** (do not use backend ports 26657 / 1317 / 9090). gRPC is TLS/SNI on 443. - -| Surface | URL | -|---------|-----| -| RPC | `https://rpc.archive.allora.network` | -| LCD / REST | `https://api.archive.allora.network` | -| gRPC | `grpc.archive.allora.network` | - -Full-history, **query-only**. Intended for historical lookups (`GET /block?height=…`, `GET /cosmos/tx/v1beta1/txs/`), not tip-of-chain tx broadcast. - -**Denied** (explicit deny or default-deny in `cosmoguard-archive-rules`): `/tx_search`, `/block_search`, `/broadcast_tx_*`, `/check_tx`, `/dial_*`, `/unsafe_*`, `/websocket`, `/subscribe`, JSON-RPC websocket (`webSocketEnabled: false`), LCD `POST` (broadcast/simulate) and bare `/txs`, gRPC write methods such as `BroadcastTx`. Observed deny status codes: **TBD until rollout**. - -**Rate limits** (per-IP, from `cosmoguard-archive-rules`; retry with backoff on limit): - -| Surface | Paths / methods | rate | burst | -|---------|-----------------|------|-------| -| RPC GET | `/`, `/status`, `/health`, `/abci_info` | 50/s | 100 | -| RPC GET | `/block`, `/block_results`, `/commit`, `/header` | 20/s | 40 | -| RPC GET | `/genesis`, `/genesis_chunked` | 5/s | 10 | -| RPC GET | `/tx`, `/block_by_hash`, `/header_by_hash` | 20/s | 40 | -| RPC GET | `/validators`, `/consensus_params` | 10/s | 20 | -| LCD GET | `/cosmos/tx/v1beta1/txs/**` and module query prefixes | 20/s | 40 | -| gRPC | allow-listed Query/Get* only | no rule-level rateLimit | — | - -Expected rate-limit response after rollout: cosmoguard JSON (not HTML); observed code **TBD** (contract intends 429). - -Planned examples (not executed this session): - -```bash -curl https://rpc.archive.allora.network/block?height=1 -curl https://api.archive.allora.network/cosmos/base/tendermint/v1beta1/blocks/1 -grpcurl grpc.archive.allora.network:443 cosmos.base.tendermint.v1beta1.Service/GetLatestBlock -``` - -## RPC Endpoints for Consumers - -The following RPC methods are particularly useful for consumers looking to access inference data from the Allora network: - -### Get Latest Available Network Inferences - -This is the primary method for consumers to retrieve the latest network inference for a specific topic. - -```bash -allorad q emissions latest-available-network-inferences [topic_id] --node -``` - -**Parameters:** -- `topic_id`: The identifier of the topic for which you want to retrieve the latest available network inference. -- `RPC_URL`: The URL of the RPC node you're connecting to. - -**Example:** -```bash -allorad q emissions latest-available-network-inferences 1 --node https://allora-rpc.testnet.allora.network/ -``` - -**Response:** -The response includes the network inference data, including the combined value, individual worker values, confidence intervals, and more. Here's a simplified example: - -```json -{ - "network_inferences": { - "topic_id": "1", - "combined_value": "2605.533879185080648394998043723508", - "inferer_values": [ - { - "worker": "allo102ksu3kx57w0mrhkg37kvymmk2lgxqcan6u7yn", - "value": "2611.01109296" - }, - { - "worker": "allo10q6hm2yae8slpvvgmxqrcasa30gu5qfysp4wkz", - "value": "2661.505295679922" - } - ], - "naive_value": "2605.533879185080648394998043723508" - }, - "confidence_interval_values": [ - "2492.1675618299669694181830608795809", - "2543.9249467952655499150756965734158", - "2611.033130351115229549044053766836", - "2662.29523395638446190095015123294396", - "2682.827040221238" - ] -} -``` - - -The `combined_value` field represents the optimized inference that takes both naive submissions and forecast data into account. This is typically the value you want to use for most consumer applications. - - -## Using RPC in Your Applications - -### JavaScript/TypeScript Example - -Here's an example of how to query the Allora network using RPC in a JavaScript/TypeScript application: - -```typescript -import axios from 'axios'; - -async function getLatestInference(topicId: number, rpcUrl: string) { - try { - const response = await axios.post(rpcUrl, { - jsonrpc: '2.0', - id: 1, - method: 'abci_query', - params: { - path: `/allora.emissions.v1.Query/GetLatestAvailableNetworkInferences`, - data: Buffer.from(JSON.stringify({ topic_id: topicId })).toString('hex'), - prove: false - } - }); - - // Parse the response - const result = response.data.result; - if (result.response.code !== 0) { - throw new Error(`Query failed with code ${result.response.code}`); - } - - // Decode the response value - const decodedValue = Buffer.from(result.response.value, 'base64').toString(); - const parsedValue = JSON.parse(decodedValue); - - return parsedValue; - } catch (error) { - console.error('Error querying Allora RPC:', error); - throw error; - } -} - -// Example usage -getLatestInference(1, 'https://allora-rpc.testnet.allora.network/') - .then(data => { - console.log('Latest inference:', data.network_inferences.combined_value); - console.log('Confidence intervals:', data.confidence_interval_values); - }) - .catch(error => { - console.error('Failed to get inference:', error); - }); -``` - -### Python Example - -Here's an example of how to query the Allora network using RPC in a Python application: - -```python -import requests -import json -import base64 - -def get_latest_inference(topic_id, rpc_url): - try: - payload = { - "jsonrpc": "2.0", - "id": 1, - "method": "abci_query", - "params": { - "path": "/allora.emissions.v1.Query/GetLatestAvailableNetworkInferences", - "data": bytes(json.dumps({"topic_id": topic_id}), 'utf-8').hex(), - "prove": False - } - } - - response = requests.post(rpc_url, json=payload) - response.raise_for_status() - - result = response.json()["result"] - if result["response"]["code"] != 0: - raise Exception(f"Query failed with code {result['response']['code']}") - - # Decode the response value - decoded_value = base64.b64decode(result["response"]["value"]).decode('utf-8') - parsed_value = json.loads(decoded_value) - - return parsed_value - except Exception as e: - print(f"Error querying Allora RPC: {e}") - raise - -# Example usage -try: - data = get_latest_inference(1, "https://allora-rpc.testnet.allora.network/") - print(f"Latest inference: {data['network_inferences']['combined_value']}") - print(f"Confidence intervals: {data['confidence_interval_values']}") -except Exception as e: - print(f"Failed to get inference: {e}") -``` - -## RPC vs API: When to Use Each - -### Use RPC When: - -- You need direct blockchain access without intermediaries -- You want to query historical data that might not be available through the API -- You're building applications that need to interact with multiple aspects of the Allora network -- You want to avoid potential rate limiting on the API - -### Use the API When: - -- You need a simpler interface with standardized authentication -- You want to avoid the complexity of RPC calls -- You're primarily interested in the latest inference data -- You need additional features provided by the API that aren't available through RPC - - -RPC nodes may have their own rate limiting or access restrictions. Make sure to implement proper error handling and retry logic in your applications. - diff --git a/pages/reference/networks.mdx b/pages/reference/networks.mdx index b0aa01f..2a695d2 100644 --- a/pages/reference/networks.mdx +++ b/pages/reference/networks.mdx @@ -2,7 +2,7 @@ title: Networks description: Chain IDs, endpoints, and the currently deployed allora-chain version for each Allora network. persona: Builder or operator -verified_against: live abci_info and cosmos/upgrade applied_plan on both networks, 2026-08-19 +verified_against: live abci_info and cosmos/upgrade applied_plan on both networks, 2026-08-19; mainnet archive rpc/api/grpc probed live 2026-09-08 last_reviewed: 2026-08-19 --- @@ -49,6 +49,19 @@ before they ship to mainnet. For wallet creation and faucet funding, see Mainnet has no faucet — fund addresses with ALLO yourself. +The **archive** endpoints serve the complete chain history from block 1 and are **query-only**: no +transaction broadcast, and no `tx_search` or `block_search`. They exist for historical lookups by +exchanges and integrators — for tip-of-chain reads and for submitting transactions, use the regular +mainnet endpoints above. The `rpc.archive.mainnet.allora.network`, +`api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` hostnames are aliases of +the same endpoints; see [RPC JSON Data Access](/consume/rpc-grpc) for the deny list and rate limits. + + +Testnet has no public archive endpoint yet, which is why the testnet column has no archive rows filled +in. When one lands, its history will begin at **block 600,001** rather than at genesis — it will not +answer for earlier testnet blocks. + + The `emissions` API version segment is per-network — always pick the one matching the network you are querying: on testnet and diff --git a/public/api/networks.json b/public/api/networks.json index afa48b0..baae796 100644 --- a/public/api/networks.json +++ b/public/api/networks.json @@ -8,6 +8,9 @@ "rpc": "CometBFT RPC JSON endpoint.", "grpc": "Cosmos SDK gRPC endpoint.", "lcd": "Cosmos SDK LCD (REST) endpoint.", + "archive_rpc": "Full-history CometBFT RPC endpoint, query-only: no tx broadcast, no tx_search/block_search. Omitted on networks that have none.", + "archive_lcd": "Full-history Cosmos SDK LCD (REST) endpoint, query-only: GET queries only, no broadcast or simulate. Omitted on networks that have none.", + "archive_grpc": "Full-history Cosmos SDK gRPC endpoint, query-only: allow-listed Query/Get methods. Omitted on networks that have none.", "explorer": "Block explorer for this network.", "faucet": "Testnet-only faucet for ALLO gas. Omitted on networks that have none.", "sandbox_topic_ids": "Topic IDs on this network that are no-penalty \"playground\" topics: no whitelist required, intended for a first worker submission. The chain exposes no sandbox flag, so this list is declared here and nowhere else — the topics job reads it to mark rows in /api/topics.json, and the docs render it from there.", @@ -38,6 +41,9 @@ "rpc": "https://allora-rpc.mainnet.allora.network/", "grpc": "https://allora-grpc.mainnet.allora.network/", "lcd": "https://allora-api.mainnet.allora.network/", + "archive_rpc": "https://rpc.archive.allora.network/", + "archive_lcd": "https://api.archive.allora.network/", + "archive_grpc": "https://grpc.archive.allora.network/", "explorer": "https://explorer.allora.network/", "sandbox_topic_ids": [], "abci_version": "HEAD-b6104eda6b2b009ea0714d2f724d53f4f0365fc0" diff --git a/public/llms-full.txt b/public/llms-full.txt index 959898c..74ada74 100644 --- a/public/llms-full.txt +++ b/public/llms-full.txt @@ -5247,6 +5247,49 @@ Each network uses a different RPC URL and Chain ID which are needed to specify w See [Networks](https://docs.allora.network/reference/networks) for the current endpoints of every network, including the versioned `emissions` namespace each one serves. +### Mainnet archive (full history) + +Mainnet also has a set of **archive** endpoints that serve the complete chain history from block 1, for integrators that need to look up an old block or transaction rather than follow the tip of the chain. The Chain ID is the same as the rest of mainnet: `allora-mainnet-1`. + +| Surface | URL | +|---------|-----| +| **RPC** (CometBFT) | `https://rpc.archive.allora.network/` | +| **LCD** (Cosmos SDK REST) | `https://api.archive.allora.network/` | +| **gRPC** | `https://grpc.archive.allora.network/` | + +All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. The hostnames `rpc.archive.mainnet.allora.network`, `api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` are aliases of the same three endpoints; either form works. + +These endpoints are **query-only**. Everything that writes to the chain, plus the indexer-backed search methods, is refused: + +- **RPC**: `broadcast_tx_*`, `check_tx`, `tx_search`, `block_search`, `dial_*`, `unsafe_*`, `/websocket` and `subscribe*` +- **LCD**: `POST`, which covers broadcast and simulate +- **gRPC**: write methods such as `BroadcastTx` + +To broadcast a transaction, or to search for one by event, use the regular mainnet endpoints in [Networks](https://docs.allora.network/reference/networks) instead. + +**Examples.** Read the first block over RPC, and a transaction by hash over the LCD: + +```bash +curl 'https://rpc.archive.allora.network/block?height=1' +curl https://api.archive.allora.network/cosmos/tx/v1beta1/txs/ +``` + +The first request returns the genesis block of `allora-mainnet-1`, hash `3F3F8473FD7AE262A3D085D7F4D88F9F4295944A1432A9FFF88D9DAFC2E081C3` — a cheap way to confirm you are talking to a full archive rather than a pruned node, which answers `height 1 is not available` instead. + +Requests are rate limited per source IP; retry with backoff when you are limited: + +| Surface | Paths or methods | Rate | Burst | +|---------|------------------|------|-------| +| **RPC** | `/`, `/status`, `/health`, `/abci_info` | 50/s | 100 | +| **RPC** | `/block`, `/block_results`, `/commit`, `/header` | 20/s | 40 | +| **RPC** | `/tx`, `/block_by_hash`, `/header_by_hash` | 20/s | 40 | +| **RPC** | `/validators`, `/consensus_params` | 10/s | 20 | +| **RPC** | `/genesis`, `/genesis_chunked` | 5/s | 10 | +| **LCD** | `/cosmos/tx/v1beta1/txs/**` and the module query prefixes | 20/s | 40 | +| **gRPC** | allow-listed `Query`/`Get*` methods | no limit | — | + +There is no public archive endpoint on testnet yet. When one lands, its history will begin at block 600,001 rather than at genesis, so it will not answer for earlier testnet blocks. + ## RPC Endpoints for Consumers The following RPC methods are particularly useful for consumers looking to access inference data from the Allora network: @@ -7665,6 +7708,9 @@ serves `emissions/v10`. | **API (Cosmos LCD - REST)** | `https://allora-api.testnet.allora.network/` | `https://allora-api.mainnet.allora.network/` | | **Explorer** | `https://explorer.testnet.allora.network/allora-testnet-1` | `https://explorer.allora.network/` | | **Faucet** | `https://faucet.testnet.allora.network/` | — | +| **Archive RPC (full history)** | — | `https://rpc.archive.allora.network/` | +| **Archive API (Cosmos LCD - REST)** | — | `https://api.archive.allora.network/` | +| **Archive gRPC** | — | `https://grpc.archive.allora.network/` | The tables on this page are rendered from a machine-readable manifest served at `/api/networks.json`. Agents and scripts can read the same chain IDs, endpoints, and versions from there instead of scraping @@ -7686,6 +7732,9 @@ and the [Release Notes](https://docs.allora.network/reference/release-notes). - **API (Cosmos LCD - REST)**: `https://allora-api.testnet.allora.network/` - **Explorer**: `https://explorer.testnet.allora.network/allora-testnet-1` - **Faucet**: `https://faucet.testnet.allora.network/` +- **Archive RPC (full history)**: — +- **Archive API (Cosmos LCD - REST)**: — +- **Archive gRPC**: — Use the testnet for building and testing integrations, running workers/reputers, and trying features before they ship to mainnet. For wallet creation and faucet funding, see @@ -7701,9 +7750,23 @@ before they ship to mainnet. For wallet creation and faucet funding, see - **API (Cosmos LCD - REST)**: `https://allora-api.mainnet.allora.network/` - **Explorer**: `https://explorer.allora.network/` - **Faucet**: — +- **Archive RPC (full history)**: `https://rpc.archive.allora.network/` +- **Archive API (Cosmos LCD - REST)**: `https://api.archive.allora.network/` +- **Archive gRPC**: `https://grpc.archive.allora.network/` Mainnet has no faucet — fund addresses with ALLO yourself. +The **archive** endpoints serve the complete chain history from block 1 and are **query-only**: no +transaction broadcast, and no `tx_search` or `block_search`. They exist for historical lookups by +exchanges and integrators — for tip-of-chain reads and for submitting transactions, use the regular +mainnet endpoints above. The `rpc.archive.mainnet.allora.network`, +`api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` hostnames are aliases of +the same endpoints; see [RPC JSON Data Access](https://docs.allora.network/consume/rpc-grpc) for the deny list and rate limits. + +Testnet has no public archive endpoint yet, which is why the testnet column has no archive rows filled +in. When one lands, its history will begin at **block 600,001** rather than at genesis — it will not +answer for earlier testnet blocks. + The `emissions` API version segment is per-network — always pick the one matching the network you are querying: `emissions/v10` on testnet and `emissions/v10` on mainnet. Since v0.17.0 these diff --git a/public/raw/consume/rpc-grpc.md b/public/raw/consume/rpc-grpc.md index c852967..19c1eb7 100644 --- a/public/raw/consume/rpc-grpc.md +++ b/public/raw/consume/rpc-grpc.md @@ -2,7 +2,7 @@ title: Accessing Allora Data Through RPC description: In addition to the Allora API, you can also access Allora network data directly through RPC (Remote Procedure Call) endpoints. persona: App developer -verified_against: docs content as of 2026-07-16; examples live in snippets/ and are executed against the live testnet LCD (emissions/v10) by the nightly snippet run, last locally on 2026-08-02 +verified_against: docs content as of 2026-07-16; examples live in snippets/ and are executed against the live testnet LCD (emissions/v10) by the nightly snippet run, last locally on 2026-08-02; mainnet archive endpoints probed live on 2026-09-08 last_reviewed: 2026-08-19 --- @@ -28,6 +28,49 @@ Each network uses a different RPC URL and Chain ID which are needed to specify w See [Networks](https://docs.allora.network/reference/networks) for the current endpoints of every network, including the versioned `emissions` namespace each one serves. +### Mainnet archive (full history) + +Mainnet also has a set of **archive** endpoints that serve the complete chain history from block 1, for integrators that need to look up an old block or transaction rather than follow the tip of the chain. The Chain ID is the same as the rest of mainnet: `allora-mainnet-1`. + +| Surface | URL | +|---------|-----| +| **RPC** (CometBFT) | `https://rpc.archive.allora.network/` | +| **LCD** (Cosmos SDK REST) | `https://api.archive.allora.network/` | +| **gRPC** | `https://grpc.archive.allora.network/` | + +All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. The hostnames `rpc.archive.mainnet.allora.network`, `api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` are aliases of the same three endpoints; either form works. + +These endpoints are **query-only**. Everything that writes to the chain, plus the indexer-backed search methods, is refused: + +- **RPC**: `broadcast_tx_*`, `check_tx`, `tx_search`, `block_search`, `dial_*`, `unsafe_*`, `/websocket` and `subscribe*` +- **LCD**: `POST`, which covers broadcast and simulate +- **gRPC**: write methods such as `BroadcastTx` + +To broadcast a transaction, or to search for one by event, use the regular mainnet endpoints in [Networks](https://docs.allora.network/reference/networks) instead. + +**Examples.** Read the first block over RPC, and a transaction by hash over the LCD: + +```bash +curl 'https://rpc.archive.allora.network/block?height=1' +curl https://api.archive.allora.network/cosmos/tx/v1beta1/txs/ +``` + +The first request returns the genesis block of `allora-mainnet-1`, hash `3F3F8473FD7AE262A3D085D7F4D88F9F4295944A1432A9FFF88D9DAFC2E081C3` — a cheap way to confirm you are talking to a full archive rather than a pruned node, which answers `height 1 is not available` instead. + +Requests are rate limited per source IP; retry with backoff when you are limited: + +| Surface | Paths or methods | Rate | Burst | +|---------|------------------|------|-------| +| **RPC** | `/`, `/status`, `/health`, `/abci_info` | 50/s | 100 | +| **RPC** | `/block`, `/block_results`, `/commit`, `/header` | 20/s | 40 | +| **RPC** | `/tx`, `/block_by_hash`, `/header_by_hash` | 20/s | 40 | +| **RPC** | `/validators`, `/consensus_params` | 10/s | 20 | +| **RPC** | `/genesis`, `/genesis_chunked` | 5/s | 10 | +| **LCD** | `/cosmos/tx/v1beta1/txs/**` and the module query prefixes | 20/s | 40 | +| **gRPC** | allow-listed `Query`/`Get*` methods | no limit | — | + +There is no public archive endpoint on testnet yet. When one lands, its history will begin at block 600,001 rather than at genesis, so it will not answer for earlier testnet blocks. + ## RPC Endpoints for Consumers The following RPC methods are particularly useful for consumers looking to access inference data from the Allora network: diff --git a/public/raw/reference/networks.md b/public/raw/reference/networks.md index e011fea..488dbb6 100644 --- a/public/raw/reference/networks.md +++ b/public/raw/reference/networks.md @@ -2,7 +2,7 @@ title: Networks description: Chain IDs, endpoints, and the currently deployed allora-chain version for each Allora network. persona: Builder or operator -verified_against: live abci_info and cosmos/upgrade applied_plan on both networks, 2026-08-19 +verified_against: live abci_info and cosmos/upgrade applied_plan on both networks, 2026-08-19; mainnet archive rpc/api/grpc probed live 2026-09-08 last_reviewed: 2026-08-19 --- @@ -26,6 +26,9 @@ serves `emissions/v10`. | **API (Cosmos LCD - REST)** | `https://allora-api.testnet.allora.network/` | `https://allora-api.mainnet.allora.network/` | | **Explorer** | `https://explorer.testnet.allora.network/allora-testnet-1` | `https://explorer.allora.network/` | | **Faucet** | `https://faucet.testnet.allora.network/` | — | +| **Archive RPC (full history)** | — | `https://rpc.archive.allora.network/` | +| **Archive API (Cosmos LCD - REST)** | — | `https://api.archive.allora.network/` | +| **Archive gRPC** | — | `https://grpc.archive.allora.network/` | The tables on this page are rendered from a machine-readable manifest served at `/api/networks.json`. Agents and scripts can read the same chain IDs, endpoints, and versions from there instead of scraping @@ -47,6 +50,9 @@ and the [Release Notes](https://docs.allora.network/reference/release-notes). - **API (Cosmos LCD - REST)**: `https://allora-api.testnet.allora.network/` - **Explorer**: `https://explorer.testnet.allora.network/allora-testnet-1` - **Faucet**: `https://faucet.testnet.allora.network/` +- **Archive RPC (full history)**: — +- **Archive API (Cosmos LCD - REST)**: — +- **Archive gRPC**: — Use the testnet for building and testing integrations, running workers/reputers, and trying features before they ship to mainnet. For wallet creation and faucet funding, see @@ -62,9 +68,23 @@ before they ship to mainnet. For wallet creation and faucet funding, see - **API (Cosmos LCD - REST)**: `https://allora-api.mainnet.allora.network/` - **Explorer**: `https://explorer.allora.network/` - **Faucet**: — +- **Archive RPC (full history)**: `https://rpc.archive.allora.network/` +- **Archive API (Cosmos LCD - REST)**: `https://api.archive.allora.network/` +- **Archive gRPC**: `https://grpc.archive.allora.network/` Mainnet has no faucet — fund addresses with ALLO yourself. +The **archive** endpoints serve the complete chain history from block 1 and are **query-only**: no +transaction broadcast, and no `tx_search` or `block_search`. They exist for historical lookups by +exchanges and integrators — for tip-of-chain reads and for submitting transactions, use the regular +mainnet endpoints above. The `rpc.archive.mainnet.allora.network`, +`api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` hostnames are aliases of +the same endpoints; see [RPC JSON Data Access](https://docs.allora.network/consume/rpc-grpc) for the deny list and rate limits. + +Testnet has no public archive endpoint yet, which is why the testnet column has no archive rows filled +in. When one lands, its history will begin at **block 600,001** rather than at genesis — it will not +answer for earlier testnet blocks. + The `emissions` API version segment is per-network — always pick the one matching the network you are querying: `emissions/v10` on testnet and `emissions/v10` on mainnet. Since v0.17.0 these diff --git a/scripts/lib/docsPages.js b/scripts/lib/docsPages.js index 4270fbf..46d642c 100644 --- a/scripts/lib/docsPages.js +++ b/scripts/lib/docsPages.js @@ -759,6 +759,9 @@ const NETWORK_FIELDS = [ { key: 'lcd', label: 'API (Cosmos LCD - REST)', code: true }, { key: 'explorer', label: 'Explorer', code: true }, { key: 'faucet', label: 'Faucet', code: true }, + { key: 'archive_rpc', label: 'Archive RPC (full history)', code: true }, + { key: 'archive_lcd', label: 'Archive API (Cosmos LCD - REST)', code: true }, + { key: 'archive_grpc', label: 'Archive gRPC', code: true }, ]; function networks() { From 2bf845c0f137e47dac1f1663459b96cddfe0f497 Mon Sep 17 00:00:00 2001 From: kihahu Date: Wed, 9 Sep 2026 16:42:35 +0300 Subject: [PATCH 3/3] docs: document short live RPC aliases; drop unused archive.mainnet rpc/api/grpc.allora.network alias live mainnet; rpc/api/grpc.testnet.allora.network alias live testnet. They are not archive hosts. Leave networks.json canonical URLs unchanged. --- pages/consume/rpc-grpc.mdx | 8 +++++++- pages/reference/networks.mdx | 10 +++++++--- public/llms-full.txt | 18 ++++++++++++++---- public/raw/consume/rpc-grpc.md | 8 +++++++- public/raw/reference/networks.md | 10 +++++++--- 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/pages/consume/rpc-grpc.mdx b/pages/consume/rpc-grpc.mdx index 2537c9f..457e6c6 100644 --- a/pages/consume/rpc-grpc.mdx +++ b/pages/consume/rpc-grpc.mdx @@ -29,8 +29,14 @@ Each network uses a different RPC URL and Chain ID which are needed to specify w - **LCD URL** (Cosmos SDK REST): `https://allora-api.testnet.allora.network/` - **Chain ID**: `allora-testnet-1` +The hostnames `rpc.testnet.allora.network`, `api.testnet.allora.network` and `grpc.testnet.allora.network` are extra aliases of these live (tip) endpoints. + See [Networks](/reference/networks) for the current endpoints of every network, including the versioned `emissions` namespace each one serves. +### Mainnet + +The live (tip) mainnet endpoints are `allora-rpc.mainnet.allora.network`, `allora-api.mainnet.allora.network` and `allora-grpc.mainnet.allora.network`. The hostnames `rpc.allora.network`, `api.allora.network` and `grpc.allora.network` are extra aliases of the same live endpoints — no chain in the name means mainnet. + ### Mainnet archive (full history) Mainnet also has a set of **archive** endpoints that serve the complete chain history from block 1, for integrators that need to look up an old block or transaction rather than follow the tip of the chain. The Chain ID is the same as the rest of mainnet: `allora-mainnet-1`. @@ -41,7 +47,7 @@ Mainnet also has a set of **archive** endpoints that serve the complete chain hi | **LCD** (Cosmos SDK REST) | | | **gRPC** | | -All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. The hostnames `rpc.archive.mainnet.allora.network`, `api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` are aliases of the same three endpoints; either form works. +All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. These endpoints are **query-only**. Everything that writes to the chain, plus the indexer-backed search methods, is refused: diff --git a/pages/reference/networks.mdx b/pages/reference/networks.mdx index 2a695d2..6a7878b 100644 --- a/pages/reference/networks.mdx +++ b/pages/reference/networks.mdx @@ -52,9 +52,13 @@ Mainnet has no faucet — fund addresses with ALLO yourself. The **archive** endpoints serve the complete chain history from block 1 and are **query-only**: no transaction broadcast, and no `tx_search` or `block_search`. They exist for historical lookups by exchanges and integrators — for tip-of-chain reads and for submitting transactions, use the regular -mainnet endpoints above. The `rpc.archive.mainnet.allora.network`, -`api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` hostnames are aliases of -the same endpoints; see [RPC JSON Data Access](/consume/rpc-grpc) for the deny list and rate limits. +mainnet endpoints above. See [RPC JSON Data Access](/consume/rpc-grpc) for the deny list and rate +limits. + +The hostnames `rpc.allora.network`, `api.allora.network` and `grpc.allora.network` are extra aliases +of the live (tip) mainnet endpoints — no chain in the name means mainnet. On testnet, +`rpc.testnet.allora.network`, `api.testnet.allora.network` and `grpc.testnet.allora.network` alias +the live testnet endpoints. They are not archive hosts. Testnet has no public archive endpoint yet, which is why the testnet column has no archive rows filled diff --git a/public/llms-full.txt b/public/llms-full.txt index 74ada74..6d00ee5 100644 --- a/public/llms-full.txt +++ b/public/llms-full.txt @@ -5245,8 +5245,14 @@ Each network uses a different RPC URL and Chain ID which are needed to specify w - **LCD URL** (Cosmos SDK REST): `https://allora-api.testnet.allora.network/` - **Chain ID**: `allora-testnet-1` +The hostnames `rpc.testnet.allora.network`, `api.testnet.allora.network` and `grpc.testnet.allora.network` are extra aliases of these live (tip) endpoints. + See [Networks](https://docs.allora.network/reference/networks) for the current endpoints of every network, including the versioned `emissions` namespace each one serves. +### Mainnet + +The live (tip) mainnet endpoints are `allora-rpc.mainnet.allora.network`, `allora-api.mainnet.allora.network` and `allora-grpc.mainnet.allora.network`. The hostnames `rpc.allora.network`, `api.allora.network` and `grpc.allora.network` are extra aliases of the same live endpoints — no chain in the name means mainnet. + ### Mainnet archive (full history) Mainnet also has a set of **archive** endpoints that serve the complete chain history from block 1, for integrators that need to look up an old block or transaction rather than follow the tip of the chain. The Chain ID is the same as the rest of mainnet: `allora-mainnet-1`. @@ -5257,7 +5263,7 @@ Mainnet also has a set of **archive** endpoints that serve the complete chain hi | **LCD** (Cosmos SDK REST) | `https://api.archive.allora.network/` | | **gRPC** | `https://grpc.archive.allora.network/` | -All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. The hostnames `rpc.archive.mainnet.allora.network`, `api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` are aliases of the same three endpoints; either form works. +All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. These endpoints are **query-only**. Everything that writes to the chain, plus the indexer-backed search methods, is refused: @@ -7759,9 +7765,13 @@ Mainnet has no faucet — fund addresses with ALLO yourself. The **archive** endpoints serve the complete chain history from block 1 and are **query-only**: no transaction broadcast, and no `tx_search` or `block_search`. They exist for historical lookups by exchanges and integrators — for tip-of-chain reads and for submitting transactions, use the regular -mainnet endpoints above. The `rpc.archive.mainnet.allora.network`, -`api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` hostnames are aliases of -the same endpoints; see [RPC JSON Data Access](https://docs.allora.network/consume/rpc-grpc) for the deny list and rate limits. +mainnet endpoints above. See [RPC JSON Data Access](https://docs.allora.network/consume/rpc-grpc) for the deny list and rate +limits. + +The hostnames `rpc.allora.network`, `api.allora.network` and `grpc.allora.network` are extra aliases +of the live (tip) mainnet endpoints — no chain in the name means mainnet. On testnet, +`rpc.testnet.allora.network`, `api.testnet.allora.network` and `grpc.testnet.allora.network` alias +the live testnet endpoints. They are not archive hosts. Testnet has no public archive endpoint yet, which is why the testnet column has no archive rows filled in. When one lands, its history will begin at **block 600,001** rather than at genesis — it will not diff --git a/public/raw/consume/rpc-grpc.md b/public/raw/consume/rpc-grpc.md index 19c1eb7..e5b5f95 100644 --- a/public/raw/consume/rpc-grpc.md +++ b/public/raw/consume/rpc-grpc.md @@ -26,8 +26,14 @@ Each network uses a different RPC URL and Chain ID which are needed to specify w - **LCD URL** (Cosmos SDK REST): `https://allora-api.testnet.allora.network/` - **Chain ID**: `allora-testnet-1` +The hostnames `rpc.testnet.allora.network`, `api.testnet.allora.network` and `grpc.testnet.allora.network` are extra aliases of these live (tip) endpoints. + See [Networks](https://docs.allora.network/reference/networks) for the current endpoints of every network, including the versioned `emissions` namespace each one serves. +### Mainnet + +The live (tip) mainnet endpoints are `allora-rpc.mainnet.allora.network`, `allora-api.mainnet.allora.network` and `allora-grpc.mainnet.allora.network`. The hostnames `rpc.allora.network`, `api.allora.network` and `grpc.allora.network` are extra aliases of the same live endpoints — no chain in the name means mainnet. + ### Mainnet archive (full history) Mainnet also has a set of **archive** endpoints that serve the complete chain history from block 1, for integrators that need to look up an old block or transaction rather than follow the tip of the chain. The Chain ID is the same as the rest of mainnet: `allora-mainnet-1`. @@ -38,7 +44,7 @@ Mainnet also has a set of **archive** endpoints that serve the complete chain hi | **LCD** (Cosmos SDK REST) | `https://api.archive.allora.network/` | | **gRPC** | `https://grpc.archive.allora.network/` | -All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. The hostnames `rpc.archive.mainnet.allora.network`, `api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` are aliases of the same three endpoints; either form works. +All three are HTTPS on port 443, gRPC included (TLS with SNI) — there are no backend ports to connect to. These endpoints are **query-only**. Everything that writes to the chain, plus the indexer-backed search methods, is refused: diff --git a/public/raw/reference/networks.md b/public/raw/reference/networks.md index 488dbb6..93bce8e 100644 --- a/public/raw/reference/networks.md +++ b/public/raw/reference/networks.md @@ -77,9 +77,13 @@ Mainnet has no faucet — fund addresses with ALLO yourself. The **archive** endpoints serve the complete chain history from block 1 and are **query-only**: no transaction broadcast, and no `tx_search` or `block_search`. They exist for historical lookups by exchanges and integrators — for tip-of-chain reads and for submitting transactions, use the regular -mainnet endpoints above. The `rpc.archive.mainnet.allora.network`, -`api.archive.mainnet.allora.network` and `grpc.archive.mainnet.allora.network` hostnames are aliases of -the same endpoints; see [RPC JSON Data Access](https://docs.allora.network/consume/rpc-grpc) for the deny list and rate limits. +mainnet endpoints above. See [RPC JSON Data Access](https://docs.allora.network/consume/rpc-grpc) for the deny list and rate +limits. + +The hostnames `rpc.allora.network`, `api.allora.network` and `grpc.allora.network` are extra aliases +of the live (tip) mainnet endpoints — no chain in the name means mainnet. On testnet, +`rpc.testnet.allora.network`, `api.testnet.allora.network` and `grpc.testnet.allora.network` alias +the live testnet endpoints. They are not archive hosts. Testnet has no public archive endpoint yet, which is why the testnet column has no archive rows filled in. When one lands, its history will begin at **block 600,001** rather than at genesis — it will not